シェルスクリプトを使用してディレクトリを作成し、そのディレクトリに対して "chmod g + s"権限を使用していますが、再帰権限は失敗します。

シェルスクリプトを使用してディレクトリを作成し、そのディレクトリに対して "chmod g + s"権限を使用していますが、再帰権限は失敗します。

シェルスクリプトで次の権限を持つディレクトリを作成しています。

chmod -R 770 /user/mydir
chown -R user:mygroup /user/mydir
chown -R g+s /user/mydir

しかし、新しいディレクトリを作成するたびに/user/mydir権限を取得します。drwxrwsr-x。ディレクトリの場合、その下に新しいファイルを作成すると、ファイルに対する権限があります。しかし、費用を支払っているのでそう-rw-rw-r--です。私が何を間違っているのかわかりません。解決するのに役立ちます。-rwxrwx---chmod 770

答え1

ディレクトリにgidを設定すると、モードではなくグループのみが設定されます。

ファイルアクセス制御リストが必要です。バラよりGnu / linuxでファイル権限などを設定する他の方法は何ですか?

setfacl -R -m o:-,d:o:- «dir-name»

説明する:

  • setfaclfacl(ファイルアクセス制御リスト)を設定するために使用されます。
  • -R既存のサブファイルを繰り返します。
  • -mリストを編集
  • o:-他のすべてのアイテムを消去するように設定
  • d:o:-すべて消去するには、別のデフォルト値を設定してください。

また、sgidの効果を得て、ユーザーが常に権限を持っていることを保証できます(所有者が誰であるかに関係なく)。

setfacl -R -d -m u:user:rwx,g:mygroup:rwx,o:- «dir-name»
setfacl -R    -m u:user:rwx,g:mygroup:rwx,o:- «dir-name»

関連情報