Also das User und Gruppensystem unter Linux bringt mich noch um den
Verstand! :-D
Umstand:
RaspberryPi mit Raspbian, Apache, MariaDB... User: Standart Pi
Nun soll "pi" Mitglied der Gruppe www-data werden um dann im Ordner
/var/www/ Schreibrechte zu haben. Aber ich bekomme das nicht gebacken.
Ich habe "pi" bereits in der Gruppe www-data... aber das bringt
keinerlei Änderung. Ich komme ja nicht mal lesend in den Ordner:
Ich habe nochmal ein bisschen "Recherchiert" Aktuell sind die
Zugriffsrechte ja:
drwxrwx---
Das bedeutet für mich:
*rwx****** : User www-data darf lesen, schreiben, ausführen
****rwx*** : Gruppe www-data darf lesen, schreiben, ausführen
*******--- : Die anderen dürfen nix
Nun ist doch aber "pi" Mitglied der Gruppe www-data:
www-data:x:33:pi
Also dürft doch "pi", da es Mitglieder Gruppe www-data ist und somit
unter ****rwx*** fällt, alles machen in dem Ordner. Geht aber nicht:
-bash: cd: /var/www: Permission denied
Mglw. hast Du den User "pi" gerade erst der Gruppe www-data hinzugefügt,
und das System hat das noch nicht richtig übernommen. Boote mal kurz
neu, einfach um das als potentielle Fehlerquelle auszuschliessen.
Gästchen schrieb:> Mglw. hast Du den User "pi" gerade erst der Gruppe www-data hinzugefügt,> und das System hat das noch nicht richtig übernommen. Boote mal kurz> neu, einfach um das als potentielle Fehlerquelle auszuschliessen.
Super, das war es :-D
Ich dachte immer Linux braucht man nicht neu zu starten, soll doch der
große Vorteil gegenüber Windows sein grübel
Nunja, nichtsdesto trotz. Danke für diesen Tipp! :-D
Wenn man die Gruppenzugehörigkeit eines Users ändert muß der betroffene
User sich Aus- und wieder Einloggen damit die Änderung wirksam wird. Ein
Neustart ist nicht notwendig.
Gruß,
f
Gästchen schrieb:> Boote mal kurz> neu, einfach um das als potentielle Fehlerquelle auszuschliessen.
Eine neugestartete shell sollte reichen.
Rene K. schrieb:> pi@DraconiXServer:/home $ grep ^www-data /etc/group> www-data:x:33:pi
sagt dir aber nicht ob deine laufende shell das schon weiss. Besserer
Test:
groups
Das gibt dir Auskunft über deine aktuellen Gruppenzugehörigkeiten
Rene K. schrieb:> Gästchen schrieb:>> Mglw. hast Du den User "pi" gerade erst der Gruppe www-data hinzugefügt,>> und das System hat das noch nicht richtig übernommen. Boote mal kurz>> neu, einfach um das als potentielle Fehlerquelle auszuschliessen.>> Super, das war es :-D
Schön!
> Ich dachte immer Linux braucht man nicht neu zu starten
Muss man auch nicht, es gibt diverse Möglichkeiten, die
Gruppenzugehörigkeiten zu aktualisieren. Den Pi neu zu starten ist halt
eine davon, sie hat den Vorteil, dass sie schnell erklärt ist und die
Änderung garantiert systemweit übernommen ist, und ich bin einfach mal
davon ausgegangen, dass ein kurzer Reboot bei Deinem Pi aktuell kein
Problem darstellt.
, soll doch der
> große Vorteil gegenüber Windows sein *grübel*
Das ist einer der vielen Vorteile gegenüber Windows - dass es DER GROSSE
Vorteil (schlechthin) ist, erscheint mir dann doch ein bisschen weit
hergeholt. :)
Ich dachte es wäre die einzigste Möglichkeit die Gruppenzugehörigkeit zu
aktualisieren. Wieder was gelernt.
Gästchen schrieb:> ...ich bin einfach mal> davon ausgegangen, dass ein kurzer Reboot bei Deinem Pi aktuell kein> Problem darstellt.
Nein nein, das ist natürlich absolut kein Problem. Hatte mich halt
gewundert :-)
Zur Erklärung:
Die Gruppenzugehörigkeiten werden aus Effizienzgründen nicht bei jedem
Datei- oder Verzeichniszugriff aus /etc/group gelesen, sondern nur beim
Login aktualisiert.
2 Cent schrieb:> Gästchen schrieb:>> Boote mal kurz neu, einfach um das als potentielle Fehlerquelle>> auszuschliessen.> Eine neugestartete shell sollte reichen.
Nur wenn sie als login-Shell gestartet wird.
> Test:> groups>> Das gibt dir Auskunft über deine aktuellen Gruppenzugehörigkeiten
Oder id. Das ist kürzer und zeigt noch gleich die Gruppen-IDs mit an.
Rolf M. schrieb:> Nur wenn sie als login-Shell gestartet wird.
Unbedingt erwähnenswert das ist, absolut Recht ihr habt.
Unwach war ich von hier unsinnigen Voraussetzungen (ssh) ausgegangen.
So ich wieder :-D
das Problem zieht sich nerviger hin als es ist:
Der Umstand ist wie oben:
User: webdev
Primäre Gruppe: www-data
Home: /var/www
Nun ist das Problem folgendes: Ich schiebe via sftp die Daten auf den
Server. Die Berechtigung sieht, nach dem kopieren dann wie folgt aus:
1
webdev@server-r2:~/html/ip$ ls -l
2
total 28
3
drwxrwx--- 3 webdev www-data 4096 Feb 4 12:24 config
4
-rwx------ 1 webdev www-data 972 Feb 4 18:45 host_insert.php
5
-rwxrwx--- 1 webdev www-data 1796 Feb 4 17:50 index.php
6
-rwxrwx--- 1 webdev www-data 878 Feb 4 17:51 navbar.php
7
drwxrwx--- 2 webdev www-data 4096 Feb 4 12:24 scripts
8
-rwxrwx--- 1 webdev www-data 504 Feb 1 23:13 table_large.php
9
-rwxrwx--- 1 webdev www-data 1972 Feb 4 17:53 table_small.php
10
webdev@server-r2:~/html/ip$
Man beachte dabei die Datei host_insert.php welche ich gerade frisch via
sftp auf den Server geschoben habe. Der User hat dann vollen Zugriff
darauf, die Gruppe allerdings garnicht. Nun liefert natürlich Apache
diese Datei auch nicht aus. Ich muss quasi manuell via ssh auf den
Server und die Rechte der Datei manuell ändern.
Geht das nicht auch einfacher, so das die Gruppenrechte automatisch
gesetzt werden wenn der User eine Datei erstellt? Ich dachte gerade
dafür ist die Gruppenzugehörigkeit da?
Rene K. schrieb:> Der User hat dann vollen Zugriff> darauf, die Gruppe allerdings garnicht. Nun liefert natürlich Apache> diese Datei auch nicht aus. Ich muss quasi manuell via ssh auf den> Server und die Rechte der Datei manuell ändern.
Nein, muss man natuerlich nicht. Zugriffsrechte auf Unix-Dateisystemen
sind super flexibel. Besonders wenn man mit SETUID, SETGID, Sticky-Bit
und ACLs vertraut ist.
Rene K. schrieb:> Geht das nicht auch einfacher, so das die Gruppenrechte automatisch> gesetzt werden wenn der User eine Datei erstellt?
Yep, dafuer ist die umask da. Bei dir steht sie wahrscheinlich auf 0077.
Rene K. schrieb:> Geht das nicht auch einfacher, so das die Gruppenrechte automatisch> gesetzt werden wenn der User eine Datei erstellt? Ich dachte gerade> dafür ist die Gruppenzugehörigkeit da?
Per default haben normale User, btw. die Programme welche diese starten,
sofern nicht anders eingestellt, eine umask von 0002. Wenn eine Datei
erstellt wird, normalerweise mit mask 0777, ist dann 0777 & ~0022 =
0755. (also owner darf lesen&schreiben, jedes mitglied der Gruppe darf
lesen, und alle andern dürfen lesen). Wie fast alle Rechte wird diese
bei einem fork an Unterprozesse vererbt. Ich hab bei mir grad mal
ausprobiert, scp scheint ohne -p Option mode & ~umask zu nehmen, und mit
der -p option die rechte exakt zu übernehmen. Es gibt also 2
Möglichkeiten:
1) Deine Dateien haben lokal einen Mode, der es der dateigruppe nicht
erlaubt, diese zu lesen. Eventuell hast du einen "kleveren" text editor
oder so, der sich nicht nach er umask richtet, oder dein Dateisystem
kann keine Rechte und wurde mit ensprechender umask gemountet.
2) Der sftp wird mit einer umask von z.B. 0077 oder so gestartet.
(unwarscheinlich, hier würde die -p option von ssh helfen)
Eine Option, um den Mode zu überschreiben hat ssh meines Wissens nicht.
Serverseitig könnte man die Gruppe vermutlich mit dem setgid bit auf dem
Verzeichnis vererben, aber für den mode hilft das nichts.
Sofern du aber rsync auf dem Server hast, das hat ne option dafür.
Müsste auch schneller gehen.
Markus -. schrieb:> Die meisten FTP Varianten können auch chmod als Befehl. WinSCP zum> Beispiel in den Dateieigenschaften.
Die einzige Gemeinsamkeit zwischen SFTP und FTP sind diese drei
Buchstaben. SFTP ist ein Teil von SSH. Verschlüsseltes FTP ist FTPS.
Rene K. schrieb:> Das passt soweit. Per SFTP funktioniert dies allerdings nicht. Ich habe> dann wie von A. K. beschrieben die /etc/ssh/sshd_config geändert:
Liest du auch mal eine Manpage so zwischendurch?
A. K. schrieb:> Aber die vollständige Config habe ich hier nicht parat.
Wobei ich internal-sftp verwende, vereinfacht das bei mir oft wichtige
chroot. Sollte aber keinen Unterschied ergeben. Ein "-l VERBOSE" liefert
ausserdem mehr Info.
olibert schrieb:> Liest du auch mal eine Manpage so zwischendurch?
Ja?!? Wie glaubst du bin ich sonst auf "Subsystem sftp
/usr/lib/openssh/sftp-server -u 0022" gekommen? Oder was möchtest du mir
damit sagen?!
A. K. schrieb:> Wobei ich internal-sftp verwende
Das werde ich morgen mal ausprobieren. ?Hab für heute die Segel
gestrichen.
Danke dir A. K. Schonmal für deine Hilfe ☺️
A. K. schrieb:> Die einzige Gemeinsamkeit zwischen SFTP und FTP sind diese drei> Buchstaben. SFTP ist ein Teil von SSH. Verschlüsseltes FTP ist FTPS.
Najaaa... also die Befehle, die in SFTP benutzt werden können, sind
denen von FTP auch ziemlich ähnlich. Ein Blick in die Sektion
"INTERACTIVE COMMANDS" in der Manpage von sftp(1) zeigt, daß SFTP auch
den Befehl chmod kennt. ;-)
Sheeva P. schrieb:> Najaaa... also die Befehle, die in SFTP benutzt werden können, sind> denen von FTP auch ziemlich ähnlich.
Um rechtliche Probleme auf Grund von ähnlichen Begriffen und kürzesten
Textausschnitten alle Überschneidungen mit bestehenden Protokollen zu
vermeiden, wird man künftige Filetransferprotokolle in chinesischen
Begriffen definieren. ;-)