Chmod Wirrwarr

Hallo erleuchtete *nixer!

Ich steh wieder mal voll auf dem Schlauch:
Ich mochte einem Benutzer „userX“ vollen Zugriff auf ein Verzeichnis „daten“ ermöglichen.

Bei den langatmigen Anleitungen zum Umgang mit dem Befehl chmod komme ich aber beim besten
Willen nicht dahinter, wie der Befehl genau auszusehen hat, denn alle Beispiele beschreiben
„Besitzer“, „Gruppen“ und „Andere“.
Wie müssten denn die korrekten Befehle lauten, wenn „userX“ nicht der Besitzer von „daten“
ist, die Datei aber explizit nur durch root und „userX“ benutzt werden können soll?

Wie könnte ich als root Benutzerrechte für „userX“ ändern?
Wenn ich Rechte nur für Gruppen angeben kann, muss ich also dafür sorgen dass „userX“ in
einer bestimmten Gruppe ist?
Wie gebe ich bei chmod an für WELCHE Grupppe die Rechte geändert werden? Dazu finde ich keine
klaren Aussagen.
Wie lege ich Gruppen an, ändere die Gruppe eines Benutzers, ändere ich den Besitzer einer
Datei?

Für alle schlüssigen, nachvollziehbaren Aussagen wäre ich äußerst dankbar!

Gruß,
Peter

Moin

Wie müssten denn die korrekten Befehle lauten, wenn „userX“
nicht der Besitzer von „daten“
ist, die Datei aber explizit nur durch root und „userX“
benutzt werden können soll?

root kann sowieso drauf zugriefen, das Problem stellt sich also nicht. Bleibt userX über:

chown -R userX daten

Dann besitzt userX daten (und alle Unterverzeichnisse). Dann mit chmod die gewünschten Rechte eintragen (meistens rwx)

Wie könnte ich als root Benutzerrechte für „userX“ ändern?
Wenn ich Rechte nur für Gruppen angeben kann, muss ich also
dafür sorgen dass „userX“ in
einer bestimmten Gruppe ist?

Als root:
usermod userX -G GRUPPE

Wie gebe ich bei chmod an für WELCHE Grupppe die Rechte
geändert werden? Dazu finde ich keine
klaren Aussagen.

Man einfachsten ist die Hexdecimal Schreibweise:

chmod datei 0777

Wobei die erste 7 für dne User, die 2 für die Gruppe und die 3 für alle steht.

Wie lege ich Gruppen an

als root:

addgroup

ändere ich den Besitzer einer
Datei?

chmod

cu

Hallo,

Hallo erleuchtete *nixer!

ich leuchte noch nicht so, daher versuche ich nur eine Antwort ohne die Garantie der Richtigkeit…

Für weitere Info ist übrigens auch
http://www.linuxfibel.de ganz hilfreich.

Ich mochte einem Benutzer „userX“ vollen Zugriff auf ein
Verzeichnis „daten“ ermöglichen.
Wie müssten denn die korrekten Befehle lauten, wenn „userX“
nicht der Besitzer von „daten“
ist, die Datei aber explizit nur durch root und „userX“
benutzt werden können soll?

Meiner Meinung nach kann man Daten nur Rechte für Besitzer, die Gruppe und den Rest der Welt (andere) zuordnen.
Daher muss userX entweder Besitzer der Datei oder in einer Gruppe sein, die auf die Datei Zugriff hat.

Wie könnte ich als root Benutzerrechte für „userX“ ändern?

Weiss ich so direkt nicht. Geht glaub gar nicht (s.o.)

Wenn ich Rechte nur für Gruppen angeben kann, muss ich also
dafür sorgen dass „userX“ in
einer bestimmten Gruppe ist?

Jep.

Wie gebe ich bei chmod an für WELCHE Grupppe die Rechte
geändert werden? Dazu finde ich keine
klaren Aussagen.

Du musst der Datei eine bestimmte Gruppe zuordnen, ich meine das geht mit chgrp. Und dann setzt zu die Rechte für die Datei bpsw. chmod 770 Dateix -> Root und die Gruppe dürfen alles, der Rest darf nix.

Wie lege ich Gruppen an, ändere die Gruppe eines Benutzers,
ändere ich den Besitzer einer
Datei?

Müsste auch auf linuxfibel.de stehen…

Grüsse
schuelsche

bin etwas weiter mit chown
…jetzt habe ich mit chown folgendes versucht (als root von der shell aus):

chown -c userX daten

aber bekomme die Meldung „Operation not permitted“

… ???

Hallo pumpkin!

chown -R userX daten

s.o.

usermod userX -G GRUPPE

das ging

chmod datei 0777

bringt mir ein „invalid mode string: ‚datei‘“ ein … :frowning:

Wobei die erste 7 für dne User, die 2 für die Gruppe und die 3
für alle steht.

Das könnte ich vielleicht verstehen, wenn ich es ausprobieren könnte, und es jemals klappen
täte… tut’s aber nicht…
Und das mit dem „user“: Ist damit der Besitzer gemeint? Oder jedes Mitglied der Gruppe
„users“ ? …

ändere ich den Besitzer einer
Datei?

chmod

das sollte „chown“ heißen, oder?

Gruß,
Peter

cu

Fehler vielleicht fat32?
Ich hab’ zum testen eine Datei auf der Linux-Partition angelegt, da geht chown problemlos.
Die Datei, deren Rechte mir am Herzen liegen, liegt allerdings auf einer fat32 formatierten
Platte.
Kann es sein, dass die Rechteverwaltung deshalb nicht funktioniert?

Dann müsste ich ja alles, was für windows zugänglich sein soll, als root auf die Platte
schieben … … ujuijui…!

Gruß,
Peter

Hi,

chmod datei 0777

bringt mir ein „invalid mode string: ‚datei‘“ ein … :frowning:

die Optionen sind verkehrtrum:
richtig:

Und das mit dem „user“: Ist damit der Besitzer gemeint? Oder

es gibt drei Leute:
user,group,others

user ist der Besitzer.

ändere ich den Besitzer einer
Datei?

chmod

das sollte „chown“ heißen, oder?

ja

J~

danke J~,

auf dem Linux-filesystem kann ich alles nachvollziehen, und steige auch langsam mit der
dahinterliegenden Logik durch.

Wenn jetzt noch jemand 'ne Idee wegen dem fat hätte … :wink:

Gruß,
Peter

Moin

Kann es sein, dass die Rechteverwaltung deshalb nicht
funktioniert?

Ja. Die Partition (und damit alle Daten) gehören erstmal root. Wenn das Sytem dann ein fs mit Rechteverwaltung (reiser, ext,…) erkennt werden die Dateien den anderen Usern zugeordent. Man kann auch auch Partitionen einem User schenken, geht über einen /etc/fstab. (such nach der Option „owner“)

cu

Hallo !

Erstmal der allgemeine Teil:

Ich steh wieder mal voll auf dem Schlauch:
Ich mochte einem Benutzer „userX“ vollen Zugriff auf ein
Verzeichnis „daten“ ermöglichen.

Bei den langatmigen Anleitungen zum Umgang mit dem Befehl
chmod komme ich aber beim besten
Willen nicht dahinter, wie der Befehl genau auszusehen hat,
denn alle Beispiele beschreiben
„Besitzer“, „Gruppen“ und „Andere“.

Mach mal ein ls -l: Da steht bei jeder Datei die Rechte, der Besitzer und die Gruppe:

drwxr-xr-x 3 fleischer users 208 2005-04-08 11:41 tmp
---------- --------- -----
Rechte Besitzer Gruppe

Rechte lassen sich, wie du richtig geschrieben hast, getrennt für Besitzer, Gruppe und Andere vergeben. Jede Datei hat genau einen Besitzer und gehört zu eine Gruppe. Ein Benutzer kann dagegen mehreren Gruppen angehören.
Zu den eigentlichen Rechten habe ich schon einmal was geschrieben, siehe http://www.alexander-fleischer.de/info/chmod.php .

Wie müssten denn die korrekten Befehle lauten, wenn „userX“
nicht der Besitzer von „daten“
ist, die Datei aber explizit nur durch root und „userX“
benutzt werden können soll?

Dann muss userX entweder Besitzer werden, oder zu einer Gruppe hinzugefügt werden, welche Zugriff auf die Daten haben soll. Da „root“ sowieso auf alles Zugriff hat, solltest du einfach den Besitzer der Daten auf „userX“ ändern (chown userX daten) und danach die Zugriffsrechte so setzen, das nur userX zugreifen kann (chmod 600 daten).

Wenn ich Rechte nur für Gruppen angeben kann, muss ich also
dafür sorgen dass „userX“ in
einer bestimmten Gruppe ist?

Entweder die /etc/group direkt bearbeiten, oder per groupadd / groupmod.

Wie gebe ich bei chmod an für WELCHE Grupppe die Rechte
geändert werden? Dazu finde ich keine
klaren Aussagen.

Es erhält immer die Gruppe Rechte, die der Datei zugeordnet ist, das kann nur eine sein. Kann man mit chgrp ändern…

Wie lege ich Gruppen an,

groupadd

ändere die Gruppe eines Benutzers,

usermod -G

ändere ich den Besitzer einer
Datei?

chown


Nun zu deinem Problem: Auf nicht-Linux Dateisystem geht, wie du schon gemerkt das alles nicht. FAT32 bietet einfach keine Möglichkeit, diese Attribute zu speichern. Daher haben alle Dateien auf der Windows-Partition die gleichen (nicht änderbaren) Besitzer / Gruppe / Rechte. Du kannst die Rechte nur für die gesamte Partition ändern. Das geht dauerhaft durch Anpassen der Datei /etc/fstab (File System TABle). Da steht zum Beispiel eine Zeile drin (augeben mit „cat /etc/fstab“, pro Dateisystem gibt es eine Zeile):

/dev/hde2 /windows/C vfat uid=fleischer,gid=users,umask=0007 0 0
--------- ---------- ---- ----------------------------------
Platte Mountpoint FS Mount-Optionen

FS=Filesystem

Vorn steht die Gerätedatei für die Partition, also /dev/hda1 für die 1. Partition auf der ersten IDE-Platte (Primary Master), oder wie hier die 2. Partition auf der 5. IDE Platte (SATA).
Dahinter steht, wo das Ganze im Dateisystem zu finden ist, danach das Dateisystem selbst (FAT32=>vfat).
Das Interressante sind die Optionen dahinter, uid= gibt den Besitzer aller Daten an, gid die Gruppe, umask welche Rechte NICHT gesetzt sind (in dem Fall ist das chmod 770, mit fmask=0110,dmask=0007 kann man das auch für Verzeichnisse (d) und Dateien (f) getrennt einstellen, da Verzeichnisse ausführbar sein müssen, „normale“ Dateien dagegen nicht).
Die Optionen passend ergänzen, vorher am besten erst mal auf der Konsole probieren, mit mount -oremount, /mountpoint (als root) neu mounten und mit ls -l nachsehen, ob die Rechte stimmen (gilt bis zum Reboot).
Um das dauerhaft zu machen, dann also die Optionen (die man übrigens alle bei „man mount“ findet) in der fstab ergänzen (sollte die Distribution da noch andere hinzugefügt haben, stehen lassen, ebenso alle anderen Felder und Zeilen der fstab). Dann sollte es auch nach dem booten stimmen…

Alexander

PS: sicherer wird FAT32 dadurch nicht, das Filesystem kennt nunmal keine Rechteverwaltung, wer da schreiben will, muss nur Knoppix/Windows booten…

chmod datei 0777

Wobei die erste 7 für dne User, die 2 für die Gruppe und die 3
für alle steht.

Na, pumpkin, mit dem Kopp schon im Wochenende? Es heißt natürlich

chmod 777 datei

wobei das so ausgerechnet wird:

 | u | g | o (u=user, g=group, o=others)
------+---+---+---
read | 4 | 4 | 4 
write | 2 | 2 | 2 
exec | 1 | 1 | 1

Für eine Datei, auf die der Besitzer (u) die Rechte lesen, schreiben und ausführen haben soll, die aber die Gruppe (g) und der Rest der Welt (o) nur lesen und ausführen darf, macht mans so:

u 4+2+1 = **7**
g 4+0+1 = **5**
o 4+0+1 = **5**

Gruß,
Stefan

2 Like

Wie müssten denn die korrekten Befehle lauten, wenn „userX“
nicht der Besitzer von „daten“
ist, die Datei aber explizit nur durch root und „userX“
benutzt werden können soll?

Der Besitzer der Datei ist also jemand anderes als userX, und dieser Besitzer soll nichts mit der Datei machen können:

chmod 070 datei

wobei ich selber einen so bekloppten befehl noch nie eingegeben habe. In diesem Beispiel müsste userX in der Gruppe sein, die auf die Datei Rechte hat, und er müsste einziges Mitglied sein.

Es ist geschickter userX zum Inhaber der Datei zu machen und dann mit

chmod 700

die Rechte zu setzen.

Wenn ich Rechte nur für Gruppen angeben kann, muss ich also
dafür sorgen dass „userX“ in
einer bestimmten Gruppe ist?

Yep.

Wie gebe ich bei chmod an für WELCHE Grupppe die Rechte
geändert werden? Dazu finde ich keine
klaren Aussagen.

Kann ich mir gut vorstellen, weil man mit chmod nicht angeben kann, für welche Gruppe die Rechte geändert werden sollen. Mit chmod ändert man die Rechte auf eine Datei, die einem Besitzer zugeordnet wird

chown userX datei

und einer Gruppe zugeordnet wird

chgrp groupY datei

.

Wie lege ich Gruppen an, ändere die Gruppe eines Benutzers,
ändere ich den Besitzer einer Datei?

groupadd, chgrp, chown

Gruß,
Stefan

anschaulich dargestellt

| u | g | o (u=user, g=group, o=others)
------±–±--±–
read | 4 | 4 | 4
write | 2 | 2 | 2
exec | 1 | 1 | 1

Für eine Datei, auf die der Besitzer
(u) die Rechte lesen, schreiben und ausführen haben
soll, die aber die Gruppe (g) und der Rest der Welt
(o) nur lesen und ausführen darf, macht mans so:

u
4+2+1 = 7
g 4+0+1 = 5
o 4+0+1 = 5

Gruß,
Stefan

So würde sogar ICH das gleich kapieren :wink:

Gruß,
Peter

Hallo Alexander,

erstmal vielsten Dank für die Ausführlichkeit, mit der du auf meine Fragerei eingehst!

Leider kann ich das alles erst am Montag durchprobieren, aber jetzt freue ich mich schon drauf =)

Gruß,
Peter

mit viel Mühen …
… bin ich jetzt endlich zu einem Zugriffsberechtigtem user auf meiner fat-Partition gekommen.

Dazu habe ich die fstab editiert, und musste erst neu booten, bis ich Schreibrechte bekam.

mount -oremount /dev/hdc1
mount -a

etc. hat alles nicht gewirkt.
Kommt man um einen Neustart nicht rum, oder müsste man nur den X-Server neu starten, …?
Linux sollte doch eigentlich solche Änderungen auch ohne nervige reboots können, anders als Windows, oder?

Die Optionen passend ergänzen, vorher am besten erst mal auf
der Konsole probieren, mit mount -oremount, /mountpoint (als root) neu mounten und mit ls -l
nachsehen, ob die Rechte stimmen (gilt bis zum Reboot).

Da hab’ ich nun wirklich alle denkbaren Kombinationen durchgeackert, beginnend mit

mount -oremount, uid=user1 /dev/hdc1 

hat aber nie nix nirgends zum Erfolg geführt, oder irgendwelche Änderungen erbracht.
Kannst du mal ein konkretes Beispiel geben, wie es hätte funktionieren können/sollen?
Die Beschreibungen in der manpage zu mount nachvollziehend, bekam ich nichts als Fehlermeldungen.

Um das dauerhaft zu machen, dann also die Optionen (die man
übrigens alle bei „man mount“ findet) in der fstab ergänzen
(sollte die Distribution da noch andere hinzugefügt haben,
stehen lassen, ebenso alle anderen Felder und Zeilen der
fstab). Dann sollte es auch nach dem booten stimmen…

Ich habe jetzt das „default“ bei den Optionen stehen lassen, obwohl ich mir eigentlich nicht vorstellen kann, dass das Sinn macht … ?

Gruß,
Peter

Hallo !

… bin ich jetzt endlich zu einem Zugriffsberechtigtem user
auf meiner fat-Partition gekommen.

Dazu habe ich die fstab editiert, und musste erst neu booten,
bis ich Schreibrechte bekam.

mount -oremount /dev/hdc1

…da fehlen die neuen Optionen

mount -a

wertet nur die fstab auf, macht aber soweit ich weiss nichts, wenn das FS schon gemountet ist

etc. hat alles nicht gewirkt.
Kommt man um einen Neustart nicht rum, oder müsste man nur den
X-Server neu starten, …?

X hat damit nichts zu tun… remount ist schon richtig.

Linux sollte doch eigentlich solche Änderungen auch ohne
nervige reboots können, anders als Windows, oder?

Ja.

mount -oremount, uid=user1 /dev/hdc1

Das Leerzeichen nach dem Komma muss weg, das muss alles ein Parameter sein, also mount -oremount,uid=user1 /dev/hdc1 …

Ich habe jetzt das „default“ bei den Optionen stehen lassen,
obwohl ich mir eigentlich nicht vorstellen kann, dass das Sinn
macht … ?

Schaden tut es nicht, weglassen stört bei default auch nicht… Manche Distributionen setzten da noch das charset um und so was, deswegen hatte ich geschrieben, das die stehen bleiben sollen wenn vorhanden.

Alexander

Hallo Alexander!

Damit ich die Kommandos nochmal ausprobieren kann, hab’ ich nochmal die fstab zurückgesetzt.
Aber so recht funktionieren will das alles nicht so wie du schreibst:

Linux sollte doch eigentlich solche Änderungen auch ohne
nervige reboots können, anders als Windows, oder?

Ja.

mount -oremount, uid=user1 /dev/hdc1

Das Leerzeichen nach dem Komma muss weg, das muss alles ein
Parameter sein, also mount -oremount,uid=user1 /dev/hdc1 …

Habe ich also so eingegeben:

mount -oremount,uid=user1 /dev/hdc1

Trotzdem hat user1 keine Schreibrechte auf der Partition.

Ein

chown user1 /dev/hdc1

gibt übrigens keinen Fehler aus, ändert aber nix.
Root hat Zugriff, user1 nicht.

Muss man speziell bei fat-Partitionen vielleicht doch erst un-mounten …???

Gruß,
Peter

Hallo !

mount -oremount,uid=user1 /dev/hdc1

Trotzdem hat user1 keine Schreibrechte auf der Partition.

Gerade hier ausprobiert, mount frisst das zwar und zeigts auch richtig an, aber ändert die Rechte nicht…

umount und danach mount (ohne das remount) geht aber…merkwürdig…

Alexander

Nochmal Hallo Alexander!

umount und danach mount (ohne das remount) geht
aber…merkwürdig…

Meine Versuche werden zusätzlich erschwert, weil ich nicht weiß, wie ich auf der shell den
Benutzer wechseln kann.
Eigentlich sollte doch "login " dafür sorgen, oder?
In meinem Falle wird aber die Passworteingabe immer mit einem „login incorrect“ quittiert,
obwohl ich 100% sicher das richtige Passwort eingegeben habe.

Diesen Beitrag schreibe ich übrigens im grauenhaften Konqueror, weil die Installation von
Firefox auch nicht im geringsten so klappen mag, wie überall beschrieben.
Außerdem braucht es nach dem booten c.a. 5 Minuten bis mein Trackball anspringt,die
Internetverbindung ist meist erst nach dem 10ten Versuch da, der Konqueror klappt immer
wieder mit einer Fehlermeldung zu, etc…
Unter Windoofs funktioniert das alles auf dieser Kiste einwandfrei. Das kann doch nicht wahr
sein!

Ist Suse 8.1 so grottenschlecht, oder ist meine Installation i.A.?

So, wie es jetzt läuft, ist das System für den Müll, und frisst Zeit ohne Ende, aber
irgendwie sollte es doch möglich sein, Linux auch zu benutzen, oder?

Mit frustriertem Gruß,
Peter

Hallo !

Nochmal Hallo Alexander!

umount und danach mount (ohne das remount) geht
aber…merkwürdig…

Meine Versuche werden zusätzlich erschwert, weil ich nicht
weiß, wie ich auf der shell den
Benutzer wechseln kann.
Eigentlich sollte doch "login " dafür sorgen,
oder?

su -

benutzer weglassen -> root
Ohne das - gehts auch, dann werden die Profileinstellungen nicht übernommen (Suchpfad, etc.)
Verlassen der subshell mit exit

Diesen Beitrag schreibe ich übrigens im grauenhaften
Konqueror, weil die Installation von

Konquerer ist der einzige Browser, der selbst in Web-Eingabefeldern eine Rechtschreibprüfung macht :wink:

Firefox auch nicht im geringsten so klappen mag, wie überall
beschrieben.

Nach der Installation 1x als root aufrufen hat hier geholfen, ggf. hilft auch ein xhost + …

Außerdem braucht es nach dem booten c.a. 5 Minuten bis mein
Trackball anspringt,die
Internetverbindung ist meist erst nach dem 10ten Versuch da,
der Konqueror klappt immer
wieder mit einer Fehlermeldung zu, etc…
Unter Windoofs funktioniert das alles auf dieser Kiste
einwandfrei. Das kann doch nicht wahr
sein!

Merkwürdig, ggfs. mal ims Log ( / var/log/messages ) schauen und evtl. Fehlermeldungen posten. Wenn das alles am USB hängt, wird wahrscheinlich der Chipsatz nicht erkannt.

Ist Suse 8.1 so grottenschlecht, oder ist meine Installation
i.A.?

…etwas alt, sind wir nicht bei 9.2 oder 9.3 ? Wenn der Rechner relativ neu ist, kann es schon sein, das das alte SuSE den Chipsatz nicht mag, weil es den noch nicht kennt…
Da fällt mir ein: 8.x könnte noch mit einer alten gtk-Version arbeiten, weswegen wahrscheinlich Firefox nicht mag…

So, wie es jetzt läuft, ist das System für den Müll, und
frisst Zeit ohne Ende, aber
irgendwie sollte es doch möglich sein, Linux auch zu
benutzen, oder?

Eigentlich schon, hier kein Problem. Ich setze auf einem alten Rechner, der nur noch (Web-, Mail-, mySQL-, File-) Server spielt (ohne X11) auch noch SuSE 8 ein, funktioniert. Allerdings ist die Hardware auch etwas älter (P166). Auf meinem aktuellen Rechner habe ich eine 9.2, läuft problemlos, selbst die SATA-Platte hat YaST erkannt…

Alexander

1 Like