
他のユーザーでサービスを終了しようとしました。 「usernoroot」ユーザーとしてログインし、rootユーザー「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
。ただし、rootユーザーでなければなりません。
chmod 4755 /bin/kill
それから誰でもkill
このツールはrootユーザーとして実行できます。私はこのアプローチをお勧めしません