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
ユーザーが属しているグループが所有するファイルを削除または作成することはできません。
私はグループがどのように機能するかを完全に理解していないと思います。あなたがグループの一員だったら、そのグループの許可を継承すると思った。私は何か間違っていますか?
ありがとう
最近ログアウトまたはログインせずに、そのユーザーをそのグループに追加しましたか?次に、「グループ」にグループが表示されますが、ユーザーにはまだグループ権限がありません。
を使用して効果的なグループを表示できます
$ id
例として、ユーザーps
をグループfax
に追加してから、
$ id
グループfax
は表示されませんが、
$ groups ps
fax
と表示されます。
自分のユーザーにsu
を実行すると、新しいグループに所属できます。
$ su ps
$ id
出力にはfax
も含まれるようになりました。
使用した方法は正しいようです。今、私はそれを複製しようとしましたが、うまくいきました。
タイプミスがあるかどうかはわかりませんが、コマンドにわずかな問題があります。そこに「mygroup」と記載する必要はありません。次の作品
# chmod -R g+swrx /mount/abc
s
ビットを削除することもできますが、g+rwx
を実行するだけです。許可を変更し、ls -l
を実行すると、関連する特権が表示されます。
グループ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グループが投稿したスニペットには、w rite権限がありません。
ディレクトリを開くには、xビットを設定する必要があります(そのビットは検索ビットと見なされます)。そのため、フォルダーセットのみを取得し、すべてのファイルを実行可能ファイルとして設定するという悪夢を避けるためにツリーを使用します(ツリーのオプションは-d List directories only.
です)。
Sudo tree -faid /mount/abc | xargs -L1 -I{} Sudo chmod 755 "{}"
警告!!!これを考慮に入れる必要があります:
ルート/
ディレクトリまたはシステムディレクトリでchmodまたはchown再帰を使用すると、OSが破壊されます(実際、/
ディレクトリまたはシステムディレクトリで再帰的なものはすべて危険です)
これは、そのようなパーミッションのバルクを設定するための良いセキュリティ慣行ではありません
承認済みの回答に追加するには(まだコメントできないため):
BitViseなどのソフトウェアを使用してサーバーへのSSH接続を作成する場合、単にターミナルを閉じて再度開くと、ログインおよびログアウトとしてカウントされません。それはwill~/.bashrc
をリロードするようなことをしますが、notは実際に実行しますグループの更新(「ログイン」セッションでグループを追加した場合)。これを有効にするには、完全にログアウトして、SSHキー/資格情報で再度ログインする必要があります。