it-swarm.com.de

Linux, Warum kann ich nicht schreiben, obwohl ich Gruppenberechtigungen habe?

Ich möchte eine Datei in einem Verzeichnis erstellen, das der Mitarbeitergruppe angehört, deren Mitglied ich bin. Warum kann ich das nicht machen?

[email protected]:~$ ls -l /usr/local/lib/R/
total 4
drwxrwsr-x 2 root staff 4096 2010-07-31 16:21 site-library
[email protected]:~$ id -nG bmccann
bmccann adm dialout cdrom plugdev staff lpadmin admin sambashare
[email protected]:~$ touch /usr/local/lib/R/site-library/tmp
touch: cannot touch `/usr/local/lib/R/site-library/tmp': Permission denied
92
Ben McCann

Haben Sie sich nach den Gruppenänderungen abgemeldet und wieder angemeldet? Sehen:
Super-Benutzerantwort mit Ausfall der Touch-Berechtigungen

177
AdamJonR

Warum können Linux-Benutzer keine Dateien in einer Gruppe bearbeiten, zu der er gehört?

Ich verwende Ubuntu 12.04 und hatte das gleiche Problem, dass ein Benutzer nicht in eine Datei schreiben kann, für die er Gruppenzugriff hat. Zum Beispiel:

whoami                                        //I am user el
  el                                            

touch /foobar/test_file                       //make a new file

Sudo chown root:www-data /foobar/test_file    //User=root  group=www-data

Sudo chmod 474 /foobar/test_file              //owner and others get only read, 
                                              //group gets rwx


Sudo groupadd www-data                        //create group called www-data    

groups                                        //take a look at the groups and see
 www-data                                     //www-data exists.

groups el                                     //see that el is part of www-data
  el : www-data                               

Starten Sie das Terminal jetzt neu, um sicherzustellen, dass die Benutzer und Gruppen wirksam wurden. Login als el.

vi /foobar/test_file                          //try to edit the file.

Erzeugt die Warnung:

Warning: W10: Warning: Changing a readonly file"

Was? Ich habe alles richtig gemacht, warum funktioniert es nicht?

Antworten:

Führen Sie einen vollständigen Neustart des Computers durch. Das Stoppen des Terminals reicht nicht aus, um diese Probleme zu beheben. 

Ich denke, was passiert, ist, dass Apache2 auch die www-data-Gruppe verwendet, so dass die Aufgabe irgendwie verhindert hat, dass Benutzer und Gruppen korrekt erzwungen werden. Sie müssen sich nicht nur abmelden, sondern auch alle Dienste beenden und neu starten, die Ihre Gruppe verwenden. Wenn ein Neustart nicht funktioniert, haben Sie größere Probleme.

11
Eric Leschinski

Ich hatte das gleiche Problem, Überprüfen Sie, ob der Ordner weitere ACL-Regeln enthält oder nicht!

Wenn Sie beim Auflisten des Ordners ein Pluszeichen (Pluszeichen) sehen, hat dies spezielle Zugriffsregeln. Zum Beispiel:

[[email protected] html]$ ls -l
total 16
drwxrwxr-x  16 Apache apache 4096 Sep  4 13:46 ilias
drwxrwxr-x+ 15 Apache apache 4096 Sep  4 13:46 ilias5

Berechtigung anzeigen:

[[email protected] html] getfacl ilias5
# file: ilias5
# owner: Apache
# group: Apache
user::rwx
user:user_in_Apache_group:r-x
group::rwx
mask::rwx
other::r-x

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:

[[email protected] html]$ Sudo setfacl -m u:user_in_Apache_group:rwx ./ilias5

Berechtigung erneut prüfen:

[[email protected] html] getfacl ilias5
...
user:user_in_Apache_group:rwx
...

Ich hoffe es hilft. ;)

7
Laszlo Lugosi

Verwenden Sie Linux ACL (Zugriffskontrolllisten) - es handelt sich um eine differenziertere Version des Berechtigungssystems.

setfacl -R -m 'group:staff:rwx' -m 'd:group:staff:rwx' /usr/local/lib/R/

Dadurch werden sowohl aktive Rechte für Verzeichnisse als auch Standardrechte für alles festgelegt, was darin erstellt wird.

Ohne Relogin funktioniert dies nicht, wenn Sie sich gerade der Gruppe staff hinzugefügt haben. Sie können die Berechtigung jedoch nur für sich selbst für die aktuelle Sitzung festlegen.

6

Ich hatte ein Problem, wenn ein Benutzer nicht auf das Verzeichnis /foo/bar/baz zugreifen konnte, selbst wenn er Berechtigungen hatte, weil er keinen Zugriff auf das Verzeichnis bar hatte.

5
Kolyunya

Prüfen Sie, ob Ihr übergeordnetes Verzeichnis berechtigt ist, bevor Sie der Datei Inhalt hinzufügen

Sudo chmod -R 777 /yourDir/file.log
0
Mani P