复制“root”拥有的文件时“cp”权限被拒绝

复制“root”拥有的文件时“cp”权限被拒绝

我有一个文件夹udp_folder2

d------r-T 41 root           root     4096 Apr 26 21:17 udp_folder2

当我与除 以外的用户一起使用时root,我无法cp -r将其放入新文件夹中,它显示:权限被拒绝

为什么?以及如何用除root

答案1

出色地,

那是因为按照您当前权限的设置方式,没有人可以移动该文件。 (除了 root 之外,因为 root 不遵循相同的规则。)

您需要更改文件的所有者 (chown),或者将其他用户添加到“root”组并对其进行 chmod,以便该组可以在该目录上执行,或者允许其他人执行该文件。

因此,快速解决方法是:

chmod -R o+rwx udp_folder2

这将使每个人都能够在该目录上读取、写入和执行。

另外...如果您尝试将“udp_folder2”复制到它现在所在的同一目录中,您还需要该目录的“w”权限。例如:

/foo/udp_folder2 - 您需要 /foo 上的“w”才能将该目录复制到 /foo 中

我建议学习linux文件权限: Linux 文件权限教程

答案2

该目录没有x权限,因此其他人(即本例中的任何用户)都可以使用该目录访问其中的文件。这T意味着它是粘性的(只有文件的所有者才能删除它)。有了x许可和粘性位,你会看到一个小写的t;大写字母T表示“没有访问权限,但粘滞位,这是一个奇怪的组合”。

阅读 Unix 文件/目录权限。这并不难,而且你将要需要它。

答案3

您不想向rwx目录中的每个人提供信息,因为这会造成安全风险。而且您不会想要-Rchmod 因为这会递归地写入更改。

只是chmod 755 "filename",你很好。

以下是数字的细分:

  • 读=4
  • 写入 = 2
  • 执行=1

然后你有 3 组:

  • 所有者。
  • 属于该集团的人。
  • 其他所有人。

因此,如果您想授予所有者rwx、属于该组的人员rw以及其他所有人,rw您只需添加权限:rwx= 7,因为r++是 4+2+1;= 6,因为w+ = 4+2。xrwrw

答案4

要复制所有者无权访问的文件夹,您必须更改这些权限。

如果文件夹即使对于所有者也受到限制,那么这是有某种原因的,并且向其他人授予权限 ( o) 并不是一个好的解决方案(如第一个答案所示)。

对于所有者要访问的文件夹,需要设置读取 ( r) 和执行/搜索位 ( X)。如果文件夹内有文件夹,则每个文件夹都应遵循相同的规则。对于文件,只需读取位 ( r) 就足够了。

因此,基本上要递归地授予文件夹的读取权限,您必须运行:

chmod -vR u+rX folder/

如果您以用户身份运行上述命令,请在前缀中添加sudo(如果您具有超级用户权限),否则以 root 身份运行。

如果文件夹中的某些文件不属于 root,请通过以下方式递归更改它:

sudo chown -vR root folder/

然后照常复制或使用rsync如下:

rsync -vuar src/ dst/

有关上述命令的更多说明,请检查:man chmodman chown

相关内容