如何在Msys或Cygwin中将文件设置为只写或只读?

问题描述 投票:0回答:1

功能

chmod
Cygwin中实现,但与Windows中的访问权限不完全匹配。这出现在以下更改日志中:https://cygwin.com/cygwin-ug-net/ov-new1.7.html

自 1.7.34 起,chmod 并不总是影响 POSIX 权限掩码 由于改进的 POSIX,由 stat(2) 返回或由 ls(1) 打印 ACL 处理。然而,这还远远不够完美,所以,作为一个 临时解决方法,[...]

Msys
chmod的实现不起作用,如以下错误报告中所述:https://sourceforge.net/p/mingw/bugs/1475/

这个问题询问如何提供对Msys中文件的完全访问权限。

如何在 Msys/Cygwin 中将文件的权限分别更改为“只读”和“只写”?

谢谢

cygwin msys file-attributes
1个回答
4
投票

可以使用windows提供的命令:

cacls
icacls

只读,带有

cacls

$ cacls "<file_path>" //E //P Everyone:N 1>/dev/null
$ cacls "<file_path>" //E //G Everyone:R 1>/dev/null

只写,带有

cacls

$ cacls "$file_path" //E //P Everyone:N 1>/dev/null
$ cacls "$file_path" //E //G Everyone:W 1>/dev/null

第一行删除所有权限。 第二行添加“读取”或“写入”

如果您使用的不是 Windows XP,您可以使用

icacls
代替:

  • 只读
    icacls "<file_path>" //grant :r Everyone:R 1>/dev/null
  • 只写
    icacls "<file_path>" //grant :r Everyone:W 1>/dev/null

有关这些命令的更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.