我正在尝试将文件复制到我的用户帐户不是目录所有者但属于目录组所有者的组的目录中。这些是我采取的步骤:
创建一个组并将我添加到该组
stephen@pi:~ $ sudo groupadd test-group
stephen@pi:~ $ sudo usermod -a -G test-group stephen
stephen@pi:~ $ grep 'test-group' /etc/group
test-group:x:1002:stephen
创建文件并列出权限
stephen@pi:~ $ touch example.txt
stephen@pi:~ $ ls -l example.txt
-rw-r--r-- 1 stephen stephen 0 Feb 9 10:46 example.txt
创建目录,将组属主修改为新组并更改目录权限以授予组写入权限
stephen@pi:~ $ sudo mkdir /var/www/testdir
stephen@pi:~ $ sudo chown :test-group /var/www/testdir/
stephen@pi:~ $ sudo chmod 664 /var/www/testdir/
stephen@pi:~ $ sudo ls -l /var/www
total 8
drwxr-xr-x 2 root root 4096 Oct 31 12:17 html
drw-rw-r-- 2 root test-group 4096 Feb 9 10:48 testdir
将新创建的文件复制到此目录
stephen@pi:~ $ cp example.txt /var/www/testdir/straight-copy.txt
cp: failed to access '/var/www/testdir/straight-copy.txt': Permission denied
对我来说,这应该是成功的;我是拥有此目录所有权的组的成员,并且组权限设置为 rw。最终,我希望复制到此目录的任何文件都继承父目录(/var/www/testdir)的权限。
我可以用 复制sudo
,但这不会从父目录继承所有者或权限,也不会保留原始所有权(可能因为我被提升为 root 进行复制):
复制sudo
并列出文件的所有权/权限
stephen@pi:~ $ sudo cp example.txt /var/www/testdir/straight-copy.txt
stephen@pi:~ $ sudo ls -l /var/www/testdir/
total 0
-rw-r--r-- 1 root root 0 Feb 9 11:06 straight-copy.txt
请问有人可以向我解释发生了什么吗?