ACL - 読み取りアクセスのみを許可し、実行アクセスは許可しない

ACL - 読み取りアクセスのみを許可し、実行アクセスは許可しない

/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 ビットが削除されます。

関連情報