我有一堆混合了各种权限的媒体文件(只需要 644)。有些是组或全局可写的,所以我想,为了安全起见,我会将它们全部改回 644。
问题是存在一个目录层次结构,并且对于在此捕获的所有目录将ls -l
它们显示为:
d????????? ? ? ? ? ? Dirname
Run Code Online (Sandbox Code Playgroud)
如果我 chmod 到 744,它是固定的。
我的问题是:这里发生了什么?目录是否需要可执行?
小智 7
如chmod
与权限相关的联机帮助页中所述:
字母 rwxXst 为受影响的用户选择文件模式位:读取(r)、写入(w)、执行(或搜索目录)(x)、仅当文件是目录或已经对某些文件具有执行权限时才执行/搜索用户 (X)
文件夹上的可执行位在上面解释为“搜索”权限;即执行位仅允许您在文件浏览器中访问文件夹或通过运行cd
命令或运行ls ~/folder
以列出文件夹中的文件从终端移动到文件夹。
该文件夹必须是所有者的可执行文件,尽管超级用户仍然可以访问该文件夹,因为在使用sudo
任何文件或目录时都可以访问或删除。此外,在 Stackoverflow 上这篇有用的文章中进一步解释了目录和文件权限。
同样重要的是要注意,“执行”文件夹并不意味着您实际上正在运行任何代码或命令,例如在运行可执行二进制文件或脚本时。
对于家庭桌面用户(尽管可能不适用于您的服务器)$HOME
,如果使用stat ~/myfolder
以下方式查看,其中的大多数文件夹都为用户、组和其他人设置了执行权限(摘录如下):
Access: (0755/drwxr-xr-x) Uid: ( 1000/ mike) Gid: ( 1000/ mike)
Run Code Online (Sandbox Code Playgroud)
对文件夹的标准权限内 $HOME
是755或775和文件他们是644。然而,文件系统的其余部分将有所不同。同样,文件夹必须具有所有者的执行位,否则他将无法打开它们。chmod
在更改权限时要小心,尤其是在递归执行时要小心,因为情况可能很快就会混乱。
欲了解更多信息,请参阅man chmod
或Ubuntu的联机帮助页,这文章的超级用户。
归档时间: |
|
查看次数: |
6158 次 |
最近记录: |