• ベストアンサー

shellの実行権限について

shellを実行する際には、 実行権限のほかに読み取り権限が必要不可欠であると認識しています。 shellを実行するユーザに読み取りの権限を与えたくない場合、どのような対策を打てば当問題は解決できますでしょうか? ご教授のほどよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#243622
noname#243622
回答No.3

>「shellを実行」と「シェルスクリプトを実行」の違いがよくわかりません。 「shellを実行」:シェルプロンプト上で何かしらコマンドを打つこと 「シェルスクリプトを実行」:"aaa.sh" などのテキストファイルに実行権限をつけてその中身に書いてあるコマンドを実行すること ではないですか? シェルスクリプトの実行自体は、中身を読める必要があります。 解決策としては、Tacosanのとおり、シェルの読み取りをしないようにするためには、何らかのバイナリに変更するか、それ自体を実行するだけのwrapperプログラムを書く必要があると思います。 数が少なければこれでもいいですが、ただ数が多いと難しいですよね。これだと。

it2007
質問者

お礼

ようやく理解です。ご回答ありがとうございました。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

手元で実験してみた限りでは, shell を実行するなら読み取り権限は不要みたいですね. シェルスクリプトを実行するなら読み取り権限も必要で, どうしても「読み取り権限は与えたくないけど実行権限は与えたい」というのであれば suid (あるいは sgid) したバイナリを経由すればできそう.

it2007
質問者

補足

うーむ。すみません。当方理解不足です。 「shellを実行」と「シェルスクリプトを実行」の違いがよくわかりません。どのような違いがあるのでしょうか?よろしくお願いします。

  • 12m24
  • ベストアンサー率23% (193/817)
回答No.1

 実行と読み取りはUNIXにおいては別物なので、読み取り権限を与えずに実行権限を与えれば、実行のみが可能になります。

it2007
質問者

補足

これは、実機で実際に試してみて実行不可との結果です。 具体的にいいますとroot権限にてaaa.shを作成(所有者root・グループroot)、 パーミッションを701に設定、 全く別の一般ユーザにてaaa.shを実行、permission deninedと表示されます。 よろしくお願いします。

関連するQ&A