GNU/Linux >> Linux の 問題 >  >> Linux

特定のディレクトリ内に作成されたファイルのグループと権限を強制するにはどうすればよいですか?

グループを設定するには、/var/www を指定します setgid ビット:

chgrp www-data /var/www
chmod g+s /var/www

サブディレクトリも調整するには:find /var/www -type d -exec chmod g+s {} +

これにより、新しく作成されたすべてのファイルが、ユーザーのグループではなく、親ディレクトリのグループを継承します。

デフォルトのグループ権限を設定するには、ACL を使用する必要があります . 「デフォルト」ACL を設定する:

setfacl -m "default:group::rwx" /var/www

サブディレクトリも調整するには:find /var/www -type d -exec setfacl -m d:g::rwx {} +

注:ファイル システムでは、ACL サポートが有効になっている必要があります。デフォルトでオンになっている場合もあります。 ext3 で またはext4 「操作がサポートされていません」というメッセージが表示される場合があります。その場合は、手動で有効にする必要があります:

  • 現在マウントされているファイルシステムの場合:mount -o remount,acl /

  • 恒久 – 1 以下のメソッドの:

    • fstab レベル:/etc/fstab を編集 acl を持つ オプション欄

    • ファイルシステム レベル:tune2fs -o acl /dev/diskname


これにより、setgid で「grawity」の回答に行き詰まる人が何人かいる可能性があります。フォルダーのグループが自分のグループと異なる場合は、root として chmod を実行する必要があるかもしれませんが、これを行う必要があることを示すエラーは表示されません。

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                    #no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo       #and the group is still wrong


$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo #and group is set

Linux
  1. Linux –ディレクトリ内のすべてのフォルダ/ファイルにデフォルトのファイル権限を設定するにはどうすればよいですか?

  2. Inotifywaitを使用して、特定の拡張子のファイルを作成するためのディレクトリを監視する方法は?

  3. Linux –サーバー上の共有ディレクトリのアクセス許可の問題?

  1. Linux でファイルとディレクトリのアクセス許可/所有権を管理する方法

  2. フォルダーとそのサブフォルダー/ファイルのアクセス許可をワンステップで変更する方法は?

  3. 特定のタイプのファイルのみのディレクトリをどのように比較しますか?

  1. Linuxで特定のディレクトリまたは別のディレクトリにtarファイルを抽出する方法

  2. ディレクトリとサブディレクトリ内のファイル数を見つける方法

  3. WWW フォルダに Linux のアクセス許可を設定するにはどうすればよいですか?