理解文件权限的问题

理解文件权限的问题

我对文件权限的某些方面理解有困难。情况如下:

我创建了一个目录/到使用 sudo 然后将其权限更改为 drwxrwsr-x。我还将目录的组更改为我的系统上存在的“xxx”。我是“xxx”组的正式成员。我的理解是,我应该能够在/到因为我是“xxx”小组的成员。

但是,当我运行以下命令时,尝试创建每个文件和目录时都会被拒绝权限/到

cp -r from/* /to

我对这种情况有什么不明白的地方?我显然可以使用 sudo 或更改所有者来修复此特定实例,但我想了解其原理。

命令输出

jgossage@Hector:~$ cp -r Downloads/* /Downloads
cp: cannot create directory /Downloads/Eclipse': Permission denied
cp: cannot create regular file /Downloads/google-chrome-stable_current_amd64.deb':
Permission denied
cp: cannot create directory /Downloads/Kindle': Permission denied
cp: cannot create directory /Downloads/WindowsDlls': Permission denied
#Target directory information
jgossage@Hector:~$ ls -al /Downloads
total 8
drwxrwsr-x 2 root admins 4096 Feb 13 07:16 .
drwxr-xr-x 28 root root 4096 Feb 14 08:23 ..
jgossage@Hector:~$

答案1

查看您设置的权限,我认为您没有授予“其他人”写入目录的权限。查看您授予的权限

drwxrwsr-x

我很确定这可以分解为:

type: d
owner: rwx (Read/Write/Execute)
group: rws (Read/Write/Special)
all/others: r-x (Read and Execute)

由于该文件夹是以 root (sudo) 身份创建的,因此只有 root 用户才有权写入该文件夹(尽管作为用户,您可以读取目录的内容)。

我认为要解决这个问题你应该能够运行:

sudo chmod o+w /to

自然替代/到用真实的文件夹名称/路径。这将给出全部用户对该文件夹具有写权限,这可能并不理想。或者,您可以取得该文件夹(以及文件夹中的所有文件)的所有权:

sudo chown -R jgossage /to

再次更换/到使用真实的文件夹名称/路径。这应该保持目录权限相同 (drwxrwsr-x),这意味着所有者将具有读/写/执行权限,但其他用户仅具有读取和执行权限。

相关内容