
すべてのユーザーが bash スクリプトを実行できるようにしたいのですが、この bash スクリプトには root 権限が必要です。このスクリプトは読み取り専用にして、root 権限で実行したいのです。
私のbashスクリプト:
#!/bin/bash
/sbin/swapoff -a
検索で解決策を見つけましたが、うまくいきませんでした。これが解決策です:
# chown root:root monshell.sh
# chmod 4755 monshell.sh
# exit
$ ./monshell.sh
しかし、基本ユーザーで実行すると、次のエラーが発生します: swapoff: スーパーユーザーではありません。
答え1
su root bash スクリプトを作成するのは危険です。bash スクリプトは、他のコマンドを実行することを想定していない方法で操作するのが非常に簡単です。新しい su root 実行可能ファイルはすべて、新しいセキュリティ リスクとなります。
このような権限を付与する推奨方法は sudo を使用することです。次のように、/etc/sudoers.d/swapoff ファイルを作成します。
ALL ALL = /bin/swapoff -a
次に、すべてのホスト (2 番目の ALL) 上のすべてのユーザー (最初の ALL) が を実行できますsudo /bin/swapoff -a
。実行するたびに、syslog に記録されます。