我目前正在目标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/