다른 사용자로 서비스를 종료하려고 했습니다. "usernoroot" 사용자로 로그인하고 루트 사용자 "userroot"의 서비스를 종료했습니다!
따라서 "usernoroot" 폴더에 다음과 같이 killscript.sh가 있습니다.
#!/bin/sh
kill -9 $1
그리고 스크립트를 실행 가능하게 만듭니다.
chown root:root /home/usernoroot/killscript.sh
chmod 755 /home/usernoroot/killscript.sh
이제 실행을 시도 ./killscript.sh <pid>
하지만 다음을 얻습니다.
./killscript.sh: 2: kill: Operation not permitted
이 스크립트를 성공적으로 실행하려면 어떻게 해야 합니까?
편집하다
sudo를 설치했습니다.
apt-get install sudo
내 사용자를 sudo 그룹에 추가
adduser usernoroot sudo
그리고 sudoers에 "killscript.sh" 스크립트를 추가하세요.
nano /etc/sudoers
usernoroot ALL=(ALL) NOPASSWD: /home/usernoroot/killscript.sh
./killscript.sh 222
이제 PW 없이 ID 222를 종료하는 프로세스를 실행할 수 있습니다 .
답변1
첫째, 스크립트를 실행하는 이유 usernoroot
는 자신의 것이 아닌 프로세스를 종료할 수 있는 올바른 침투 권한이 없기 때문입니다. 따라서 시스템의 프로세스를 종료하려면 sudo
도구를 사용하여 사용자로 스크립트를 실행할 수 있습니다 root
.
sudo ./killscript.sh <pid>
다른 방법도 있지만,나는 그것을 추천하지 않는다, 심각한 안전 문제를 일으킬 수 있으며, 부적절하게 사용하면 큰 문제를 일으킬 수 있습니다.
setUID
on 도구를 사용하세요 kill
. 단, 루트 사용자여야 합니다.
chmod 4755 /bin/kill
그 다음에누구나kill
이 도구는 루트 사용자로 실행할 수 있습니다.나는 이 접근 방식을 권장하지 않습니다