O TextEdit se recusa a modificar um arquivo em / Users / Shared pertencente a outro usuário, apesar do modo 666

2

Eu tenho um arquivo de texto em / Usuários / Compartilhado que gostaria de ser editável por todos os usuários no meu Mac. A janela Obter informações mostra que todos têm acesso de leitura e gravação e, quando abro o arquivo com o TextEdit em uma conta de não proprietário, a barra de título não indica que o arquivo está bloqueado. No entanto, quando tento salvar minhas edições, me deparo com os pop-ups "O documento não pôde ser [salvo / salvo automaticamente]. Você não tem permissão" pop-ups.

Tentei adicionar o usuário não proprietário à lista de permissões na janela Obter informações. Sem dados.

Saídas de ls(com nomes editados):

$ ls -l /Users/
total 0
drwxr-xr-x+ 14 Guest        _guest   476  7 Apr 11:14 Guest
drwxrwxrwt  45 root         wheel   1530 12 Apr 17:40 Shared
drwxr-xr-x+ 15 fileowner    staff    510 22 Feb 12:49 fileowner
drwxr-xr-x+ 17 admin        staff    578 21 Dec 10:55 admin
$ ls -l /Users/Shared/Links.txt 
-rw-rw-rw-@ 1 fileowner  wheel  619 25 Feb 19:44 /Users/Shared/Links.txt

Eu posso reproduzir esse comportamento em duas máquinas separadas, uma executando 10.8 e a outra 10.9, mas não na que executa 10.6.

epimórfico
fonte

Respostas:

9

Observe que a string de permissão para / Users / Shared termina com um 't'. Isso indica que o bit adesivo está definido para esse diretório. De acordo com "homem 8 pegajoso",

 A directory whose `sticky bit' is set becomes an append-only directory,
 or, more accurately, a directory in which the deletion of files is
 restricted.  A file in a sticky directory may only be removed or renamed
 by a user if the user has write permission for the directory and the user
 is the owner of the file, the owner of the directory, or the super-user.

Eu suspeito que, quando o TextEdit tenta salvar um arquivo, ele primeiro tenta renomear ou remover o arquivo antigo. Mas em um diretório com o conjunto de bits fixos, apenas o proprietário pode fazer isso. Portanto, a falha baseada em permissão.

Você pode testar isso tentando algo como este como usuário convidado

echo " " >> /Users/Shared/Links.txt

Se for bem-sucedido, ele mostra que o Guest pode gravar no arquivo e que o TextEdit deve renomear ou remover, e não apenas reescrever o arquivo.

Tom Barron
fonte
Bem-vindo, gostamos de respostas detalhadas como esta.
Ruskes
O comando do terminal foi executado sem problemas, por isso parece que a implementação do controle de versão de arquivo, pois a 10.7 usa renomeação e / ou (re) movimentação, em vez de sobrescrever. Obrigado!
precisa
@ Buscar: Obrigado pela recepção. Ainda bem que pude contribuir. epimórfico: Obrigado por me informar o que aconteceu. É sempre bom ouvir que a ideia de alguém funcionou. :)
Tom Barron