sudo 액세스와 휠셋

sudo 액세스와 휠셋

나는 여기서 조금 혼란스러워졌습니다. 사용자에게 컴퓨터에 대한 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의미: "호스트에 있는 그룹의 모든 구성원은 사용자 계정을 ALLsudo하여 명령을 실행할 수 있습니다." 따라서 이는 "잘못된" 줄과 정확히 동일합니다.ALLALL

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

  1. visudo줄 추가:
    user1 ALL=/bin/cat, /etc/shadowuser1이 를 사용할 수 있도록 허용합니다 sudo. 즉, using 이외의 다른 명령을 실행할 수 없으며 catusing 이외의 다른 파일을 읽을 수 없습니다. 입력하면 최소한 이 파일을 읽을 수 있는 도구가 있어야 하기 때문에 쓸모가 없습니다(이것은 단지 예일 뿐이므로 파일을 읽을 필요는 없습니다)./etc/shadowsudouser1 ALL=/etc/shadow/etc/shadow/

그런데 "ALL"은 실행할 명령 목록과 상호 작용할 파일 목록을 의미합니다. 기본적으로 옆에는 ALL=(ALL)이 있습니다.루트 사용자이는 실제로 모든 명령과 파일을 의미합니다.

  1. last모든 사용자가 이 명령(또는 다른 명령)을 실행할 수 있도록 하려면 /usr/bin공용 디렉터리( )에 대한 하드 링크를 만들고 명령(파일)의 권한을 변경할 수 있습니다 chmod +0001 /usr/bin/last. 하지만 last기본적으로 모든 사용자가 명령을 실행할 수 있다고 생각합니다.

사용자가 현재 실행할 수 있는 명령 목록을 확인하려면 를 사용하십시오 sudo -l.

관련 정보