通过Cygwin创建的文件(调用shell脚本)没有正确的Windows权限

时间:2011-07-18 23:18:23

标签: windows bash cygwin

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

创建文件后,所有者将设置为“SYSTEM”,Administrators/Creator Group/Creator Owner/system的权限仅设置为“特殊权限”,而不是其他任何内容。 每个人和用户的权限都有Read&执行,列出文件夹内容和阅读。

我的问题是我现在无法通过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

1 个答案:

答案 0 :(得分:4)

您可以尝试设置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