Answers:
如联机帮助页中所述,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)
文件夹内 的标准权限$HOME
是755或775,文件是644。但是,文件系统的其余部分将有所不同。同样,文件夹必须具有所有者的执行位,否则所有者将无法打开文件夹。重要的是,chmod
在更改权限时要特别小心,尤其是在以递归方式进行更改时,因为这种情况会很快弄糟。
有关更多信息,请参见man chmod
或在线Ubuntu联机帮助页,以及Superuser上的本文。
目录需要x
设置位(对于目录,该位被视为搜索位)才能打开。许多人发现,当他们删除chmod -R
整个文件夹上的可执行位时,便无法再访问它。为了解决这个问题,我使用了tree
仅设置文件夹的设置,避免了将所有文件设置为可执行文件的噩梦(tree的选项为 -d List directories only.
):
sudo tree -faid dirname | xargs -L1 -I{} sudo chmod +x "{}"
如果您没有tree
:
find dirname -type d -exec chmod +x {}
警告!!!您应该考虑以下因素:
在根/
目录或系统目录上使用chmod或chown递归会破坏您的操作系统(实际上,在/
目录或系统目录上进行递归的任何操作都是危险的)
像这样设置许可批量不是一个好的安全实践