Linux为将来的文件和文件夹设置用户和组所有权
我正在使用以下命令更改用户和组所有权:Linux为将来的文件和文件夹设置用户和组所有权,linux,permissions,filesystems,file-permissions,ownership,Linux,Permissions,Filesystems,File Permissions,Ownership,我正在使用以下命令更改用户和组所有权: sudo chown -R apache:www /var/www 但是,我注意到,每当我向该目录添加新文件或文件夹时,所有者都是我当前的用户名,而不是预期的用户apache。如何修改上述命令,使所有未来的文件夹和文件都归apache:www所有?或者我需要使用额外的命令吗?我猜您需要在执行命令之前更改用户-类似于以下内容的脚本: $whoami user1 $ su - apache Password: $ whoami apache [add fil
sudo chown -R apache:www /var/www
但是,我注意到,每当我向该目录添加新文件或文件夹时,所有者都是我当前的用户名,而不是预期的用户apache。如何修改上述命令,使所有未来的文件夹和文件都归apache:www所有?或者我需要使用额外的命令吗?我猜您需要在执行命令之前更改用户-类似于以下内容的脚本:
$whoami
user1
$ su - apache
Password:
$ whoami
apache
[add file]
$ exit
您可以使用ACL来执行此操作。例如:
$ ls -ld /var/www
drwxr-xr-x 2 apache www 4096 Aug 7 13:53 /var/www
$ sudo setfacl -dRm u:apache:rwX,g:www:rwX /var/www
$ ls -ld /var/www
drwxr-xr-x+ 2 apache www 4096 Aug 7 13:53 /var/www
$ getfacl /var/www
# file: var/www
# owner: apache
# group: www
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:apache:rwx
default:group::r-x
default:group:www:rwx
default:mask::rwx
default:other::r-x
当在那里创建新文件时,这些文件仍将由您的用户拥有,但其中还将设置一个ACL,向apache用户授予权限:
$ touch donkey
$ ls -l donkey
-rw-rw-r--+ 1 gene gene 0 Aug 7 13:57 donkey
$ getfacl donkey
# file: donkey
# owner: gene
# group: gene
user::rw-
user:apache:rwx #effective:rw-
group::rwx #effective:rw-
group:www:rwx #effective:rw-
mask::rw-
other::r--
命令概述:
setfacl -dRm u:apache:rwX,g:www:rwX /var/www
标志指定应用于默认ACL的操作-d
标志设置递归应用的操作-R
指示这将是一个修改操作-m
- u:用户名:权限
- g:GROUPNAME:权限
X
权限(注意:它是大写)意味着它将只应用于目录而不是文件。您可以通过使用chmod
的SETGID
(设置组ID)标志在组级别实现这一点:
chmod g+s <group> <directory>
将导致/srv/www
中新创建的文件和目录具有组www
您可以通过执行ls-al
来验证,这将显示目录上组“execute”权限的s
。e、 g
drwxr-sr-x. 5 apache www 4096 Mar 13 20:32 www
^
SETGIT
有没有办法自动设置它,这样我就不需要切换用户名了?
drwxr-sr-x. 5 apache www 4096 Mar 13 20:32 www
^
SETGIT