我目前正在目标Windows Server 2003计算机上运行Cygwin,以启动shell脚本,该脚本除其他外在磁盘上创建了一堆文件。但是,创建文件后,我将不再具有通过Windows操作它们的权限。

创建文件后,所有者将设置为“SYSTEM”,并且Administrators/Creator Group/Creator Owner/system的权限仅设置为“特殊权限”,而没有其他权限。
每个人和用户的权限具有“读取和执行”,“列出文件夹内容”和“读取”。

我的问题是我现在无法通过Windows删除/修改文件。我希望在脚本中内置一些内容(shell脚本或Cygwin中要调用的内容),以使管理员可以完全控制文件夹和所有内容。

我当前的解决方法是通过Cygwin进行文件修改,但这不是可取的。我还使用了setfacl -r -m default:other:rwx为“用户”组添加了写权限,但是它似乎没有递归选项,并且仍然没有提供“完全控制权”

有没有更好的使用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的示例。

这是在设置getfacl之前创建的目录上umask的输出:
[/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

这是我设置getfacl后创建的目录上umask的输出:
[/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

关于windows - 通过Cygwin创建的文件(调用Shell脚本)没有正确的Windows权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6740558/

10-11 22:04
查看更多