루트가 아닌 SUDO 없이 루트 권한으로 명령 실행

루트가 아닌 SUDO 없이 루트 권한으로 명령 실행

루트가 아닌 사용자에 대해 루트 권한이 필요한 명령(예: iftop 또는 유사한 명령)을 실행하는 방법 및아니요이전에 SUDO를 사용해 보셨나요?

아니면 루트가 되지 않고 사용자에게 루트 권한을 부여하는 방법은 무엇입니까?

이상적으로는 다음과 같이 iftop 명령을 실행하고 싶습니다.

[user@pc]$ iftop

그리고아니요좋다:

[user@pc]$ sudo iftop

[root@pc]$ iftop

답변1

SUDO를 사용하지 않고 루트가 아닌 사용자에 대해 루트 권한이 필요한 명령(예: iftop 또는 유사한 명령)을 어떻게 실행합니까?

루트가 아닌 사용자가 iftop을 사용하도록 허용하는 방법에는 최소한 두 가지가 있으며, 둘 다 루트 액세스가 필요합니다.

더 안전한 접근 방식은 cap_net_rawiftop 바이너리에 기능을 할당하는 것입니다.

sudo setcap cap_net_raw+ep "$(command -v iftop)"

덜 안전한 접근 방식은 setuid 루트를 할당하는 것입니다.

sudo chmod +s "$(command -v iftop)"

아니면 루트가 되지 않고 사용자에게 루트 권한을 부여하는 방법은 무엇입니까?

당신은 할 수 없습니다.

답변2

이는 사용자 ID 파일 속성 설정을 사용하여 수행할 수 있습니다.

# chmod u+s /usr/bin/sleep
# sleep 1000&
# ps aux | grep -w sleep | grep -v grep
root   1234  0.0  0.0   ...  0:00 sleep 1000

이것은 큰 보안 위험입니다!

(여기 대신) 다른 사람으로 무언가를 실행하려면 root다음이 가능합니다.

# chown pulse /usr/bin/sleep
# chmod u+s /usr/bin/sleep
# sleep 1000&
# ps aux | grep -w sleep | grep -v grep
pulse   1234  0.0  0.0   ...  0:00 sleep 1000

루트가 아닌 경우 다른 사람이 다음과 같은 명령을 실행하도록 허용할 수 있습니다.

# id -nu
john
# ls -l a.out
-rwxr-x--- 1 john users   50923 Mar 25 10:17 a.out
# chmod go+rx,u+s a.out
# ls -l a.out
-rwsr-xr-x 1 john users   50923 Mar 25 10:17 a.out

("rwx..."에 "x"가 있는 "s"에 유의하십시오. 이는 사용자 ID 설정 플래그가 설정되었음을 의미합니다.)

그런 다음 다음과 같이하십시오 jane.

# id -nu
jane
# ~john/a.out

이 명령은 a.out으로 실행됩니다 john.

관련 정보