我有一个名为 Movies 的文件夹,里面有 Movie1、Movie2 等子文件夹,以及该子目录中的电影。示例如下:
Movies:
Movie1
film.whatever1
Movie2
film.whatever1
Movie3
film.whatever1
Movie4
film.whatever1
Movie5
film.whatever1
我希望目录的权限为 755,这样任何人都可以导航到 Movie1-5 文件夹(权限为 755 而不是 744 的唯一原因是,更改目录需要执行位)。但我希望所有 film.whatever1-5 文件都是只读的。我无论如何也想不出这是否可行。
我尝试使用大写 X 的 setfacl 命令来执行此操作,如下所示:
setfacl -R -d -m u::rwx Movies
setfacl -R -d -m g::r-X Movies
setfacl -R -d -m o::r-X Movies
setfacl -R -m u::rwx Movies
setfacl -R -m g::r-X Movies
setfacl -R -m o::r-X Movies
结果是它将文件夹和文件都改为可执行文件。这是一个非常烦人的问题,我需要解决。
答案1
您可以使用find
选项对常规文件和目录运行不同的命令-type
。这将对 中的所有内容递归运行./Movies
:
# all directories become 755 (rwx r-x r-x):
find ./Movies -type d -exec chmod 755 '{}' \;
# all files become 644 (rw- r-- r--):
find ./Movies -type f -exec chmod 644 '{}' \;