web-dev-qa-db-ja.com

フォルダー内に新しく作成されたファイルのアクセス許可を自動的に付与する

777にアクセス許可が設定されているフォルダーがありますが、そのフォルダーに解凍するファイルまたはフォルダーを追加すると。抽出されたファイルまたはフォルダーのアクセス許可は変更されません。宛先フォルダーの許可は777であり、そのフォルダーに追加するものが自動的に777の許可を取得するようにします。

そのフォルダーで.Zipを抽出してファイルまたはフォルダーを追加しても、抽出されたフォルダー/ファイルのアクセス許可は自動的に変更されません。新しくファイル/フォルダーを追加するには、常にchmodする必要があります!

7
Ibrahim

必要なものはACL- Access Control Lists と呼ばれます。

アクセス制御リスト(ACL)は、ファイルシステムに追加の、より柔軟な許可メカニズムを提供します。 UNIXファイルの許可を支援するように設計されています。 ACLを使用すると、任意のユーザーまたはグループに任意のディスクリソースへのアクセス許可を付与できます。

aclパッケージは既にインストールされている必要があります。チェックするには、dpkg -s aclを実行します。

ACLを使用するには、ファイルシステムでACLを有効にする必要があります。ただし、すでに有効になっている可能性があります。確認するには、tune2fs -lを使用します。システムを/dev/sda6に置き換えます:

$ tune2fs -l /dev/sda6 | grep "Default mount options:"
Default mount options:    user_xattr acl

aclWordが表示されている場合-デバイス/dev/sda6に対して既に有効になっています。

aclWordが表示されない場合は、tune2fs -o acl /dev/sda6を実行して有効にします。


ACLを変更するには、setfaclコマンドを使用します。許可を追加するには、setfacl -mを使用します。

ユーザーの許可を設定するには:

$ setfacl -m "u:username:rwx" /path/to/folder

これにより、rwx ACLがユーザーusernameに/ path/to/folderに設定されます。つまり、このフォルダーで作成されたすべてのファイルには、rwxに対するusername権限があります。


グループの許可を設定するには:

$ setfacl -m "g:groupname:rwx" /path/to/folder

これにより、グループrwxgroupname ACLが/ path/to/folderに設定されます。つまり、このフォルダーで作成されたすべてのファイルには、グループrwxgroupname権限があります。


その他のアクセス許可を設定するには:

$ setfacl -m "o:rwx" /path/to/folder

これにより、rwx ACLが/ path/to/folderに設定されます。つまり、このフォルダーで作成されたすべてのファイルには、他のユーザーに対するrwx権限があります。


許可を確認するには:

$ getfacl /path/to/folder

Aclを結合するには

$ setfacl -m u:username:rwx,g:groupname:rwx,o:rwx /path/to/folder

デフォルトACL

 The new object inherits the default ACL of the containing directory as its
 access ACL.

 If no default ACL is associated with a directory, the mode parameter to the func‐
 tions creating file objects and the file creation mask (see umask(2)) are used to
 determine the ACL of the new object:

 The new object is assigned an access ACL containing entries of tag types
 ACL_USER_OBJ, ACL_GROUP_OBJ, and ACL_OTHER. The permissions of these entries
 are set to the permissions specified by the file creation mask.

したがって、デフォルトACLを設定すると、preferredACLになります。つまり、userまたはgroupにACLを設定すると、新しく作成されたファイルはdefaultaclとにかく。デフォルトACLに注意してください。

デフォルトのACLを設定するには、-dキーを使用します。

$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder

またはdefault Wordを使用します

$ setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /path/to/folder

デフォルトACLの設定には注意してください。たとえば、次のように設定した場合:

$ setfacl -d -m o:--x /path/to/folder

そして今、このACLを取得します

$ getfacl /path/to/folder
# file: path/to/folder
# owner: c0rp
# group: c0rp
user::rwx
group::rwx
other::--x
default:user::rwx
default:group::rwx
default:other::--x

グループとユーザーのデフォルトACLは自動的にrwxになります!

ACLを削除

$ setfacl -b /path/to/folder

これにより、すべてのACLがフォルダーから削除されます


最後に

システムのユーザーのみである場合は、デフォルトのACLを使用することをお勧めします。

$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder

これは、/ path/to/folderに必要なことを行います

ソース

archlinux - https://wiki.archlinux.org/index.php/Access_Control_Lists

help.ubunt - https://help.ubuntu.com/community/FilePermissionsACLs

11
c0rp