グループの許可は許可しますが、許可は拒否されます


43

ext4パーティションがあり、すべてのサブディレクトリのグループ所有者をmygroupに設定しました。

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

私のユーザーはそのグループの一部です。そのパーティション内には、ユーザー「nobody」が所有し、現在はグループ「mygroup」が所有するフォルダーがあります。私のユーザーは「mygroup」の一部です。ls -lは次のとおりです。

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

ユーザーが属しているグループが所有するファイルを削除または作成することはできません。

私はグループがどのように機能するかを完全に理解していないと思います。あなたがグループの一員だったら、そのグループの許可を継承すると思った。私は何か間違っていますか?

ありがとう


権限トライアドはowner-group-worldのようです。上記のディレクトリのdrwxr-sr-xを確認できます。したがって、グループの許可はrsです。chmod -Rがパーミッションをrwxに再帰的に設定しなかったようです。フォルダーのグループ許可のwビットを反転すると、機能します。
カオス14

回答:


70

最近ログアウトまたはログインせずに、そのユーザーをそのグループに追加しましたか?次に、「グループ」にグループが表示されますが、ユーザーにはまだグループ権限がありません。

を使用して効果的なグループを表示できます

$ id

例として、ユーザーpsをグループに追加してからfax次のように入力すると

$ id

グループは表示されませんfaxが、

$ groups ps

ショーfax

やってsu独自のユーザーには、あなたに新しいグループの所属を与えます:

$ su ps
$ id

出力にはが含まれるようになりましたfax


1
これは知っておくと本当に役立ちます。特に「sudo <username>」部分。
カオス14

4
ログイン/ログアウトは非常に明白であるため、ポイントを逃しました、多くのありがとうバディ!
nicolallias

1
@peschü sudo定期的に使用しています。私があなたに示したエラーは、コマンドubuntu(つまり、ユーザー名)が認識されたコマンドではないことを訴えています。私はあなたの提案が構文的に正しいとは思わない-たぶんそれはあなたの場合にうまくいくだろう。なぜなら、psたまたまコマンドでもユーザー名でもあるからだ。
beldaz

1
@beldazああいや!あなたが正しいです!構文的に正しいですsu <username>。投稿を編集しました。
ペシュー

1
毎回古いログアウト/ログインを再び動作させる。
Steampunkery

9

使用した方法は正しいようです。今、私はそれを複製しようとしましたが、うまくいきました。

タイプミスがあるかどうかはわかりませんが、コマンドにわずかな問題があります。そこに「mygroup」と記載する必要はありません。次の作品

# chmod -R g+swrx /mount/abc

でも、sビットを削除できますg+rwx。許可を変更してから変更するとls -l、関連する特権が表示されます。


2
グループ名のタイプミスを削除しました。ls -lを実行すると、ディレクトリにはwrx権限があり、nobody:mygroupが所有しています。myuserはmygroupの一部ですが、myuserはファイルを作成/削除できません。それが理にかなっていることを願っています。
カオス14

3

グループmygroupにはファイルtest.pngとフォルダへの書き込み権限がないため、ファイルを削除できません。ファイルに対して書き込み操作を行うには、ファイルのアクセス許可は次のようになります。

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

許可の形式を詳しく見ると

duuugggooo

最初の3つのプレースホルダーuuuは、ユーザーr ead、w rite、e x ecuteです。次の3つのプレースホルダーgggは、グループおよびoooその他のプレースホルダー用です。スニペットでは不足しているOP・グループによって投稿ワット儀式許可を。


2

承認済みの回答に追加するには(まだコメントできないため):

BitViseなどのソフトウェアを使用してサーバーへのSSH接続を作成する場合、単にターミナルを閉じて再度開くと、ログインおよびログアウトとしてカウントされません。あなたのをリロードするようなことします~/.bashrcが、実際のグループの更新実行しません(「ログイン」セッションでグループを追加した場合)。これを有効にするには、完全にログアウトし、SSHキー/資格情報で再度ログインする必要があります。


2

ディレクトリを開くには、xビットが設定されている必要があります(そのビットは、検索ビットと見なされます)。ですから、私はツリーを使用して、フォルダセットのみを取得し、すべてのファイルを実行可能ファイルとして設定するという悪夢を避けます(ツリーのオプションは -d List directories only.)。

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

警告!!!これを考慮に入れる必要があります。

  • ルート/ディレクトリまたはシステムディレクトリでchmodまたはchown再帰を使用すると、OSが破壊されます(実際、/ディレクトリまたはシステムディレクトリで再帰的なものはすべて危険です)

  • これは、そのようなパーミッションのバルクを設定するための良いセキュリティ慣行ではありません


1
まことにありがとうございます!「Directories need x bit set」という言葉で問題が解決しました!「sudo chmod g + x <parent dir path>」を実行しましたが、うまくいきました。
kinORnirvana
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.