TextEdit odmawia modyfikacji pliku w / Users / Shared należącego do innego użytkownika pomimo trybu 666

2

Mam plik tekstowy w / Users / Shared, który chciałbym móc edytować wszyscy użytkownicy mojego Maca. Okno Pobierz informacje pokazuje, że każdy ma dostęp do odczytu i zapisu, a kiedy otwieram plik za pomocą TextEdit na koncie niebędącym właścicielem, pasek tytułu nie wskazuje, że plik jest zablokowany. Jednak kiedy próbuję zapisać moje zmiany, pojawia się komunikat „Dokument nie może być [zapisany / automatycznie zapisany]. Nie masz uprawnień”.

Próbowałem dodać użytkownika niebędącego właścicielem do listy uprawnień w oknie Uzyskaj informacje. Nie ma kości.

Dane wyjściowe ls(z nazwami edytowanymi):

$ 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

Mogę odtworzyć to zachowanie na dwóch osobnych komputerach, z których jeden działa pod kontrolą 10.8, a drugi 10.9, ale nie na tym z uruchomionym 10.6.

epimorficzny
źródło

Odpowiedzi:

9

Zauważ, że ciąg uprawnień dla / Users / Shared kończy się na „t”. Oznacza to, że bit lepki jest ustawiony dla tego katalogu. Według „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.

Podejrzewam, że kiedy TextEdit próbuje zapisać plik, najpierw próbuje zmienić nazwę lub usunąć stary plik. Ale w katalogu z ustawionym lepkim bitem tylko właściciel może to zrobić. Stąd awaria oparta na uprawnieniach.

Możesz to przetestować, próbując czegoś takiego jako gość

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

Jeśli to się powiedzie, pokazuje, że Gość może zapisywać do pliku, a TextEdit musi zmieniać nazwę lub usuwać, a nie tylko przepisywać plik.

Tom Barron
źródło
Witamy, lubimy szczegółowe odpowiedzi takie jak ta.
Ruskes
Twoje polecenie terminalu przeszło bez żadnych problemów, więc wygląda na to, że implementacja wersjonowania plików działa, ponieważ 10.7 używa zmiany nazwy i / lub (ponownego) przenoszenia, a nie zastępowania. Dzięki!
epimorficzny
@Buscar: Dzięki za powitanie. Cieszę się, że mogłem przyczynić się. epimorficzny: Dzięki za poinformowanie mnie, co się stało. Zawsze miło słyszeć, że czyjś pomysł zadziałał. :)
Tom Barron