web-dev-qa-db-ja.com

chmodでグループを指定する方法は?

別のユーザーのホームフォルダー内のディレクトリにgroup-wrxアクセス許可を追加するように求められました。

私がすべきことはchmod 771 -R directorynameは親ディレクトリにあります。チューブのどこにも見つからないのは、これらのアクセス許可を付与するwhichグループの指定方法です。私は個人的にいくつかのグループに属しており、たくさんのグループの中でrootとしては知りません。

必要に応じて、システムはRedhat 5.4を実行しています。

34
malenkylizards

chmod()システムコール、およびchmodプログラムの拡張は、ファイルまたはディレクトリ(または他のタイプのファイル:ブロックスペシャル、キャラクタースペシャル、ソケットなど)のグループには影響しません。 。symlinkは特別なケースの一部です)。したがって、権限が付与されるグループは、ファイルまたはディレクトリが属するグループになります。

グループrwx権限を追加するには、次を使用する必要があります。

chmod -R g+rwx DirectoryName

ただし、これにより、すべてのファイルとすべてのディレクトリに権限が追加され、すべてのファイルが実行可能である必要はありません。個人的には、誰かが私のディレクトリのすべて(またはいずれか)に対してグループ書き込み権限を提供した場合、非常に不幸ですが、それは別の話です。

ディレクトリのみに影響を与えるには、代わりに find を使用します。

find DirectoryName -type d -exec chmod g+rwx {} +

+表記はPOSIX 2008です。 Linuxではサポートされていますが、すべてのUnixシステムでサポートされているわけではありません)。

39

extファイルシステム上のすべてのファイルには、次のものが含まれます。

  1. 所有者ユーザー
  2. オーナーグループ
  3. このユーザー、このグループ、およびその他すべてのユーザーの権限。

ファイルにrwxグループ権限を設定している場合、そのファイルの所有者グループのみがファイルの読み取り、書き込み、実行を行うことができます。ただし、次のようにしてユーザーと所有者を変更できます。

chown username file1 file2 ...
chown -R username somedir
chgrp groupname file1 file2 ....
chgrp -R groupname somedir
chown username:groupname file1 file2 ...

Mac OS XのACL(アクセス制御リスト)など、拡張ファイルシステム権限にはさまざまな実装がありますが、私はLinuxの専門家ではないため、おそらく Server Fault で確認する必要があります。

13
Marian Theisen