Como restringir as permissões do cygwin no Windows 7

2

Depois de um ... ahem ... incidente envolvendo um rm -rf mal julgado, ocorreu-me que se você tiver permissões de administrador na sua máquina Windows, trabalhar dentro de um terminal Cygwin é o equivalente a usar um shell de root no Unix.

Isso pode ter conseqüências infelizes, como ... limpar acidentalmente todo o seu sistema de arquivos com um rm -rf com erros de avaliação.

Então, minha pergunta é: enquanto estiver logado de uma conta do Windows com permissões de administrador, como posso limitar as permissões do cygwin, de maneira análoga à execução sob uma conta de usuário em vez de root em sistemas Unix?

O que eu gostaria é ter permissão de escrita para meus próprios arquivos nas pastas onde faço meu trabalho, mas recebo erros de "Permissão negada" sempre que eu (acidentalmente) escrevo coisas em lugares que eu não deveria estar tocando como / cygdrive / c / Windows.

Eu pesquisei "permissões do cygwin" e palavras-chave semelhantes, mas só encontrei pessoas que querem obter mais permissão do que o cygwin está dando a elas.

Existe um artigo aqui sobre a segurança do Windows no Cygwin, mas não consigo entender, provavelmente porque não entendo bem o controle de acesso do Windows ...

    
por Andrew Spencer 06.03.2013 / 15:29

1 resposta

2

Se você ativar o Controle de conta de usuário (UAC), consulte o link para detalhes - então, quando você faz o login como um usuário que é membro do grupo local Administradores, você não terá acesso de gravação aos arquivos em C: \ Windows , mesmo em um shell Cygwin Bash. Você deveria ver isto:

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

Eu não consigo nem apagar arquivos em C: \ Windows. Por exemplo, eu abri um Prompt de Comando elevado para Administrador, alterei o diretório para C: \ Windows e digitei copy system.ini xyzzy.ini . Agora eu vejo isso em um shell Cygwin Bash (não elevado):

$ 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

Portanto, apesar de eu ser membro de Administradores de grupos locais, não consigo excluir arquivos em C: \ Windows .

    
por 08.07.2013 / 17:27