Ich möchte eine Datei in einem Verzeichnis erstellen, das der Mitarbeitergruppe gehört, der ich angehöre. Warum kann ich das nicht tun?
bmccann@bmccann-htpc:~$ ls -l /usr/local/lib/R/
total 4
drwxrwsr-x 2 root staff 4096 2010-07-31 16:21 site-library
bmccann@bmccann-htpc:~$ id -nG bmccann
bmccann adm dialout cdrom plugdev staff lpadmin admin sambashare
bmccann@bmccann-htpc:~$ touch /usr/local/lib/R/site-library/tmp
touch: cannot touch `/usr/local/lib/R/site-library/tmp': Permission denied
linux
permissions
file-permissions
Ben McCann
quelle
quelle
site-library/tmp
Datei / ein Verzeichnis vorhanden?Antworten:
Haben Sie sich nach den Gruppenänderungen abgemeldet und wieder angemeldet? Siehe:
Super User-Antwort mit fehlgeschlagenen Touch-Berechtigungen
quelle
login
,su
usw.) zu setzen tatsächlich uid / gids.su your-user-name
. Die resultierende Shell verfügt über Ihre aktualisierten Gruppenberechtigungen.Warum kann ein Linux-Benutzer keine Dateien in einer Gruppe bearbeiten, zu der er gehört?
Ich verwende Ubuntu 12.04 und hatte das gleiche Problem, bei dem ein Benutzer nicht in eine Datei schreiben kann, auf die er Gruppenzugriff erhält. Beispielsweise:
Starten Sie das Terminal jetzt neu, um sicherzustellen, dass die Benutzer und Gruppen wirksam werden. Loggen Sie sich als el.
Erzeugt die Warnung:
Was? Ich habe alles richtig gemacht, warum funktioniert es nicht?
Antworten:
Führen Sie einen vollständigen Neustart des Computers durch. Das Anhalten des Terminals reicht nicht aus, um diese Probleme zu beheben.
Ich denke, was passiert, ist, dass Apache2 auch die WWW-Datengruppe verwendet, also hat die Aufgabe irgendwie verhindert, dass die Benutzer und Gruppen korrekt durchgesetzt werden. Sie müssen sich nicht nur abmelden, sondern auch alle Dienste, die Ihre Gruppe verwenden, stoppen und neu starten. Wenn ein Neustart nicht funktioniert, haben Sie größere Probleme.
quelle
Ich hatte das gleiche Problem. Überprüfen Sie, ob der Ordner weitere ACL-Regeln enthält oder nicht.
Wenn Sie beim Auflisten des Ordners + (Pluszeichen) sehen, bedeutet dies, dass es spezielle Zugriffsregeln gibt. Beispielsweise:
Berechtigung anzeigen:
Das bedeutet, dass mein Benutzer (user_in_apache_group) keine Schreibberechtigung für diesen Ordner hat.
Die Lösung ist, was @techtonik sagte, Schreibberechtigung für Benutzer hinzufügen:
Überprüfen Sie die Berechtigung erneut:
Ich hoffe es hilft. ;)
quelle
Verwenden Sie die Linux-ACL (Zugriffssteuerungslisten) - es handelt sich um eine detailliertere Version des Berechtigungssystems.
Dadurch werden sowohl aktive Rechte für das Verzeichnis als auch Standardrechte für alle darin erstellten Rechte festgelegt.
Dies funktioniert ohne erneutes Anmelden nicht, wenn Sie sich gerade zur
staff
Gruppe hinzugefügt haben. Sie können die Berechtigung jedoch nur für sich selbst für die aktuelle Sitzung festlegen.quelle
Ich hatte ein Problem, wenn ein Benutzer nicht auf das
/foo/bar/baz
Verzeichnis zugreifen konnte, obwohl er über Berechtigungen verfügte, weil er keinen Zugriff auf dasbar
Verzeichnis hatte.quelle
Überprüfen Sie, ob Ihr übergeordnetes Verzeichnis über Berechtigungen verfügt, bevor Sie dieser Datei Inhalt hinzufügen
quelle