Ubuntu 22.04で固定ビットの影響を受けないUbuntuユーザー

Ubuntu 22.04で固定ビットの影響を受けないUbuntuユーザー

/ tmpディレクトリとクラスタコマンドの永続ビットで奇妙な動作が発生します。 2つのシナリオを試しました。

状況1:Ubuntuユーザーを使用してファイルを生成します。ルートには、生成されたファイルにアクセスする権限がありません。

ubuntu@:~$ touch -a /tmp/ubuntu_user_created.lck
ubuntu@:~$ flock -n /tmp/ubuntu_user_created.lck -c "echo 123"
123
ubuntu@:~$ sudo flock -n /tmp/ubuntu_user_created.lck -c "echo 123"
flock: cannot open lock file /tmp/ubuntu_user_created.lck: Permission denied

シナリオ2:rootユーザーを使用してファイルを作成し、rootユーザーとUbuntuユーザーの両方で作成されたファイルにアクセスできます。

ubuntu@:~$ sudo touch -a /tmp/root_user_created.lck
ubuntu@:~$ flock -n /tmp/root_user_created.lck -c "echo 123"
123
ubuntu@:~$ sudo flock -n /tmp/root_user_created.lck -c "echo 123"
123

両方のファイルに対する権限:

ls -la /tmp/
total 52
drwxrwxrwt 12 root   root   4096 Oct  6 08:08 .
drwxr-xr-x 19 root   root   4096 Oct  6 03:42 ..
-rw-r--r--  1 root   root      0 Oct  6 07:56 root_user_created.lck
-rw-rw-r--  1 ubuntu ubuntu    0 Oct  6 07:54 ubuntu_user_created.lck

rファイルがroot所有でflock -n /tmp/root_user_created.lckあるため、Ubuntuユーザーがコマンドを正常に実行できる理由を理解できません。 Flockコマンドはこのファイルを読み取りモードでのみ開きたいですか?oot_user_created.lck

Flockコマンドに読み取りアクセスのみが必要な場合、flock -n /tmp/ubuntu_user_created.lckroot権限でコマンドを実行すると拒否された権限が返されるのはなぜですか?

ベストアンサー1

おすすめ記事