実行可能にしないで `mkdir` に setuid を設定します。

実行可能にしないで `mkdir` に setuid を設定します。

setuidを設定しましたが、mkdir実行可能にはしませんでした。

chmod u+s /usr/bin/mkdir

chmod u-x /usr/bin/mkdir

[root@rhel-85 /]# ls -l /usr/bin/mkdir 
-rwSr-xr-x. 1 root root 84664 Jul  9  2021 /usr/bin/mkdir

今別のユーザーとしてログインすると"user1"

私はまだable to create directory even when the "mkdir" binary is non-executable.

mkdir私の理解は、 "user1"が実行可能ではないため、ディレクトリを作成できないことです。

答え1

ファイル所有者から実行権限を削除しましたが、そのグループメンバーまたは他のユーザーは実行権限を削除しませんでした。その結果、唯一のユーザーのアクセスが拒否されました。パス権限ルートであり、他のすべてのユーザーには権限が付与されます。 (ルートは実行可能ビットが設定されている任意のバイナリを実行できるため、ルートはまだバイナリを実行できます。)

setuid ビットは許可または拒否方法には影響しません。プロセスがバイナリを実行すると、有効なuidにのみ影響します。

バラよりUNIXの権限とファイルタイプの理解そして「グループ」権限は制限し、「世界」権限は公開しますか?もっと学ぶ。

関連情報