我有一个文件夹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
目录中的每个人提供信息,因为这会造成安全风险。而且您不会想要-R
chmod 因为这会递归地写入更改。
只是chmod 755 "filename"
,你很好。
以下是数字的细分:
- 读=4
- 写入 = 2
- 执行=1
然后你有 3 组:
- 所有者。
- 属于该集团的人。
- 其他所有人。
因此,如果您想授予所有者rwx
、属于该组的人员rw
以及其他所有人,rw
您只需添加权限:rwx
= 7,因为r
++是 4+2+1;= 6,因为w
+ = 4+2。x
rw
r
w
答案4
要复制所有者无权访问的文件夹,您必须更改这些权限。
如果文件夹即使对于所有者也受到限制,那么这是有某种原因的,并且向其他人授予权限 ( o
) 并不是一个好的解决方案(如第一个答案所示)。
对于所有者要访问的文件夹,需要设置读取 ( r
) 和执行/搜索位 ( X
)。如果文件夹内有文件夹,则每个文件夹都应遵循相同的规则。对于文件,只需读取位 ( r
) 就足够了。
因此,基本上要递归地授予文件夹的读取权限,您必须运行:
chmod -vR u+rX folder/
如果您以用户身份运行上述命令,请在前缀中添加sudo
(如果您具有超级用户权限),否则以 root 身份运行。
如果文件夹中的某些文件不属于 root,请通过以下方式递归更改它:
sudo chown -vR root folder/
然后照常复制或使用rsync
如下:
rsync -vuar src/ dst/
有关上述命令的更多说明,请检查:man chmod
和man chown
。