【发布时间】:2018-03-18 12:38:33
【问题描述】:
在 Windows 10 上运行 bash,当我 SSH 到我的网络服务器时,下面的简单语法有效,但当我退出并在本地计算机上时无效。它不会给我一个错误,但我可以看到权限没有改变。我必须检查我是否在我的计算机上设置为管理员。这是一个错误还是这只是本地操作系统是 Windows 的结果?如果是后者,如果诸如此类的常见操作不起作用,我会质疑在 Windows 上使用 bash 的价值。
$chmod 644 filename
【问题讨论】:
-
您要修改的文件的路径是什么?它是否在诸如“/mnt/c”之类的drvfs挂载上?如果是这样,Unix 权限几乎不会应用于 Windows 文件系统中的文件。它所能控制的只是只读文件属性,可以通过删除每个人的写访问权限来设置,例如
chmod 555 filename。隐含地,每个人都将始终具有读取和执行访问权限,因为没有 Windows 文件属性与之对应。 -
MINGW32:/c/Users/joe/working2
-
您是否也尝试过使用
sudo? -
@ifconfig 我在 windows 上使用 GIT 自带的 bash。
-
MSYS 环境是 bash 加上 Unix 中的典型命令行程序,建立在用户模式 Windows API 之上。相比之下,Windows 10 中的 Linux 子系统使用内核驱动程序和直接执行 ELF 二进制文件的 pico 进程,包括 sudo。尽管如此,它仍不能使通过 drvfs 挂载的 NTFS 卷像原生 Linux 文件系统一样工作。诸如
chmod之类的系统调用可以正常工作。本机 Linux 文件系统支持由用于“/”的 lxfs 文件系统提供,该文件系统保存在用户的%LocalAppData%\lxss文件夹中的磁盘中,但不适用于 Windows。
标签: bash windows-10 chmod windows-subsystem-for-linux