web-dev-qa-db-ja.com

グループ内にあり、グループ読み取りのアクセス許可が設定されているにもかかわらず、ファイルを読み取ることができない

Unix/linuxマシンで奇妙な問題が発生しました:

私はグループのメンバーです。グループAと呼びましょう。特定のファイル(所有者が異なる)もグループAに属しています。そのファイルの権限は

-rw-rw----

そのため、そのファイルを開くことができるはずですが、そうではありません。ファイルの内容を(catを使用して)見ようとすると、「Permission denied」エラーメッセージが表示されます。

権限が正しいように見えるので、これを引き起こしている可能性のある他に何がありますか? 「オーバーライド」権限の制限はありますか?もしそうなら、私はどのように見つけますか?

15
Lagerbaer

グループAに追加されてから、ログアウトして再度ログインしましたか?

そうでない場合、現在のログインプロセスには、ログイン時のグループメンバーシップのみが含まれ、それ以降の変更は含まれません。そして、そのログインの子プロセスはすべて同じグループメンバーシップを持ちます(つまり、Xにログインすると、ターミナルエミュレーターとシェルを含むすべてのアプリケーション)

別のコンソールまたはsshを介して再度ログインするか、exec Sudo -u $(id -u -n) -iのようなものを使用して、これをテストできます(現在のシェルを効果的に強制終了して新しいシェルに置き換えるには、そのシェルに属するバックグラウンドプロセスは孤立します)。

8
cas

コメントに記載されているように、/home/usernameに対する読み取り権限がありません。ただし、/home/username/path1/path2/fileを読み取るには、パス全体に対するexecute権限が必要です。

これをデバッグするには、ファイルを読み取るユーザーとしてnamei -l /home/username/path1/path2/fileを実行します。

3
Adam Trhon

NFSでは、使用するセキュリティモードによって異なりますが、従来のセキュリティモードでは、ユーザーが属するグループのリストはクライアントからサーバーに送信され、送信できるグループの数には制限がありました( 16前回チェックしたとき)。

だから、クライアントは言う:私はuid 1234で、ちなみに私はグループ12、13、14のメンバーです... 16を超えるグループにいる場合、そのリストは切り捨てられ、サーバーはあなたがメンバーであることを認識していません。

それがおそらくその説明です。セキュリティモデルまたはNFSサーバーの設定を変更するか、メンバーになっているグループの数を減らすことによって、ローカルマシンまたはリモートマシン、あるいはその両方のシステム管理者のみが、これについて何かを行うことができます。

3

ACLである可能性があります。見る

getfacl the-file

何らかの理由で、あなたが所属するグループが適切に設定されていない可能性があります。確認する

id -a

どうですか

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

Sudo lsattr the-file

それが常駐するファイルシステムのタイプは何ですか?

システムに配置されているapparmor、SELinux、またはその他の必須のアクセス制御はありますか?

ファイルに「Permission denied」というテキストが含まれていないことを確認していますよね;-)?

1