데비안 스트레치가 있습니다..
일반 사용자는 루트 프로세스를 루트로 죽일 수 있다고 생각합니다. 나는 /bin/kill 10733
이 명령을 사용자로 사용합니다. 오류 메시지가 없습니다. 그런 다음 /bin/
접두사 없이 비슷한 명령을 입력하면 오류 메시지가 나타납니다.
명령 내역입니다
deployer@deployer:~/blog$ kill 10733
-bash: kill: (10733) - Operation not permitted
deployer@deployer:~/blog$ /bin/kill 10733
deployer@deployer:~/blog$ ps aux|grep 10733
root 10733 0.0 0.6 92360 6404 ? Ss 19:19 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
deployer 10891 0.0 0.2 12732 2236 pts/0 S+ 20:10 0:00 grep 10733
deployer@deployer:~/blog$ sudo kill 10733
deployer@deployer:~/blog$ ps aux|grep 10733
deployer 10900 0.0 0.2 12732 2232 pts/0 S+ 20:10 0:00 grep 10733
deployer@deployer:~/blog$
사실 저는 접두사와 메시지를 선호합니다. 얻는 방법? 왜 그럴까요?
답변1
귀하의 예에서 kill
명령은 셸 내부 명령(확실히 )이며 백그라운드 프로세스를 참조하는 bash
등의 확장을 허용합니다 .%1
반면에 /bin/kill
외부 명령이므로 이러한 확장자가 없습니다. 다른 프로그램이기 때문에 다르게 작동합니다. 실패는 /bin/kill
자동으로 표시될 수 있지만 $?
실패를 나타내도록 (종료 코드) 설정됩니다.
실행하면 sudo kill
암시적으로 실행됩니다 sudo /bin/kill
.