![사용자에게 sudo 권한을 부여하지 않고 루트로 쉘 선택 명령을 실행하시겠습니까?](https://linux55.com/image/111253/%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%20sudo%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EB%B6%80%EC%97%AC%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EB%A3%A8%ED%8A%B8%EB%A1%9C%20%EC%89%98%20%EC%84%A0%ED%83%9D%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
세 가지 별도의 nmcli 명령을 실행하려고 합니다.
nmcli connection down config-AP
nmcli connection up config-AP
nmcli device wifi hotspot con-name config-AP ssid device band bg password password
루트라고 불리지 않으면 시간 초과됩니다.
Error: Timeout 10 sec expired.
sudoers 파일에 사용자를 추가하지 않고 이러한 명령이 실행되도록 하려면 어떻게 해야 합니까?
답변1
해를 끼치지 않지만 루트 권한이 필요한 명령이 있는 경우 "setuserid"(setuid 또는 suid) 속성을 갖도록 변경할 수 있습니다. 예는 다음과 같습니다.
ls -l /bin/chsh
-rwsr-xr-x 1 root root 23376 Mar 22 21:23 /bin/chsh*
root
파일에는 실행 중에 (세 번째 열) 사용자 ID를 사용함을 나타내는 "s" 태그가 있습니다 .
그러나 이는 잠재적으로 위험합니다. 명령 자체가 호출되는 suid 0을 처리하도록 프로그래밍되지 않은 경우 명령을 호출할 수 있는 로컬 공격자가 시스템을 장악할 수 있습니다. 당신은 경고를 받았습니다.
그렇게 말하면 다음과 같이 할 수 있습니다.
chmod u+s,a-w /usr/bin/nmcli
(필요한 경우 /bin/nmcli
시스템에 따라 경로를 변경하세요)
사람들이 (지금은 위험한) 명령을 호출하는 것을 제한하려면 특수 그룹만 액세스할 수 있도록 설정할 수 있습니다.
chgrp john /usr/bin/nmcli
chmod o= /usr/bin/nmcli
이렇게 하면 그룹 john
(및 루트)의 누군가만 명령을 호출할 수 있습니다. 이상적으로는 사용자만 속한 그룹을 사용하세요.