2017-04-21 1 views
0

私はrootでしか読み書きできないが、誰でも実行できるシェルスクリプトを作成しようとしている。私はファイルtest.shを作成し、所有権を "chown root:me test.sh"に設定し、 "chmod 711 test.sh"に権限を設定し、これがトリックを行うことを望みました。しかし、これにより、実行するために常にsudoが必要なファイルが生成されます。誰もが(sudoを使わずに)誰でもスクリプトを実行できるように権利を編集することはできますが、rootだけが(sudoを使って)ファイルを読み書きすることができますか?linuxファイルへのアクセスrootでの読み取り/書き込み、すべてで実行

答えて

2

これは少なくともシェルスクリプトでは実現できません。

実際、実行の瞬間、シェルプログラム(私はBashと推測します)はシェルファイルの内容を読み取る必要があり、プロセスはユーザー名と権限で実行されます。

このように言えば、BASHプログラム(ZSH、SHまたは他のシェルは同じ規則に従う必要があります)は、ファイルの内容を読み取る必要があります。これは読み取り権限+ rを与えることによってのみ達成できます。したがって、最低限の最小値は755の許可モデルになります。

代わりに、ジョブを実行し、実行するために読み取り権限を必要としない実際のプログラムを実行することもできます。しかし、これはまったく異なるパターンです。

この回答でも同様です。

https://unix.stackexchange.com/questions/34202/can-a-script-be-executable-but-not-readable

関連する問題