Por que não consigo ler ou gravar um arquivo cujo proprietário é root e permissão 707 no Terminal.app no Snow Leopard?

1

Isso é o que acontece - mas por quê?

liuxiang@MacBookPro: ~/casecode/sh $ ls -l sa 
-rwx---rwx  1 root  admin  55 10 21 00:07 sa
liuxiang@MacBookPro: ~/casecode/sh $ cat sa
cat: sa: Permission denied
liuxiang@MacBookPro: ~/casecode/sh $ date >> sa
-bash: sa: Permission denied
liuxiang@MacBookPro: ~/casecode/sh $ ./sa
-bash: ./sa: Permission denied
    
por quack quixote 21.10.2009 / 14:46

2 respostas

2

Assim como a maioria dos outros sistemas operacionais semelhantes ao UNIX, o Macintosh permite controlar o acesso a um arquivo com permissões POSIX . No entanto, a partir do Mac OS / X 10.4 (Tiger), o arquivo e o sistema operacional do Macintosh permitem que você (opcionalmente) defina uma Lista de controle de acesso . As listas de controle de acesso dão a um administrador muito mais controle do que as permissões POSIX normais (as ACLs são usadas principalmente em ambientes de trabalho).

Como observação, o Windows suporta ACLs desde o Windows NT; e certas versões do Linux também. Além disso, há um ótimo artigo sobre listas de controle de acesso no Macintosh no Ars Technica .

De qualquer forma, de acordo com o Manual do Mac OS X Server v10.6 - Gerenciamento de usuários ( consulte a página 28), se houver uma ou mais regras de ACL definidas para o arquivo e uma dessas regras de ACL se aplicarem a você, as regras de ACL terão precedência sobre as permissões POSIX normais .

No seu caso, o seu arquivo é de propriedade do usuário "root" (o "superusuário") e pertence ao grupo "admin" (somente usuários marcados como "Administradores" no painel Contas de Preferências do Sistema pertencem a este grupo). As permissões POSIX no seu arquivo são configuradas para permitir que o root leia, grave e execute o arquivo; nega todo o acesso ao grupo "admin" e permite que outros usuários o leiam, escrevam e executem. Como você demonstrou, você deve ter permissão para fazer o que quiser com este arquivo! Não se preocupe; você não está ficando louco (o que é sempre reconfortante saber ^ _ ^) ... parece que uma regra ACL está atrapalhando e substituindo as permissões POSIX do arquivo.

Por isso, Mark perguntou:

What does ls -e show?

... ls -e mostra as regras da lista de controle de acesso para esse arquivo. Aparentemente, se você tiver o Macintosh Server, há um bom painel para gerenciar todas as regras. (Há também um limitado na caixa de diálogo "Obter Informações" do Finder normal ... localize o arquivo no Finder e pressione Command + i para "Obter Informações" para ele ... expandindo o painel "Compartilhamento e Permissões" na parte inferior da janela mostrará algumas das regras do ACL ... você terá que desbloquear este painel para alterar as permissões).

Se a maneira do Finder não funcionar, você terá que tentar ls -e . Espero que as regras da ACL impressas não sejam muito complicadas. Existe uma uma referência ACL à mão no documento Visão geral da segurança no Macintosh Dev Center . Sinta-se à vontade para responder a esta postagem se precisar de ajuda adicional.

No seu caso, mesmo que você conheça as regras da ACL, você não poderá fazer muito a respeito ... somente o proprietário (ou o superusuário, que no seu caso também é o proprietário) pode alterá-lo ; e apenas as pessoas que fazem parte do grupo "admin" (que você diz que não pertence) podem agir em nome do superusuário. No entanto, se você quiser tentar, você (ou alguém que é um administrador) pode mudar para o diretório que contém o arquivo e executar um ou mais dos seguintes comandos:

sudo chmod +a "liuxiang allow read" sa # to enable reading

sudo chmod +a "liuxiang allow write" sa # to enable writing

sudo chmod +a "liuxiang allow execute" sa # to enable executing it

... (ou algo semelhante) para consertá-lo (ele solicitará a senha da pessoa que está executando o comando).

Espero que ajude!

    
por 31.10.2009 / 02:29
0

Olhe aqui: Comando para desbloquear arquivos "Bloqueados" no OS X

Talvez isso ajude.

    
por 13.05.2010 / 08:17