OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

3.4.2. Die Werkzeuge


3.4.2.1. Der chmod-Befehl


Eine normale und manchmal lästige Folge der Anwendung strenger Dateiberechtigungen ist, dass Zugriffsrechte aus den unterschiedlichsten Gründen geändert werden müssen. Wir benutzen das chmod Befehl, dies zu tun, und schließlich zu chmod ist zu einem fast akzeptablen englischen Verb geworden und bedeutet die Änderung des Zugriffsmodus einer Datei. Der chmod Der Befehl kann mit alphanumerischen oder numerischen Optionen verwendet werden, je nachdem, was Ihnen am besten gefällt.


Das folgende Beispiel verwendet alphanumerische Optionen, um ein Problem zu lösen, das häufig bei neuen Benutzern auftritt:


asim:~> ./Hallo

bash: ./hello: schlechter Interpreter: Erlaubnis verweigert


asim:~> Hallo Katze

#! / Bin / bash

echo „Hallo Welt“


asim:~> ls -l Hallo

-rw-rw-r-- 1 asim asim 32. Jan. 15 16:29 hallo asim:~> chmod u+x Hallo

asim:~> ./Hallo

Hallo Welt


asim:~> ls -l Hallo

-rwxrw-r-- 1 asim asim 32. Jan. 15 16:29 Hallo*

asim:~> ./Hallo

bash: ./hello: schlechter Interpreter: Erlaubnis verweigert


asim:~> Hallo Katze

#! / Bin / bash

echo „Hallo Welt“


asim:~> ls -l Hallo

-rw-rw-r-- 1 asim asim 32. Jan. 15 16:29 hallo asim:~> chmod u+x Hallo

asim:~> ./Hallo

Hallo Welt


asim:~> ls -l Hallo

-rwxrw-r-- 1 asim asim 32. Jan. 15 16:29 Hallo*

Das + und - Operatoren werden verwendet, um einer bestimmten Gruppe ein bestimmtes Recht zu gewähren oder zu verweigern. Durch Kommas getrennte Kombinationen sind zulässig. Die Info- und Manpages enthalten nützliche Beispiele. Hier ist eine weitere, die die Datei aus dem vorherigen Beispiel zu einer privaten Datei für den Benutzer macht asim:


Image

asim:~> chmod u+rwx,go-rwx Hallo


asim:~> ls -l

HELLO

-rwx------

1 asim

asim

32. Jan. 15 16:29 Hallo*

Das Problem, das zu einer Fehlermeldung führt, dass die Berechtigung irgendwo verweigert wird, ist in den meisten Fällen ein Problem mit den Zugriffsrechten. Auch Kommentare wie „Gestern hat es funktioniert“ und „Wenn ich es als Root ausführe, funktioniert es“ werden höchstwahrscheinlich durch falsche Dateiberechtigungen verursacht.


Beim Benutzen chmod Bei numerischen Argumenten müssen die Werte für jedes gewährte Zugriffsrecht pro Gruppe zusammengezählt werden. Somit erhalten wir eine 3-stellige Zahl, die den symbolischen Wert für die Einstellungen darstellt chmod muss machen. Die folgende Tabelle listet die häufigsten Kombinationen auf:


Tabelle 3-9. Dateischutz mit chmod


Befehl

Bedeutung

chmod 400 Datei

Um eine Datei vor versehentlichem Überschreiben zu schützen.

chmod 500

Verzeichnis

Um sich vor versehentlichem Entfernen, Umbenennen oder Verschieben von Dateien aus diesem Verzeichnis zu schützen.


chmod 600 Datei

Eine private Datei, die nur von dem Benutzer geändert werden kann, der diesen Befehl eingegeben hat.

chmod 644 Datei

Eine öffentlich lesbare Datei, die nur vom ausstellenden Benutzer geändert werden kann.

chmod 660 Datei

Benutzer Ihrer Gruppe können diese Datei ändern, andere haben überhaupt keinen Zugriff darauf.

chmod 700 Datei

Schützt eine Datei vor dem Zugriff anderer Benutzer, während der ausstellende Benutzer weiterhin vollen Zugriff hat.

chmod 755

Verzeichnis

Für Dateien, die für andere lesbar und ausführbar, aber nur für den ausstellenden Benutzer änderbar sein sollen.

chmod 775 Datei

Standard-Dateifreigabemodus für eine Gruppe.

chmod 777 Datei

Jeder kann alles mit dieser Datei machen.

Wenn Sie als Argument eine Zahl mit weniger als drei Ziffern eingeben chmodAusgelassene Zeichen werden von links beginnend durch Nullen ersetzt. Auf Linux-Systemen gibt es tatsächlich eine vierte Ziffer, die den ersten drei vorangestellt ist und spezielle Zugriffsmodi festlegt. Alles darüber und noch viel mehr finden Sie auf den Infoseiten.


Image

3.4.2.2. Anmelden bei einer anderen Gruppe


Wenn Sie tippen id Auf der Befehlszeile erhalten Sie eine Liste aller Gruppen, denen Sie möglicherweise angehören können, gefolgt von Ihrem Benutzernamen und Ihrer Benutzer-ID sowie dem Gruppennamen und der Gruppen-ID, mit der Sie derzeit verbunden sind. Auf vielen Linux-Systemen können Sie jedoch jeweils nur in einer Gruppe aktiv angemeldet sein. Standardmäßig ist dieser Aktiv-bzw Hauptgruppe ist diejenige, die Ihnen vom zugewiesen wird / etc / passwd Datei. Das vierte Feld dieser Datei enthält die primäre Gruppen-ID des Benutzers, die im nachgeschlagen wird / etc / group Datei. Ein Beispiel:


asim:~> id

uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)


asim:~> grep asim / etc / passwd

asim:x:501:501:Asim El Baraka:/home/asim:/bin/bash


asim:~> grep 501 / etc / group

asim:x:501:

asim:~> id

uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)


asim:~> grep asim / etc / passwd

asim:x:501:501:Asim El Baraka:/home/asim:/bin/bash


asim:~> grep 501 / etc / group

asim:x:501:

Das vierte Feld in der Zeile von / etc / passwd enthält den Wert „501“, der die Gruppe repräsentiert asim im obigen Beispiel. Aus / etc / group Wir können den Namen ermitteln, der dieser Gruppen-ID entspricht. Bei der ersten Verbindung mit dem System ist dies die Gruppe, die asim wird dazu gehören.


ImageSchema für private Benutzergruppen

Um mehr Flexibilität zu ermöglichen, folgen die meisten Linux-Systeme dem sogenannten Schema für private Benutzergruppen, die jeden Benutzer primär seiner eigenen Gruppe zuordnet. Bei dieser Gruppe handelt es sich um eine Gruppe, die nur diesen bestimmten Benutzer enthält, daher der Name „private Gruppe“. Normalerweise hat diese Gruppe denselben Namen wie der Benutzeranmeldename, was etwas verwirrend sein kann.

Abgesehen von seiner eigenen privaten Gruppe, Benutzer asim können auch in den Gruppen sein Nutzer und Netz. Da es sich hierbei um sekundäre Gruppen für diesen Benutzer handelt, muss er die verwenden neugrp um sich bei einer dieser Gruppen anzumelden (verwenden Sie Passwort (zum Festlegen des Gruppenpassworts zuerst). Im Beispiel, asim muss Dateien erstellen, die der Gruppe gehören Netz.


asim:/var/www/html> neugrp Netz


asim:/var/www/html> id

uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)

asim:/var/www/html> neugrp Netz


asim:/var/www/html> id

uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)

Wann asim Wenn jetzt neue Dateien erstellt werden, sind diese im Gruppeneigentum der Gruppe Netz statt Eigentum der Gruppe zu sein asim:


Image


asim:/var/www/html> Berührungstest


asim:/var/www/html> ls -l Test

-rw-rw-r-- 1 asim web 0 10. Juni 15:38 Test

asim:/var/www/html> Berührungstest


asim:/var/www/html> ls -l Test

-rw-rw-r-- 1 asim web 0 10. Juni 15:38 Test

Wenn Sie sich bei einer neuen Gruppe anmelden, müssen Sie diese nicht verwenden chown (siehe Abschnitt 3.4.2.4) oder rufen Sie Ihren Systemadministrator an, um die Eigentümerschaft für Sie zu ändern.


Siehe die Manpage für neugrp um mehr zu erfahren.


Image

3.4.2.3. Die Dateimaske


Wenn eine neue Datei irgendwo gespeichert wird, wird sie zunächst dem Standard-Sicherheitsverfahren unterzogen. Dateien ohne Berechtigungen existieren unter Linux nicht. Die Standarddateiberechtigung wird durch die bestimmt Maske" für die Erstellung neuer Dateien. Der Wert dieser Maske kann mit angezeigt werden umask Befehl:


bert:~> umask

0002

bert:~> umask

0002

Anstatt die symbolischen Werte wie bei zu addieren chmodUm die Berechtigung für eine neue Datei zu berechnen, müssen sie von den insgesamt möglichen Zugriffsrechten abgezogen werden. Im obigen Beispiel sehen wir jedoch 4 Werte angezeigt, es gibt jedoch nur 3 Berechtigungskategorien: Benutzer, Gruppe und Sonstiges. Die erste Null ist Teil der speziellen Dateiattributeinstellungen, die wir in Abschnitt 3.4.2.4 und Abschnitt 4.1.6 besprechen werden. Es kann genauso gut sein, dass diese erste Null bei der Eingabe nicht auf Ihrem System angezeigt wird umask Befehl, und dass Sie nur 3 Zahlen sehen, die die Standarddateierstellungsmaske darstellen.


Jedes UNIX-ähnliche System verfügt über eine Systemfunktion zum Erstellen neuer Dateien, die jedes Mal aufgerufen wird, wenn ein Benutzer ein Programm verwendet, das neue Dateien erstellt, beispielsweise beim Herunterladen einer Datei aus dem Internet, beim Speichern eines neuen Textdokuments usw. Diese Funktion erstellt sowohl neue Dateien als auch neue Verzeichnisse. Beim Erstellen eines neuen Verzeichnisses wird jedem die volle Lese-, Schreib- und Ausführungsberechtigung gewährt. Beim Erstellen einer neuen Datei gewährt diese Funktion Lese- und Schreibberechtigungen für alle, setzt jedoch die Ausführungsberechtigungen für alle Benutzerkategorien auf „Keine“. Bevor die Maske angewendet wird, verfügt ein Verzeichnis über Berechtigungen 777 or rwxrwxrwx, eine einfache Datei 666 or rw-rw-rw-.


Image

Das umask Der Wert wird von diesen Standardberechtigungen abgezogen, nachdem die Funktion die neue Datei oder das neue Verzeichnis erstellt hat. Somit verfügt ein Verzeichnis über Berechtigungen von 775 standardmäßig eine Datei 664, wenn der Maskenwert ist (0) 002. Dies wird im folgenden Beispiel demonstriert:


bert:~> mkdir neues Verzeichnis


bert:~> ls -ld neues Verzeichnis

drwxrwxr-x 2 bert bert

4096 28. Februar 13:45 neues Verzeichnis/

bert:~> mkdir neues Verzeichnis


bert:~> ls -ld neues Verzeichnis

drwxrwxr-x 2 bert bert


bert:~> Berühren Sie „Neue Datei“.


bert:~> ls -l neue Datei

-rw-rw-r-- 1 bert bert

0 28. Februar 13:52 Neue Datei

bert:~> Berühren Sie „Neue Datei“.


bert:~> ls -l neue Datei

-rw-rw-r-- 1 bert bert


ImageDateien versus Verzeichnisse

Ein Verzeichnis erhält standardmäßig mehr Berechtigungen: Es hat immer die ausführen Erlaubnis. Wenn es das nicht gäbe, wäre es nicht zugänglich. Probieren Sie es aus, indem Sie ein Verzeichnis 644 chmodding!

Wenn Sie sich mit dem bei einer anderen Gruppe anmelden neugrp Befehl bleibt die Maske unverändert. Wenn es also auf eingestellt ist 002, Dateien und Verzeichnisse, die Sie erstellen, während Sie Mitglied der neuen Gruppe sind, sind auch für die anderen Mitglieder dieser Gruppe zugänglich; Sie müssen es nicht verwenden chmod.


Das Wurzel Der Benutzer verfügt normalerweise über strengere Standardberechtigungen zum Erstellen von Dateien:


[root@estoban root]# umask 022

[root@estoban root]# umask 022

Diese Standardeinstellungen werden beispielsweise systemweit in den Shell-Ressourcenkonfigurationsdateien festgelegt / Etc / bashrc or

/etc/profile. Sie können sie in Ihrer eigenen Shell-Konfigurationsdatei ändern, siehe Kapitel 7 zum Anpassen Ihrer Shell-Umgebung.


Image

3.4.2.4. Ändern des Benutzer- und Gruppeneigentums


Wenn eine Datei dem falschen Benutzer oder der falschen Gruppe gehört, kann der Fehler mit behoben werden chown (Besitzer wechseln) und chgrp (Gruppe ändern)-Befehle. Das Ändern des Dateieigentums ist eine häufige Aufgabe der Systemverwaltung in Umgebungen, in denen Dateien in einer Gruppe gemeinsam genutzt werden müssen. Beide Befehle sind sehr flexibel, wie Sie anhand des herausfinden können --help .


Das chown Der Befehl kann angewendet werden, um sowohl den Benutzer- als auch den Gruppenbesitz einer Datei zu ändern chgrp ändert nur den Gruppenbesitz. Natürlich prüft das System, ob der Benutzer, der einen dieser Befehle ausgibt, über ausreichende Berechtigungen für die Datei(en) verfügt, die er ändern möchte.


Um nur den Benutzereigentum einer Datei zu ändern, verwenden Sie diese Syntax:


chown newuser Datei


Wenn Sie nach dem Benutzernamen einen Doppelpunkt verwenden (siehe Infoseiten), wird auch die Gruppeneigentümerschaft auf die primäre Gruppe des Benutzers geändert, der den Befehl ausgibt. Auf einem Linux-System hat jeder Benutzer seine eigene Gruppe, daher kann dieses Formular verwendet werden, um Dateien privat zu machen:


jacky:~> id

uid=1304(jacky) gid=(1304) groups=1304(jacky),2034(pproject)


jacky:~> ls -l mein_bericht

-rw-rw-r-- 1 jacky project 29387 15. Jan. 09:34 my_report jacky:~> chown jacky: mein_bericht

jacky:~> chmod oder my_report


jacky:~> ls -l mein_bericht

-rw-rw---- 1 jacky jacky 29387 15. Januar 09:34 my_report

jacky:~> id

uid=1304(jacky) gid=(1304) groups=1304(jacky),2034(pproject)


jacky:~> ls -l mein_bericht

-rw-rw-r-- 1 jacky project 29387 15. Jan. 09:34 my_report jacky:~> chown jacky: mein_bericht

jacky:~> chmod oder my_report


jacky:~> ls -l mein_bericht

-rw-rw---- 1 jacky jacky 29387 15. Januar 09:34 my_report

If jacky möchte diese Datei teilen, ohne jedem die Erlaubnis geben zu müssen, sie zu schreiben, er kann die verwenden

chgrp-Befehl:


jacky:~> ls -l report-20020115.xls

-rw-rw---- 1 jacky jacky 45635 15. Januar 09:35 report-20020115.xls jacky:~> chgrp-Projektbericht-20020115.xls

jacky:~> chmod o= report-20020115.xls


jacky:~> ls -l report-20020115.xls

-rw-rw---- 1 jacky project 45635 15. Januar 09:35 report-20020115.xls

jacky:~> ls -l report-20020115.xls

-rw-rw---- 1 jacky jacky 45635 15. Januar 09:35 report-20020115.xls jacky:~> chgrp-Projektbericht-20020115.xls

jacky:~> chmod o= report-20020115.xls


jacky:~> ls -l report-20020115.xls

-rw-rw---- 1 jacky project 45635 15. Januar 09:35 report-20020115.xls

Auf diese Weise sind Benutzer in der Gruppe Projekt wird in der Lage sein, an dieser Datei zu arbeiten. Benutzer, die nicht zu dieser Gruppe gehören, haben damit überhaupt nichts zu tun.


Beide chown und chgrp kann verwendet werden, um den Besitzer rekursiv zu ändern -R Möglichkeit. In diesem Fall gehören alle zugrunde liegenden Dateien und Unterverzeichnisse eines bestimmten Verzeichnisses dem angegebenen Benutzer und/oder der angegebenen Gruppe.


ImageBeschränkungen

Auf den meisten Systemen ist die Verwendung von chown und chgrp Befehle sind für nicht privilegierte Benutzer eingeschränkt. Wenn Sie nicht der Administrator des Systems sind, können Sie aus Sicherheitsgründen weder Benutzer- noch Gruppeneigentümer ändern. Wenn die Verwendung dieser Befehle nicht eingeschränkt würde, könnten böswillige Benutzer anderen Benutzern und/oder Gruppen das Eigentum an Dateien zuweisen und das Verhalten der Umgebungen dieser Benutzer ändern und sogar Schäden an den Dateien anderer Benutzer verursachen.


Image

3.4.2.5. Spezielle Modi


Damit der Systemadministrator nicht ständig mit der Lösung von Berechtigungsproblemen beschäftigt ist, können spezielle Zugriffsrechte für ganze Verzeichnisse oder einzelne Programme vergeben werden. Es gibt drei spezielle Modi:


• Sticky-Bit-Modus: Nach der Ausführung eines Jobs bleibt der Befehl im Systemspeicher erhalten. Ursprünglich war dies eine Funktion, die häufig zur Speichereinsparung genutzt wurde: Große Jobs werden nur einmal in den Speicher geladen. Heutzutage ist Speicher jedoch kostengünstig und es gibt bessere Techniken zu seiner Verwaltung, sodass er nicht mehr wegen seiner Optimierungsfunktionen für einzelne Dateien verwendet wird. Bei der Anwendung auf ein gesamtes Verzeichnis hat das Sticky-Bit jedoch eine andere Bedeutung. In diesem Fall kann ein Benutzer Dateien in diesem Verzeichnis nur ändern, wenn er der Benutzerbesitzer der Datei ist oder wenn die Datei über die entsprechenden Berechtigungen verfügt. Diese Funktion wird für Verzeichnisse wie verwendet

Image

/ var / tmp, die für jedermann zugänglich sein müssen, bei denen es jedoch nicht angebracht ist, dass Benutzer die Daten anderer Benutzer ändern oder löschen. Das klebrige Bit wird durch a angezeigt t am Ende des Dateiberechtigungsfelds:


markieren:~> ls -ld /var/tmp

drwxrwxrwt 19 root root

8192 16. Januar 10:37 /var/tmp/

markieren:~> ls -ld /var/tmp

drwxrwxrwt 19 root root

Das Sticky-Bit wird mit dem Befehl gesetzt chmod o+t Verzeichnis. Der historische Ursprung des „t“ liegt in UNIX. Speichern Sie den Textzugriff -Funktion

SUID (Benutzer-ID festlegen) und SGID (Gruppen-ID festlegen): werden durch das Zeichen dargestellt s im Benutzer- oder Gruppenberechtigungsfeld. Wenn dieser Modus für eine ausführbare Datei festgelegt ist, wird sie mit den Benutzer- und Gruppenberechtigungen für die Datei ausgeführt, anstatt mit denen des Benutzers, der den Befehl ausgibt, und ermöglicht so den Zugriff auf Systemressourcen. Wir werden dies in Kapitel 4 weiter besprechen.

Image

• SGID (Gruppen-ID festlegen) für ein Verzeichnis: In diesem speziellen Fall hat jede im Verzeichnis erstellte Datei denselben Gruppeneigentümer wie das Verzeichnis selbst (während das normale Verhalten darin besteht, dass neue Dateien den Benutzern gehören, die sie erstellen). Auf diese Weise müssen sich Benutzer bei der Freigabe von Verzeichnissen keine Gedanken über den Dateieigentum machen:


mimi:~> ls -ld /opt/docs

drwxrws--- 4 Root-Benutzer

4096 25. Juli 2001 Dokumente/

mimi:~> ls -ld /opt/docs

drwxrws--- 4 Root-Benutzer


mimi:~> ls -l /opt/docs

-rw-rw---- 1 Mimi-Benutzer

345672 30. August 2001-Council.doc

mimi:~> ls -l /opt/docs

-rw-rw---- 1 Mimi-Benutzer

Dies ist die Standardmethode zum Teilen von Dateien unter UNIX.


ImageVorhandene Dateien bleiben unverändert!

Dateien, die in ein SGID-Verzeichnis verschoben, aber an anderer Stelle erstellt wurden, behalten ihren ursprünglichen Benutzer- und Gruppeneigentümer. Das kann verwirrend sein.


Image


Top OS Cloud Computing bei OnWorks: