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


34

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

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

重要な場合、システムはRedhat 5.4を実行しています。

回答:


37

chmod()システムコール、および拡張によりchmodプログラムは、ファイルやディレクトリのグループには影響しません(またはファイルの他のタイプ:ブロックの特殊文字の特別な、ソケット、...シンボリックリンクは特殊なケースのようなものです)。そのため、許可が与えられるグループは、ファイルまたはディレクトリが属するグループになります。

グループのrwxアクセス許可を追加するには、次を使用する必要があります。

chmod -R g+rwx DirectoryName

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

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

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

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


1
+ X(大文字のX)を使用する場合、ファイルがディレクトリであるか、一部のユーザーの実行許可が既にある場合にのみ、実行(または「検索」)許可を追加します。linux.die.net/man/1/chmod
デイブ

@Dave:chmod +XBSD(Mac OS X)でもサポートされているようです。POSIXの注意深い調査は、結局POSIX機能であるchmodことを示してい+Xます:パーマシンボルXは、ファイルがディレクトリである場合、または現在の(変更されていない)ファイルモードビットに少なくとも1つがある場合、ファイルモードビットの実行/検索部分を表します実行ビット(S_IXUSR、S_IXGRP、またはS_IXOTH)セット。ファイルがディレクトリではなく、現在のファイルモードビットに実行ビットが設定されていない場合は無視されます。以下の根拠に注意してください。
ジョナサンレフラー

12

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の専門家ではないので、おそらくサーバーフォールトで問い合わせてください。


「そのため、ファイルにrwxグループのアクセス許可を設定している場合、そのファイルの所有者グループのみが読み取り/書き込み/実行を実行できます」所有者ユーザールールも所有者グループ内でもない場合、他のユーザーのルールが適用されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.