首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setfacl -R不适用于Cygwin

setfacl -R不适用于Cygwin
EN

Unix & Linux用户
提问于 2018-09-19 03:48:50
回答 2查看 816关注 0票数 0

我想更改基目录中所有目录和文件的ACL和默认ACL。在其他答案(如这一个)中,使用了-R标志。然而,我得到

代码语言:javascript
复制
$ setfacl -R -m u::rwx my_dir/
setfacl: unknown option -- R
Try `setfacl --help' for more information.

# this is different from what's done on, e.g. Ubuntu
# setfacl -R -d -m u::rwx mydir/
$ setfacl -R -m d:u::rwx mydir/

如何递归地设置Cygwin的ACL权限?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-09-19 16:48:31

若要对目录中包含的任何文件和目录重复该命令,可以使用find及其-exec选项。

代码语言:javascript
复制
find my_dir -exec setfacl -m u::rwx {} \;
票数 1
EN

Unix & Linux用户

发布于 2018-09-19 03:51:10

这已经过测试了。

代码语言:javascript
复制
outfile="permissions.out"; echo | tee -a "${outfile}"; echo "For directory:" | tee -a "${outfile}"; echo "$(pwd)" | tee -a "${outfile}"; find . -print0 | xargs -I'{}' -0 bash -c 'echo; echo " Changes for {}"; echo "Trying to change the group"; chgrp '"'"'my_group'"'"' "{}"; if [ -f "{}" -o -d "{}" ]; then echo; echo "User to rwx"; setfacl -m u::rwx "{}"; setfacl -m u:bballdave025:rwx "{}"; echo "User-default to rwx"; if [ -d "{}" ]; then setfacl -m d:u::rwx "{}"; setfacl -m d:u:bballdave025:rwx "{}"; else echo "  Not a directory, no defaults."; fi; echo "Group to rwx"; setfacl -m g::rwx "{}"; echo "Group-default to rwx"; if [ -d "{}" ]; then setfacl -m d:g::rwx "{}"; setfacl -m d:g:my_group:rwx "{}"; else echo "  Not a directory, no defaults."; fi; echo "Other to r-x"; setfacl -m o:r-x "{}"; echo "Other-default to r-x"; if [ -d "{}" ]; then setfacl -m d:o::r-x "{}"; else echo "  Not a directory, no defaults"; fi; else echo "  Not a file nor a directory, probably a permissions error."; fi; echo "Changing executable bit"; chmod a+x "{}"; echo -e "\nDone with {}\n\n\n";' | tee -a "${outfile}"

或者,作为更易读的东西,这可能是一个脚本,但更有可能只是一个更好的脚本的开始。(这还没有经过测试。)

代码语言:javascript
复制
#!/bin/bash

find $1 -print0 | \
xargs -I'{}' -0 bash -c \
'echo; '\
'echo " Changes for {}"; '\
'echo "Trying to change the group"; '\
'chgrp '"'"'my_group'"'"' "{}"; '\
'if [ -f "{}" -o -d "{}" ]; then '\
'  echo; '\
'  echo "User to rwx"; '\
'  setfacl -m u::rwx "{}"; '\
'  setfacl -m u:bballdave025:rwx "{}"; '\
'  echo "User-default to rwx"; '\
'  if [ -d "{}" ]; then '\
'    setfacl -m d:u::rwx "{}"; '\
'    setfacl -m d:u:bballdave025:rwx "{}"; '\
'  else '\
'    echo "  Not a directory, no defaults."; '\
'  fi; '\
'  echo "Group to rwx"; '\
'  setfacl -m g::rwx "{}"; '\
'  echo "Group-default to rwx"; '\
'  if [ -d "{}" ]; then '\
'    setfacl -m d:g::rwx "{}"; '\
'    setfacl -m d:g:my_group:rwx "{}"; '\
'  else '\
'    echo "  Not a directory, no defaults."; '\
'  fi; '\
'  echo "Other to r-x"; '\
'  setfacl -m o:r-x "{}"; '\
'  echo "Other-default to r-x"; '\
'  if [ -d "{}" ]; then '\
'    setfacl -m d:o::r-x "{}"; '\
'  else '
'    echo "  Not a directory, no defaults"; '\
'  fi; '\
'else '\
'  echo "  Not a file nor a directory, probably a permissions error."; '\
'fi; '\
'echo "Changing executable bit"; '\
'chmod a+x "{}"; '\
'echo -e "\nDone with {}\n\n\n";'
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/469922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档