アプリケーションID(新しいファイルのみタッチ)で正しく機能する単純なスクリプトがあり、個人IDを介して呼び出そうとします。ターゲットファイルの場所は、私の個人IDに書き込み権限がない(しかしスクリプト所有者はあります)領域にあり、スクリプトにSUIDビットが設定されていますが、それを私のIDに渡すと(myID myGrp)、タッチ拒否権限が与えられます。
スクリプト設定が正しいです。
-rwsrwxr-x appID appGrp 1.sh
(のみ含むtouch /myDir/1
)
これはsuidビットの実際の目的ですが、やるべきことは何もしません。宛先ディレクトリの権限は次のとおりです。
drwxrwxr-x appID appGrp myDir
ディレクトリに対してwをONにしたくありません。目的を崩します。また、ディレクトリの固定ビットを設定したくありません。
また、マウントを確認し、dirがあるファイルシステム(この場合は/ app)にNOSUIDが設定されていないことを確認してください。 nosuidでマウントされていません。
この問題をどのように解決できますか?
答え1
当時はとても便利な機能でした。ある時点で、一部の人々はそれを乱用し始め、一部のUNIXバージョンではこれを無効にし始めました。当時はsudoがなかったため、sudoで実行できる多くの作業はsetuidビットが設定されたスクリプトファイルを介して行われました。