use*_*827 23 unix ubuntu chmod
我试图递归更改"数据"目录的目录和子目录的权限,并运行到以下错误..有人提供以下错误的输入?
<username:/local/mnt/workspace/data>chmod -R 0644 .
chmod: cannot read directory `.': Permission denied
Run Code Online (Sandbox Code Playgroud)
Dav*_* W. 53
目录需要执行权限集才能查看其内容.
来自http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm
你可以这样想到对目录的读取和执行:目录是为每个文件保存两条信息的数据文件,文件的名称和它的inode编号.需要读取权限才能访问目录中的文件名.如果您已经知道文件的名称,则需要执行(也称为搜索)权限才能访问目录中文件的inode.
当您将目录权限更改为644时,您无法读取该目录中的文件,尽管您可以读取该目录以查看它是否存在.
你需要这样做:
$ chmod -R 0755 .
Run Code Online (Sandbox Code Playgroud)
如果您只是想关闭,更好的方法可能是使用字符串权限
否则,您可以看到该目录,但不能访问该目录中的信息.
您最好使用相对权限而不是绝对权限:
$ chmod -R go-w .
Run Code Online (Sandbox Code Playgroud)
将删除组和其他的写入权限,但不会触及执行权限.
您也可以find只使用设置目录或只是设置文件:
$ find . -type d -exec chmod 755 {} \;
Run Code Online (Sandbox Code Playgroud)
这只会触及目录,设置所有目录的读取和执行权限,并为所有者设置写入权限.这样,您就不会为文件本身设置执行权限.
| 归档时间: |
|
| 查看次数: |
71756 次 |
| 最近记录: |