2

После инцидента ... хм ... с ошибочным суждением rm -rf мне пришло в голову, что если у вас есть права администратора на вашем компьютере с Windows, работа в терминале Cygwin эквивалентна использованию корневой оболочки в Unix.

Это может привести к печальным последствиям, таким как ... случайное стирание всей вашей файловой системы с rm -rf .

Итак, мой вопрос: при входе в систему из учетной записи Windows с правами администратора, как я могу ограничить разрешения cygwin, аналогично запуску под учетной записью пользователя вместо root в системах Unix?

Мне бы хотелось иметь разрешение на запись в мои собственные файлы в папках, в которых я выполняю свою работу, но получать сообщения об ошибках "Отказано в доступе" всякий раз, когда я (случайно) пишу вещи в местах, к которым мне не следует прикасаться, например /cygdrive /c /Windows.

Я гуглил "разрешения cygwin" и похожие ключевые слова, но нашел только людей, желающих получить больше разрешений, чем дает им cygwin.

Вот статья о безопасности Windows в Cygwin, но я не могу ее понять, возможно, потому, что я недостаточно хорошо понимаю контроль доступа Windows ...

1 ответ1

2

Если вы включите Контроль учетных записей пользователей (UAC) - см. Подробности по адресу http://msdn.microsoft.com/en-us/library/windows/desktop/aa511445.aspx, а затем при входе в систему в качестве пользователя, который является членом Администраторы локальной группы не будут иметь права на запись в файлы в C:\Windows, даже из оболочки Cygwin Bash. Вы должны увидеть это:

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

Я не могу даже удалить файлы в C:\Windows. Например, я открыл командную строку с повышенными правами администратора, изменил каталог на C:\Windows и набрал команду copy system.ini xyzzy.ini. Теперь я вижу это в оболочке Cygwin Bash (без повышенных прав):

$ 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

Поэтому, хотя я и являюсь членом локальной группы администраторов, я не могу удалить файлы в C:\Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .