Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: HowTo -- chmod / chown / umask: Dateizugriffsrechte
BeitragVerfasst: 09.11.2004, 14:07 
Offline
Administrator
Benutzeravatar

Registriert: 29.03.2004, 20:53
Beiträge: 4450
Wohnort: Berlin
Das Thema Dateiberechtigungen ist ja unter Linux mehr als wichtig, darum hier ein Überblick von mir:

Erstmal das einfachere, nämlich den Benutzer und Gruppe die eine Datei oder ein Ordner angehört zu ändern:

chown
dazu gleich ein praktisches Beispiel
Code:
chown knecht:users /shared/testdatei

weist der Datei /shared/testdatei den Eigentümer knecht und der Gruppe users zu.

Code:
chown knecht: /shared/testdatei

schreibt man nur den user mit einem : danach, wird die Gruppe auf die Standartgruppe des Benutzers knecht gestellt. (wäre hier dann auch users)

Code:
chmod knecht /shared/testdatei

das ändernt nur den User

Code:
chmod :users /shared/testdatei

und das ändernt nur die Gruppe

Das wars auch schon von chown, um verwirrung mit anderen howtos zu verhindern, es ist egal ob man : oder . zwischen User und Group schreibt, geht beides !

_________________
Hört auf euch bis in den Schlaf zu verbeugen!


Zuletzt geändert von knecht am 10.12.2004, 20:48, insgesamt 3-mal geändert.

Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: 09.11.2004, 15:16 
Offline
Administrator
Benutzeravatar

Registriert: 29.03.2004, 20:53
Beiträge: 4450
Wohnort: Berlin
Und hier nun alles über Berechtigungen: chmod
Ich werd erstmal die Therorie zeigen, und danach ein paar praktische Beispiele zum verdeutlichen.

das kennen wir ja alle
Code:
BTS03-13:~ # ls -l
insgesamt 9
drwx------  13 root root  376 2004-11-09 08:55 .
drwxr-xr-x  22 root root  512 2004-11-09 13:32 ..
-rw-------   1 root root  240 2004-11-09 09:13 .bash_history
drwxr-xr-x   2 root root   48 2004-10-04 17:24 bin
-rw-r--r--   1 root root 1124 2000-02-28 22:05 .exrc


Dann werde ich anhand des Ordners bin mal erklären was die ersten zehn Buchstaben drwxr-xr-x bedeuten.

Fangen wir mit der ersten Stelle an:
d steht für directory, also das wir eben einen Ordner vor uns haben.
Es könnten an dieser Stelle folgende Angaben stehen:
- wenn es eine einfache Datei ist
l ist ein Link
c ist ein zeichenorientiertes Gerät (z.B. Modem)
b ist ein blockorientiertes Gerät (z.B. Festplatten)
s ist ein socket device (z.B. Netzwerkschnittstelle)
p ist eine pipe, ähnlich wie socket
Im Normalfall muß man nur d, l und - kennen, der Rest ist dann spezifisch !

Dann geht es weiter mit rwxr-xr-x.
r steht für read, also lesbar
w steht für write, also beschreibbar und löschbar
x steht für execute, also ausführbar (wichtig für Skripte und Programme)- steht für ein fehlendes Recht
die ersten drei Stellen dieses Ausschnitts stehen für die Rechte des momentanen Users an einer Datei oder einen Ordner. Die folgenden drei stehen für die Rechte aller User der selben Gruppe, die letzten drei Stellen stehen für alle anderen.
Also in unserem Fall:
rwx für den User (darf lesen,schreiben,ausführen)
r-x für alle User in der selben Gruppe wie der momentane User (lesen und ausführen)
r-x für alle anderen Benutzer des Systems (lesen und ausführen)

Damit hätten wir die grundlegende Theorie, jetzt kommen wir zum praktischen Verändern von Rechten, das dann mit chmod geht.
chmod [rechte] /datei
z.B.
Code:
chmod a+rwx /shared/datei

a steht für all, also user, group und other
+ fügt Berechtigungen hinzu, und zwar die Rechte rwx
Es wird also die Berechtigung -rwxrwxrwx resultieren

Code:
chmod u+x /shared/datei

u steht dafür, das nur die Rechte des Users verändert werden
+x steht für ausführbar machen.
aus -rw-r--r-- wird damit -rwxr--r--

Code:
chmod g-w /shared/datei

g steht für eine Änderung der Gruppenrechte, mit -w nehmen wir die Schreibrechte heraus.
aus -rwxrwxrwx wird damit -rwxr-xrwx

Code:
chmod o=r-x /shared/datei

o steht für other, also alle anderen Benutzer des Systems. Mit =r-x setzt man die Berechtigungen auf lesenbar und ausführbar.
Im Gegendsatz zu + oder - werden hier keine Rechte hinzugefügt oder weggenommen, sondern egal wie die Berechtigung ist wird sie bei other auf r-x gesetzt.

So wird also unter Linux mit Berechtigungen gearbeitet, und jetzt noch ein paar Hinweise.
(1.) Wenn ein Ordner die Rechte -rwxrwxrwx hat, und darin eine Datei mit den Rechten -r-xr-xr-x liegt, überwiegt die Berechtigung des Ordners, d.h. ich kann die Datei löschen obwohl keine w Rechte darin sind !!!

(2.) Man kann anstatt den Zeichen zum setzten von Berechtigungen auch Zahlen verwenden. Und das hat folgenden Zusammenhang. Jede Berechtigung wird mit einer Zahl als Entsprechung ausgedrückt, wobei read=2²=4 write=2¹= 2 und exec=2^0=1 sind.
z.B.
rwx = 4 + 2 + 1 = 7
r-x = 4 + 1 = 5
r-- = 4
rw- = 4 + 2 = 6

jetzt gibt es ja drei Berechtigungsarten, nämlich user, group und other, die jeweils mit einer Zahl belegt werden.
z.B.
777 = rwxrwxrwx
755 = rwxr-xr-x
754 = rwxr-xr--
555 = r-xr-xr-x

also macht ein chmod 777 /datei das selbe wie chmod a=rwx /datei, wie man es macht ist eine Geschmacksfrage . . .


(3.) Mache ich jetzt z.B chmod 777 /home/knecht wird nur der Ordner /home/knecht verändert, alle darunter liegenden Dateien und Ordner bleiben unverändert. Mache ich chmod -R 777 /home/knecht ändert er auch alle möglichen Unterordner und Dateien darin. (R = recursive).
Es hat sich auch noch als praktisch erwiesen die Option -v (verbose = gesprächig) zu benutzen. (z.B. chmod -vR 777 /home/knecht) Damit bringt man ihn dazu die Dateien und Ordner anzuzeigen die er ändert, ohne v gibt chmod gar keine Ausgabe.

_________________
Hört auf euch bis in den Schlaf zu verbeugen!


Zuletzt geändert von knecht am 15.11.2004, 09:27, insgesamt 1-mal geändert.

Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: 10.11.2004, 11:54 
Offline
Administrator
Benutzeravatar

Registriert: 29.03.2004, 20:53
Beiträge: 4450
Wohnort: Berlin
(4.) Sonderrechte UserID Bit, GroupID Bit und Sticky Bit


UserID Bit: z.B. -rwsrwxrwx
Erkennt man daran, das das x der Userrechte ist mit s ersetzt ist. Wird auf Dateien angewendet, die wärend sie vom User ausgeführt werden trotzdem root Rechte haben sollen. Das Bit sorgt dafür, dass ein Programm nicht mit den Rechten des Aufrufers, sondern des Dateieigentümers -hier root- ausgeführt wird. ping ist eine solche Datei/Anwendung. Normalerweise hätte ein vom User gestarteter Prozess keine Rechte auf das Netzwerkdevice zuzugreiffen, dieses Bit gibt dem Prozess diese Rechte, und somit kann man ping auch als User benutzen, wobei der Prozess die Rechte seines Eigentümers, also root Rechte, hat.
Gesetzt wird des durch chmod u+s /dateiname und wird für Dateien verwendet.

GroupID Bit: z.B. drwxrwsrwx
Das x der Gruppenrechte ist durch s ersetzt. Das Bit sorgt dafür, das ein Prozess statt der Gruppenzugehörigkeit des Aufrufers mit der Gruppenzugehörigkeit der Datei und den damit verbundenen Rechten ausgeführt wird, Dies wird meist auf Ordner angewendet, damit dadurch alle darin enthaltenen Dateien unabhängig von ihren eigenen Berechtigungen von allen Usern benutzt/gelöscht werden können. Also eine Datei mit den Rechten -rwxr--r-- die in diesem Ordner (drwxrwsrwx) liegt, dürfte normalerweise nur vom Eigentümer geändert/gelöscht werden. Durch das GroupID Bit kann jeder User alle in diesem Ordner befindlichen Dateien ändern/löschen, auch wenn die Berechtigungen der Datei so gesetzt sind, das er es normalerweise nicht kann.
Das GroupID Bit verändert nur das Verhgalten des Betriebssystems beim Erzeugen neuer Dateien. Der Umgang mit bereits existierenden Dateien ist in diesem Verzeichnissen völlig normal. Das bedeutet beispielsweise, dass eine Datei, die außerhalb des Verzeichnisses erzeugt wurde, beim Verschieben dorthin ihre ursprüngliche Gruppe behält, wohingegen sie beim Kopieren die Gruppe/Rechte des Verzeichnisses bekommen würde. (weil kopieren ist ein Prozess innerhalb des Ordners, verschieben nicht !)
Gesetzt wird es durch chmod g+s /ordnername und wird für Ordner verwendet, und alle darin erstellten Dateien haben die Gruppe "NOGROUP".

Sticky Bit: z.B. drwxrwxrwt
Das x der Rechte anderer Benutzer ist durch t ersetzt. Sticky bedeutet soviel wie "klebrig", und macht auch nur für Ordner sinn. Alle Dateien in einem Ordner mit diesem StickyBit dürfen unabhängig ihrer Berechtigungen nur von ihrem Eigentümer geändert/gelöscht werden. Wenn also eine Datei in diesem Ordner die Berechtigungen -rwxrwxrwx hat (also jeder sie löschen dürfte) kann sie trotzdem innerhalb dieses Ordners nur vom Eigentümer gelöscht/bearbeitet werden. Also der Gegensatz zum GroupID Bit !
Gesetzt wird es durch chmod o+t /ordner, und wird auf Ordner angewendet

WICHTIG
Steht ein großes S oder T in den berechtigungen, bedeutet dies das kein x dahinter gesetzt ist !!! (es verdeckt ja das jeweilige x)

_________________
Hört auf euch bis in den Schlaf zu verbeugen!


Zuletzt geändert von knecht am 02.02.2005, 09:50, insgesamt 3-mal geändert.

Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags:
BeitragVerfasst: 15.11.2004, 09:09 
Offline
Administrator
Benutzeravatar

Registriert: 29.03.2004, 20:53
Beiträge: 4450
Wohnort: Berlin
umask

Wenn im System Dateien/Ordner erstellt werden dann funktioniert das nach folgendem Schema:

Dateien werden vom System mit der Berechtigung 666 erstellt (-rw-rw-rw)
Verzeichnisse mit der Berechtigung 777 (drwxrwxrwx).
Das ist halt so festgelegt worden und Standart.

Eingeschränkt wird das nun von der umask. Standart ist für Dateien eine umask von 022, was praktisch bedeutet:
666 - 022 = 644 (-rw-r--r--). Dateien werden also im Endeffekt mit 644 erstellt.
Für Verzeichnisse gilt das gleiche:
777 - 022 = 755 (drwxr-xr-x)

ein kleines Beispiel zum Verdeutlichen:
Code:
myself@BTS03-13:~> touch testdatei
myself@BTS03-13:~> ls -l | grep testdatei
-rw-r--r--  1 myself users   0 2004-11-15 09:10 testdatei
myself@BTS03-13:~> umask 000
myself@BTS03-13:~> touch testdatei2
myself@BTS03-13:~> ls -l | grep testdatei
-rw-r--r--  1 myself users   0 2004-11-15 09:10 testdatei
-rw-rw-rw-  1 myself users   0 2004-11-15 09:10 testdatei2

Beim Erstellen von testdatei mit der Standart umask 022 resultiert wie oben berechnet eine Datei mit den Rechten 644 (-rw-r--r--) . Dann ändere ich manuell die umask auf 000, und erstelle testdatei2. Diese wird dann mit 666 - 000 = 666 (-rw-rw-rw-) erstellt

Festgelegt kann das einmal global für alle User in der Datei /etc/profile durch das ändern der Zeile umask 022 in den gewünschten Wert.

Für jeden User einzeln ist die umask im jeweiligen Homeverzeichniss in der Datei .profile festgelegt (standartmässig ist umask 022 eingetragen), oder wie im Beispiel gesehen auch einfach durch Eingabe in der Konsole (wobei dies natürlich nicht über einen Neustart hinaus gilt)

Man kann auch für eine Partition eine spezielle umask setzen, das wird dann in der /etc/fstab wie folgt eingebaut.
z.B.
Code:
/dev/hda2  /mountpoint reiserfs umask=000,user,exec 0 0

umask wird einfach als Option der jeweiligen Partition angegeben, alle Datei die darauf erstellt werden haben dann 666 - 000 = 666 (-rw-rw-rw-)

Und das war es auch schon was es darüber zu wissen gibt !! :wink:

_________________
Hört auf euch bis in den Schlaf zu verbeugen!


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: HowTo -- chmod / chown / umask: Dateizugriffsrechte
BeitragVerfasst: 20.03.2009, 12:00 
Offline
Backbone
Benutzeravatar

Registriert: 26.05.2005, 14:39
Beiträge: 594
Wohnort: 44287 (Dortmund)
Bin gerade auf eine Ungereimtheit gestoßen , bei Experimetieren.

Setze ich bei einem Vereichnis 7000 als Zugriffsrechte.
Code:
chmod 7000 m
Kommt dieses dabei raus.
Code:
d--S--S--T 13 matthias matthias  4096 10. Mär 20:49 m


Jetzt sollte man annehmen
Code:
chmod 0000 m


würde alle Zugriffsrechte löschen , das passiert aber nicht. Es passiert folgendes . Es wird nur das Sticky Bit gelöscht.
Code:
d--S--S--- 13 matthias matthias  4096 10. Mär 20:49 m


Um jetzt die anderen Rechte zu löschen muß man zum Symbolmodus greifen. o-rwx habe ich nur der Vollständigkeithalber mit aufgeführt. I
Code:
chmod u-rwxs,g-rwxs,o-rwxt m


Ergebnis:
Code:
d--------- 13 matthias matthias  4096 10. Mär 20:49 m

_________________
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft


Nach oben
 Profil E-Mail senden  
 
 Betreff des Beitrags: Re: HowTo -- chmod / chown / umask: Dateizugriffsrechte
BeitragVerfasst: 21.03.2009, 20:02 
Offline
Administrator
Benutzeravatar

Registriert: 29.03.2004, 20:53
Beiträge: 4450
Wohnort: Berlin
Bei mir zeigt sich unter Gentoo genau das gleiche Verhalten . . . komische Sache auf die du gestossen bist.

Ich hab einige Zeit gegoogelt, aber dafür keine Erklärung gefunden. Ich verstehe auch nicht warum das nicht d--------- ergiebt :-?

Hast du eine Erklärung ?

_________________
Hört auf euch bis in den Schlaf zu verbeugen!


Nach oben
 Profil E-Mail senden  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de

Locations of visitors to this page