TextEdit si rifiuta di modificare un file in / Users / Shared di proprietà di un altro utente nonostante la modalità 666

2

Ho un file di testo in / Users / Shared che vorrei essere modificabile da tutti gli utenti sul mio Mac. La finestra Ottieni informazioni mostra che tutti hanno accesso in lettura e scrittura e quando apro il file con TextEdit su un account non proprietario, la barra del titolo non indica che il file è bloccato. Tuttavia, quando provo a salvare le mie modifiche, mi trovo di fronte a "Il documento non può essere [salvato / salvato automaticamente]. Non hai i permessi" popup.

Ho provato ad aggiungere l'utente non proprietario all'elenco delle autorizzazioni nella finestra Ottieni informazioni. Nessun dado.

Output da ls (con nomi modificati):

$ 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

Posso riprodurre questo comportamento su due macchine separate, una in esecuzione 10.8 e l'altra 10.9, ma non su quella in esecuzione 10.6.

    
posta epimorphic 13.04.2014 - 01:21
fonte

1 risposta

9

Si noti che la stringa di autorizzazione per / Users / Shared termina con una 't'. Questo indica che il bit sticky è impostato per quella directory. Secondo "man 8 sticky",

 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.

Ho il sospetto che quando TextEdit tenta di salvare un file, tenta prima di rinominare o rimuovere il vecchio file. Ma in una directory con il set sticky bit, solo il proprietario può farlo. Quindi, l'errore basato sulle autorizzazioni.

Potresti testarlo provando qualcosa di simile a User Guest

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

Se questo è successo, mostra che Guest può scrivere sul file e che TextEdit deve essere rinominato o rimosso, non solo riscrivendo il file.

    
risposta data 13.04.2014 - 03:19
fonte

Leggi altre domande sui tag