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

标签 cygwin msys file-attributes

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

Since 1.7.34, chmod does not always affect the POSIX permission mask as returned by stat(2) or printed by ls(1), due to the improved POSIX ACL handling. However, that's still far from perfect, so, as a temporary workaround, [...]

Msyschmod 的实现无法正常工作,如以下错误报告中所述:https://sourceforge.net/p/mingw/bugs/1475/

This question询问如何提供对 Msys 中文件的完全访问权限。

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

谢谢

最佳答案

可以使用windows提供的命令:caclsicacls

只读,带有 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 :rEveryone:R 1>/dev/null
  • 只写:icacls "$file_path"//grant :rEveryone:W 1>/dev/null

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

关于cygwin - 如何在 Msys 或 Cygwin 中将文件设置为只写或只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38973612/

相关文章:

cmake MSYS Makefiles 生成器丢失

c++ - MinGW 编译器错误 - 如何设置 MSYS bat?

c++ - cygwin 中的 SQLite3 导致链接器错误

c++ -/bin/sh : pkg-config: command not found

linker - 从 Makefile 调用时,MSYS2 shell 上的 ar 会收到截断的路径吗?

java - 使用 JSch 读取 SFTP 服务器上文件的文件扩展属性

os.removexattr 的 Python 文档—— '*'(星号)参数是什么意思?

Java NTFS 压缩属性

cygwin -\r'' 中意外标记 `$' 附近出现语法错误

c - 如何在cygwin环境下使用mingw-w64工具链编译ffmpeg