自分のグループ内にあり、グループの読み取り権限が設定されているにもかかわらず、ファイルを読み取れない


14

unix / linuxマシンで奇妙な問題に遭遇しました:

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

-rw-rw----

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

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


2
ディレクトリのアクセス権はどうですか?
カールソン

複数のグループに属している場合、現在のグループはAに設定されていますか?
コード・教祖

2
@Karlson、ディレクトリのアクセス許可が問題であった場合、そもそもファイルのアクセス許可を確認することはできません。
cjm

フルパスとファイル名を教えてください。
ジッピー

私は複数のグループに属している/home/theotheruser/somefolder/bla.txtにあります。
ラガーベア

回答:


8

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

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

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


いいえ、それは問題ではありませんでした。ログアウトしてからログインし直しても解決しませんでした。
ラガーベア

3

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

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

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


これが理由であると強く感じています。なぜなら、「groups」コマンドの出力では、私がグループ19にいるからです。この答えをシステム管理者に示し、それが役立つかどうかを確認します。:)
Lagerbaer

これを解決するために、NFSの「セキュリティモデル」をどのように変更しますか?
ダニー

2

コメントでメモしているように、あなたには読み取り権限がありません/home/username。ただし、を読むには/home/username/path1/path2/file、パス全体の実行権限が必要です。

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


それが私の場合の問題でした。ホームディレクトリのサブフォルダを操作する別のユーザー権限を付与したかったのですが、ホームディレクトリのアクセス権は700であるため、すべてのコマンドで「許可が拒否されました」と表示されました。
ケルベロス

1

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

getfacl the-file

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

id -a

どう?

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

getfattr -dm- the-file

sudo lsattr the-file

存在するファイルシステムのタイプは何ですか?

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

ファイルに「Permission denied」というテキストが含まれていないことは間違いありません;-)?


いや、何も特別なACLありません、それだけで標準フラグが教えてくれ、とid -aと私は、そのファイルのグループにいることを私に語ったものを繰り返して
Lagerbaer

奇妙なことに、私はグループBに属する別のユーザーのファイルを見ることができます。このグループのメンバーでもあります
...-Lagerbaer

ファイルシステムはnfs4のようです。nameiは、rootとrootに属する/およびhomeを提供します。/ home / usernameはユーザー名とグループX(私はメンバーではありません)に属し、残りは/ home / username / path1 / path2 / fileで、path1はユーザー名とグループXに属し、path2はユーザー名に属します。私がメンバーであるグループA。
ラガーベア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.