グループSudo
に属する特定のユーザーが次のコードを使用して緊急シャットダウンを実行できるようにしようとしています。
echo 1 > /proc/sys/kernel/sysrq
echo o > /proc/sysrq-trigger
これは、コマンドSudo
!を使用してwithoutであることに注意してください。
編集:root:root
が所有する両方のファイルは、root
ユーザーでも許可や所有者の変更を許可しないことを忘れていました。
ハッカーはシステムを危険にさらします。通常、システムは監視なしで実行され、機密データを読み取る権限を取得します。ハッカーの継続を許可するのではなく、自動化されたスクリプトがマシンの電源をオフにします(ハックが検出されたと仮定します)。
私の正確なユースケースではありませんが、十分に似ています。
上記の2行のコードを実行するbashスクリプトを作成し、root:Sudo
所有者を指定し、visudo
に行を追加して、特定のユーザーがパスワードを入力せずにタスクを実行できるようにします。
2つのファイルの所有者をroot:Sudo
に変更しようとしました。
グループroot
が書き込みできるように、2つのファイルのアクセス許可を変更しようとしました。
アイデアは、Sudo
のパスワードを「焼き付けない」ことです。これにより、他のファイルを変更することを忘れずに定期的に変更できます(または、root
特権)。よろしくお願いします。
私の意見では、スクリプト内で行を次のように変更します。
echo 1 | Sudo tee /proc/sys/kernel/sysrq > /dev/null
echo o | Sudo tee /proc/sysrq-trigger > /dev/null
そして、次のようなパスワードを入力する必要なく、これらの引数を使用してtee
コマンドを実行する特定のユーザーアクセスを与えます。
username ALL=(root:root) NOPASSWD: /usr/bin/tee /proc/sys/kernel/sysrq
>
を使用して特定の許可を必要とするファイルに文字列をリダイレクトすることは不可能であることに注意してください。
Sudo echo hi > file
echo hi Sudo > file
動作しません。
同時に、これらのファイルの所有者を単純に変更することはできません。/proc
はカーネルによって管理される仮想ファイルシステムです。