GIDとコマンドを理解できませんchmod g+s
私はそれを+ sのようなグループに対して渡されたファイルまたはディレクトリの権限を設定すると理解します(固定されていると仮定しますか?)+ sは固定を意味しますか、そのファイル/ディレクトリの現在のグループ権限をコピーして、設定するという意味ですか?新しく作成されたすべてのファイルとディレクトリは元のディレクトリにありますか?
/test/ディレクトリに新しく追加されたすべてのファイルが自動的に「finance」グループに属するようにするには、chmod g + sがこれを実行する正しいコマンドですか?
chmodのマニュアルページは、少なくとも私には、コマンドが実行する操作の明確な説明を提供していません。
答え1
略語:「s」の意味置く。
長い:
に適用される場合 文書、chmod g+s
setgidに使用されます。つまり、ファイルが実行可能でグループビットが設定されている場合グループファイルのグループ所有権と一致するように設定します。この機能はしばらくUnixで利用できました(例:バージョン6を参照)。マニュアルページ)。
動作はシステムによって異なる可能性があるため、ディレクトリを文書化するのはより困難です。
POSIX特定の動作が指定されていません。ただ次のようになります。
互換アプリケーションは、ディレクトリのset-user-IDおよびset-group-IDビットを解釈する方法を知っていると仮定してはいけません。
~のためAIXそして高性能ユーザー体験システム、何も言及しないで目次
~のためソラリス
ディレクトリの場合、グループIDを伝播するためにBSDセマンティクスを使用してファイルが生成されます。このオプションを使用すると、ディレクトリに作成されたファイルとサブディレクトリは、現在のプロセスのグループIDではなく、ディレクトリのグループIDを継承します。シンボルモードを使用しないとクリアできません。
それでも(参考「BSDセマンティクス」)、この動作は存在しませんSun OS 4マンページ。
現代のシステムではFreeBSD、OSXそしてLinux「BSDセマンティクス」を提供していますが、ネットワークBSDそしてオープンBSD千万です。
追加の読書(興味深いことには許可された答えはありません):