次の権限を持つディレクトリがあります。
lighttpd drwx------
これには次のファイルが含まれています。
lighttpd.pid -rw-r--r--
残念ながら、実行しようとしたとき:
cat lighttpd/lighttpd.pid
所有者でもなく、自分が属しているグループのメンバーでもないユーザーに対して、次のメッセージが表示されます。
猫:lighttpd/lighthttpd.pid:権限が拒否されました。
所有者でもグループのメンバーでもないユーザーがlighttpd.pidにアクセスできるようにするにはどうすればよいですか?
答え1
ディレクトリ外のファイルへのハードリンクを作成すると機能します。 - EG ln lighttpd/lighttpd.pid example/lighttpd.pid
。ユーザーはexample/lighttpd.pid
アクセスなしで表示できますlighttpd/
。
答え2
x
「other」ディレクトリへのlighthttpd
実行/検索()許可。
$ chmod o+X lighthttpd
大文字X
ファイルモードビットセレクタchmod
実行/検索は、ファイルがディレクトリの場合(または一部のユーザーに対してすでに実行権限がある場合)にのみ有効になります。
実行/検索ビットがディレクトリに設定されると、影響を受けるユーザーはopen()
ディレクトリに入って(呼び出し)、その中にあるファイルとディレクトリにアクセスできます。また、読み取り(r
)権限が必要です。ファイル自体(問題に応じて既に設定されています。)
読み取り(r
)権限なしディレクトリに、ユーザーはディレクトリの内容を取得できないため、アクセスしたいファイルの名前を事前に知っておく必要があります。
基本ファイルシステムがサポートしている場合Posix アクセス制御リスト、次を使用してディレクトリに実行/検索権限を付与することもできます。setfacl
特定のユーザーについて所有者またはグループの割り当てを調整しないでください。
$ setfacl -m u:user:x lighthttpd
acl
マウントオプション/runを使用してファイルシステムがマウントされていることを確認して、ファイルシステムがPosix ACLをサポートしていることを確認できます。mount
:
$ mount | grep /dev/sdaX
/dev/sdaX on /mountpoint type ext4 (rw,acl)
acl
マウント出力にない場合は、そのファイルシステムタイプのデフォルトオプションの1つになる可能性があります。これを確認できます。tune2fs
:
$ sudo tune2fs -l /dev/sdaX |grep acl
Default mount options: user_xattr acl
acl
有効になっておらず、何らかの理由ですべてのユーザーにディレクトリにアクセスする権限を与えたくない場合は、次の操作を実行できます。ラキ市のアドバイスその後、ユーザーがアクセスできるようにするファイルをファイルシステムの別のパス名に関連付けます。
答え3
詳しくは読んでいませんが、man setfacl
必要なようです。
man setfacl
部分:
はい
Granting an additional user read access setfacl -m u:lisa:r file Revoking write access from all groups and all named users (using the effective rights mask) setfacl -m m::rx file Removing a named group entry from a file's ACL setfacl -x g:staff file Copying the ACL of one file to another getfacl file1 | setfacl --set-file=- file2 Copying the access ACL into the Default ACL getfacl --access dir | setfacl -d -M- dir