Unix/linuxマシンで奇妙な問題が発生しました:
私はグループのメンバーです。グループAと呼びましょう。特定のファイル(所有者が異なる)もグループAに属しています。そのファイルの権限は
-rw-rw----
そのため、そのファイルを開くことができるはずですが、そうではありません。ファイルの内容を(catを使用して)見ようとすると、「Permission denied」エラーメッセージが表示されます。
権限が正しいように見えるので、これを引き起こしている可能性のある他に何がありますか? 「オーバーライド」権限の制限はありますか?もしそうなら、私はどのように見つけますか?
グループAに追加されてから、ログアウトして再度ログインしましたか?
そうでない場合、現在のログインプロセスには、ログイン時のグループメンバーシップのみが含まれ、それ以降の変更は含まれません。そして、そのログインの子プロセスはすべて同じグループメンバーシップを持ちます(つまり、Xにログインすると、ターミナルエミュレーターとシェルを含むすべてのアプリケーション)
別のコンソールまたはsshを介して再度ログインするか、exec Sudo -u $(id -u -n) -i
のようなものを使用して、これをテストできます(現在のシェルを効果的に強制終了して新しいシェルに置き換えるには、そのシェルに属するバックグラウンドプロセスは孤立します)。
コメントに記載されているように、/home/username
に対する読み取り権限がありません。ただし、/home/username/path1/path2/file
を読み取るには、パス全体に対するexecute権限が必要です。
これをデバッグするには、ファイルを読み取るユーザーとしてnamei -l /home/username/path1/path2/file
を実行します。
NFSでは、使用するセキュリティモードによって異なりますが、従来のセキュリティモードでは、ユーザーが属するグループのリストはクライアントからサーバーに送信され、送信できるグループの数には制限がありました( 16前回チェックしたとき)。
だから、クライアントは言う:私はuid 1234で、ちなみに私はグループ12、13、14のメンバーです... 16を超えるグループにいる場合、そのリストは切り捨てられ、サーバーはあなたがメンバーであることを認識していません。
それがおそらくその説明です。セキュリティモデルまたはNFSサーバーの設定を変更するか、メンバーになっているグループの数を減らすことによって、ローカルマシンまたはリモートマシン、あるいはその両方のシステム管理者のみが、これについて何かを行うことができます。
ACLである可能性があります。見る
getfacl the-file
何らかの理由で、あなたが所属するグループが適切に設定されていない可能性があります。確認する
id -a
どうですか
namei -xl "$(readlink -f the-file)"
getfattr -dm- the-file
Sudo lsattr the-file
それが常駐するファイルシステムのタイプは何ですか?
システムに配置されているapparmor、SELinux、またはその他の必須のアクセス制御はありますか?
ファイルに「Permission denied」というテキストが含まれていないことを確認していますよね;-)?