Kill 명령의 /bin/ 접두사는 오류 메시지를 제거합니다.

Kill 명령의 /bin/ 접두사는 오류 메시지를 제거합니다.

데비안 스트레치가 있습니다..

일반 사용자는 루트 프로세스를 루트로 죽일 수 있다고 생각합니다. 나는 /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.

관련 정보