Criando diretórios e arquivos em/Library no os-x 10.8

Criando diretórios e arquivos em/Library no os-x 10.8

Quero instalar arquivos em /Library/Python/2.7/site-packages no OS-X 10.8. Estou logado como Administrador, mas ainda recebo o erro 'Permissão negada'. O mesmo erro quando tento criar um diretório lá no Terminal. Aparentemente, não tenho permissão para escrever na área raiz. Como faço para corrigir isso?

Responder1

Estar logado no MacOSX como "administrador" concede permissão para executar certos comandos privilegiados, mas não faz de você root (ID de usuário 0 - superusuário). O diretório Python, e quase tudo em /Library, pertence e pode ser gravado apenas pelo root: por exemplo

mymac:Python kentalt$ ls -l
total 0
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.3
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.5
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.6
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.7
mymac:Python kentalt$ touch foo
touch: foo: Permission denied

O administrador pode usar sudo (executar um comando como usuário root) com seu administrador aprovado:

mymac:Python kentalt$ sudo touch foo
Password:
mymac: Python kentalt$ ls -l
total 0
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.3
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.5
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.6
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.7
-rw-r--r--  1 root  wheel    0 Jan 10 08:57 foo

Observe que você deve usar sudo com cada comando (se você executar vários desses comandos em um curto período de tempo, sua senha não será solicitada todas as vezes):

mymac:Python kentalt$ rm foo
override rw-r--r--  root/wheel for foo? y
rm: foo: Permission denied
mymac:Python kentalt$ sudo rm foo
mymac:Python kentalt$ ls
2.3 2.5 2.6 2.7

Você também pode alterar as permissões do diretório para permitir que o grupo ou todos gravem nele, em vez de fazer toda a manutenção como root - cuidado, pois as alterações nas permissões podem quebrar alguns programas ou podem ser revertidas nas atualizações do sistema, embora o Python provavelmente esteja bem. Ou adicione um link simbólico para pacotes de sites em algum outro lugar no espaço gravável pelo usuário, para manter suas atualizações claramente separadas dos arquivos suportados pelo sistema.

Você pode usar "sudo bash" para iniciar uma sessão shell como root. Isso é algo muito, muito perigoso de se fazer, porque o root pode fazer praticamente qualquer coisa e pode nem mesmo exigir uma verificação de integridade antes de remover todo o sistema, por exemplo, "rm -rf . /*" (um erro de digitação que todo administrador antigo do Unix fez pelo menos uma vez).

informação relacionada