如何在Windows 7中限制cygwin的权限

如何在Windows 7中限制cygwin的权限

经过…呃…事件涉及一个错误判断rm -rf,我突然想到,如果你在 Windows 机器上拥有管理员权限,那么在 Cygwin 终端内工作就相当于在 Unix 中使用 root shell。

这可能会造成不良后果,例如...因判断错误而意外擦除整个文件系统rm -rf

所以,我的问题是:当从具有管理员权限的 Windows 帐户登录时,如何限制 cygwin 的权限,类似于在 Unix 系统上以用户帐户而不是 root 身份运行?

我希望对我工作文件夹中的自己的文件具有写权限,但是每当我(意外地)在我不应该触碰的地方(例如 /cygdrive/c/Windows)写入东西时,就会出现“权限被拒绝”错误。

我搜索过“cygwin 权限”和类似的关键词,但只发现人们想要获得更多的比 cygwin 给予他们的权限还要多。

有一篇文章这里关于 Cygwin 中的 Windows 安全性,但我无法理解,可能是因为我对 Windows 访问控制不够了解......

答案1

如果您打开用户帐户控制 (UAC) — 请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/aa511445.aspx详细信息 — 那么当您以本地组管理员成员的用户身份登录时,您将没有对以下文件的写权限计算机目录:\Windows,甚至可以从 Cygwin Bash shell 中看到。您应该看到以下内容:

$ cd /cygdrive/c/windows
$ touch xyzzy
touch: cannot touch `xyzzy': Permission denied

我甚至无法删除 C:\Windows 下的文件。例如,我打开了提升为管理员的命令提示符,将目录更改为计算机目录:\Windows,然后输入copy system.ini xyzzy.ini。现在我在 Cygwin Bash shell(未提升)中看到了以下内容:

$ cd /cygdrive/c/windows
$ icacls xyzzy.ini
xyzzy.ini NT AUTHORITY\SYSTEM:(I)(F)
          BUILTIN\Administrators:(I)(F)
          BUILTIN\Users:(I)(RX)

Successfully processed 1 files; Failed processing 0 files
$ rm xyzzy.ini
rm: remove write-protected regular file `xyzzy.ini'? y
rm: cannot remove `xyzzy.ini': Permission denied
$ rm -f xyzzy.ini
rm: cannot remove `xyzzy.ini': Permission denied

因此,即使我是本地组管理员的成员,我也无法删除计算机目录:\Windows

相关内容