ls -l
命令时,我得到了以下结果:-rw-r--r-- 1 lenovo Admin .....m4sugar.m4
我希望能提供完全的访问权限。
非常感谢任何帮助。
谢谢。
ls -l
命令时,我得到了以下结果:-rw-r--r-- 1 lenovo Admin .....m4sugar.m4
我希望能提供完全的访问权限。
非常感谢任何帮助。
谢谢。
@cdhowie是正确的;这是msys的一个错误,已经在此处跟踪 -> http://sourceforge.net/tracker/?func=detail&atid=102435&aid=3071537&group_id=2435
它不能比现在做得更有用,除非在POSIX模拟中伪造它,就像Cygwin一样。然而,Cygwin所做的大部分都不相关;由于MSYS是从Cygwin-1.3分支出来的,因此大部分伪造被故意禁用了——MSYS的目标并不是提供由Cygwin支持的伪造POSIX功能的程度。如果您想要Cygwin的行为,并且MSYS没有足够满足您的需求,请使用Cygwin。
MSYS旨在更好地集成MinGW支持的本地MS-Windows功能。在这个本地MS-Windows环境中,没有文件系统属性可以将文件标记为可执行——这是由文件数据空间中的魔术字节序列指示的(通常也会通过文件名扩展名进行匹配)。 MSYS chmod无法安全地修改它,以避免文件损坏,除非更全面地采用Cygwin的模拟。然而,这与MSYS项目目标截然相反——它不会发生。
@kbulgrien提供了更好的更改权限方法:
cacls
: http://ss64.com/nt/cacls.html, 或者icacls
: http://ss64.com/nt/icacls.html注意:icacls
是cacls
的新版本,纠正了几个问题,但似乎在Windows XP中不存在。
您可以使用以下任何一条命令向所有人授予完全访问权限:
cacls“$ file_path”//E//P Everyone:F
icacls“$ file_path”//grant Everyone:F
请注意,在使用cacls
或icacls
之后,Msys中的ls -l
将不会显示有关真实ACL的准确信息。
$ >test
$ ls -l test
-rw-r--r-- 1 kbulgrie Administ 0 Aug 24 13:51 test
$ chmod u-w test
$ ls -l test
-r--r--r-- 1 kbulgrie Administ 0 Aug 24 13:51 test
$ chmod u+w test
$ ls -l test
-rw-r--r-- 1 kbulgrie Administ 0 Aug 24 13:51 test
正如您所看到的,chmod 运行良好。现在,让我们看看 Windows 二进制文件 attrib.exe 发生了什么:
$ ls -l test
-rw-r--r-- 1 kbulgrie Administ 0 Aug 24 13:51 test
$ attrib +R test
$ ls -l test
-r--r--r-- 1 kbulgrie Administ 0 Aug 24 13:51 test
$ attrib -R test
$ ls -l test
-rw-r--r-- 1 kbulgrie Administ 0 Aug 24 13:51 test
Windows 工具 attrib 对于 ugoa 权限是不可知的,并将其简化为具有或不具有权限:
$ attrib +R test
$ attrib test
R C:\msys\1.0\home\kbulgrien\test
我不确定期望MSYS工具做比Windows“等效”更多是否公平。 MSYS中的M代表“Minimal”。
cacls.exe在MSYS下可以执行某些操作。例如,这表示我和管理员拥有完全控制权,即使ls -l
似乎表明管理员没有写入权限。要小心。如果在Windows上,请使用Windows方法。
$ cacls test
C:\msys\1.0\home\kbulgrien\test BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
APD\kbulgrien:F
BUILTIN\Users:R
以下命令是我在MSYS环境中使用的一个命令,用于在从存档中还原后修复SQL数据库文件的权限。您可以从MSYS运行Windows二进制文件。我一直在这样做...例如,脚本在MSYS shell中运行diskpart、格式化等,而不调用cmd.exe。
$ cacls "Mantis*.*" //E //G "NETWORK SERVICE":F
chmod
。 - Forgottnsudo chmod
或者su
以及chmod
命令。这两个命令都需要输入su/root/admin
密码。 - Forgottnchmod
在 Windows 上是否真正有效;我不确定 NTFS ACL 是否准确地表示为类 Unix 权限,并且是否可以通过该接口进行更改。 - cdhowie