나는 여기서 조금 혼란스러워졌습니다. 사용자에게 컴퓨터에 대한 sudo 액세스 권한을 부여하라는 메시지가 표시되는 경우. 사용자를 휠 그룹에 추가해야 합니까?
# usermod -aG wheel bob
또는 휠 세트가 없거나 어떤 이유로 제거되었다고 가정합니다.
그렇다면 bob sudo에게 머신에 대한 액세스 권한을 어떻게 부여할 수 있습니까? 내가 할 때
# which sudo
결과는 다음과 같습니다./usr/bin/sudo
그러면 다음을 수행할 수 있습니까?
bob ALL=/usr/bin/sudo
그런데 bob 사용자로 변경하고 실행을 시도했습니다.
# sudo iptables -L
그런 다음 오류 메시지가 표시되었습니다.
죄송합니다. bob 사용자는 루트로 '/sbin/iptables -L'을 실행할 수 없습니다.
따라서 그룹 휠이 존재하지 않는 경우 사용자에게 시스템에 대한 sudo 액세스 권한을 부여하는 방법을 잘 모르겠습니다. 그리고 내가 아는 한
bob ALL=ALL ALL
기본적으로 bob에게 root와 동일한 권한을 부여하는 것은 나쁜 일입니다.
또 다른 질문은 시스템의 모든 사용자가 마지막 명령을 실행할 수 있도록 하는 방법입니다. 그룹을 만든 다음 모든 사용자를 해당 그룹에 추가해야 합니까, 아니면 다른 방법이 있습니까?
답변1
Wheel 그룹 멤버십이 사용자에게 sudo를 통해 전체 루트 액세스 권한을 제공하는 경우 일반적으로 다음과 같이 파일에 구성됩니다 /etc/sudoers
.
%wheel ALL=(ALL) ALL
wheel
의미: "호스트에 있는 그룹의 모든 구성원은 사용자 계정을 ALL
sudo하여 명령을 실행할 수 있습니다." 따라서 이는 "잘못된" 줄과 정확히 동일합니다.ALL
ALL
bob ALL=(ALL) ALL
다른 작업을 수행하지 않고 사용자(또는 그룹)에게 다른 특정 사용자 계정에 대한 전체 액세스 권한을 부여하려면 다음을 수행하면 됩니다.
user ALL=(targetuser) ALL
# or
%group ALL=(targetuser) ALL
그러면 사용자는 다음을 수행할 수 있습니다.
$ sudo -u targetuser command
대상 사용자로서 단일 명령을 빠르게 실행하거나
$ sudo -iu targetuser
대상 사용자가 직접 로그인한 경우 얻을 수 있는 것과 정확히 동일한 환경을 사용하여 대상 사용자와 동일한 셸을 가져옵니다.
역사적인 이유로 일부 사람들은 반사적으로 다음을 사용합니다.
sudo su - targetuser
두 번째 목적으로. 이를 위해서는 관련 사용자에게 최소한 "
su - targetuser
루트로 명령을 실행하고 사용자가 실제로 수행한 작업을 로그에서 함께 연결하는 것은 더 어렵습니다. sudo
이 명령은 해당 옵션을 사용할 수 없을 때 유용했지만 , -i
이 옵션이 나온 지 벌써 15년 정도 된 것 같습니다.
답변2
visudo
줄 추가:
user1 ALL=/bin/cat, /etc/shadow
user1이 를 사용할 수 있도록 허용합니다sudo
. 즉, using 이외의 다른 명령을 실행할 수 없으며cat
using 이외의 다른 파일을 읽을 수 없습니다. 입력하면 최소한 이 파일을 읽을 수 있는 도구가 있어야 하기 때문에 쓸모가 없습니다(이것은 단지 예일 뿐이므로 파일을 읽을 필요는 없습니다)./etc/shadow
sudo
user1 ALL=/etc/shadow
/etc/shadow/
그런데 "ALL"은 실행할 명령 목록과 상호 작용할 파일 목록을 의미합니다. 기본적으로 옆에는 ALL=(ALL)이 있습니다.루트 사용자이는 실제로 모든 명령과 파일을 의미합니다.
last
모든 사용자가 이 명령(또는 다른 명령)을 실행할 수 있도록 하려면/usr/bin
공용 디렉터리( )에 대한 하드 링크를 만들고 명령(파일)의 권한을 변경할 수 있습니다chmod +0001 /usr/bin/last
. 하지만last
기본적으로 모든 사용자가 명령을 실행할 수 있다고 생각합니다.
사용자가 현재 실행할 수 있는 명령 목록을 확인하려면 를 사용하십시오 sudo -l
.