我有一台 Debian Squeeze 服务器,带有 EasySCP 管理面板。此面板将域文件夹设置为/var/www/virtual/domain.name
每个域都有一个唯一的 ID vu2000
,vu2001
... 域文件夹下文件的所有权属于vu2000:vu2000
域 1、vu2001:vu2001
域 2 等等。一切运行良好(apache、root 访问等)。
我需要一个非 root SSH/SCP 用户,可以读取和写入所有域文件夹(递归)/var/www/virtual
(复制、创建文件等)。只有 root 可以执行此操作,我不想授予某人 root 访问权限,因为这存在许多安全风险。
我必须设置哪个组才能让用户访问和更改域文件夹中的文件?通过www-data
该组,该用户可以读取,但不能写入。我该如何设置?
答案1
您可以使用setacl
命令来使用 ACL
suku@ubuntu-vm:~$ ls -ld /test
drwxrwxr-x+ 2 root root 4096 Jan 4 20:55 /test
suku@ubuntu-vm:~$ sudo setfacl --recursive -m u:test:rwx /test
suku@ubuntu-vm:/test$ getfacl /test
getfacl: Removing leading '/' from absolute path names
# file: test
# owner: root
# group: root
user::rwx
user:test:rwx
group::r-x
mask::rwx
other::r-x
suku@ubuntu-vm:~$ sudo su - test
test@ubuntu-vm:~$ touch /test/a
test@ubuntu-vm:~$ ls -l /test/
total 0
-rw-rw-r-- 1 test test 0 Jan 4 20:58 a
手册页:http://manpages.ubuntu.com/manpages/gutsy/man1/setfacl.1.html
如果你没有 setfacl 命令,你可以在 ubuntu 中使用以下命令安装它:
sudo apt-get install acl