我目前正在目标
Windows Server 2003计算机上运行Cygwin,以启动一个shell脚本,除其他外,它会在光盘上创建一堆文件.但是,在创建文件后,我不再有权通过Windows操作它们.
创建文件后,所有者将设置为“SYSTEM”,并且Administrators / Creator组/创建者所有者/系统的权限仅设置为“特殊权限”,而不是其他任何内容.
每个人和用户的权限都有Read&执行,列出文件夹内容和读取.
我的问题是我现在无法通过Windows删除/修改文件.我希望在我的脚本中内置一些东西(shell脚本或在Cygwin中调用的东西),这样可以让管理员完全控制文件夹和所有内容.
我目前的解决方法是通过Cygwin进行文件修改,但这不是首选.我还使用了setfacl -r -m default:other:rwx为’Users’组添加写权限但它似乎没有递归选项但仍然没有’完全控制’
有没有更好的方法来使用setfacl?我可以使用不同/提升的权限调用shell脚本吗?
getfacl在新创建的目录上的结果:
$getfacl Directory/ # file: Directory/ # owner: SYSTEM # group: root user::rwx group::r-x group:Users:rwx mask:rwx other:r-x default:user::rwx default:group::r-x default:group:Users:rwx default:mask:rwx default:other:r-x
您可以尝试设置umask:
umask u=rwx,g=rwx,o=rwx
这应该为任何新创建的目录提供用户,组和其他读/写/执行.
如果您只想永久修改umask,可以将其添加到.bash_profile中
编辑 – 在umask之前/之后添加了mkdir的示例.
这是在我设置umask之前创建的目录上getfacl的输出:
[/cygdrive/c/Documents and Settings/NOYB/Desktop] ==> getfacl test_wo_umask/ # file: test_wo_umask/ # owner: NOYB # group: Domain Users user::rwx group::r-x group:root:rwx group:SYSTEM:rwx mask:rwx other:r-x default:user::rwx default:user:NOYB:rwx default:group::r-x default:group:root:rwx default:group:SYSTEM:rwx default:mask:rwx default:other:r-x
这是我设置umask后创建的目录上getfacl的输出:
[/cygdrive/c/Documents and Settings/NOYB/Desktop] ==> getfacl test_w_umask/ # file: test_w_umask/ # owner: NOYB # group: Domain Users user::rwx group::rwx group:root:rwx group:SYSTEM:rwx mask:rwx other:rwx default:user::rwx default:user:NOYB:rwx default:group::rwx default:group:root:rwx default:group:SYSTEM:rwx default:mask:rwx default:other:rwx