/test というディレクトリがあり、そこには 2 つのファイルがあります。
info.txt
script.sh
ユーザー john に読み取り専用アクセスを許可したいので、次の操作を実行しました。
setfacl -m u:john: r test/
上記のコマンドでは、実行権限がないため、ジョンはフォルダーにアクセスできないため、次のコマンドで再度試しました。
setfacl -m u:john: rx test/
これで動作します。ユーザー john はフォルダーにアクセスしてファイルを読み取ることができます。
しかし、彼は script.sh を実行できます。後者の権限は付与するつもりはありませんでした。どうすればよいでしょうか?
答え1
を実行することもできますchmod o-x test/script.sh
が、これは無意味です。ユーザーは、ファイルをホーム ディレクトリにコピーし、実行可能にして、そこから実行することができます。setuid でない限り、いずれにしてもユーザーの権限で実行されます。また、シェル スクリプトは setuid にできませんが、setuid ファイルをコピーすると、いずれにしてもコピーから setuid ビットが削除されます。