Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ chmod(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chgrp(1)

ls(1)

newgrp(1)

umask(1)

chmod(2)

chown(2)

lockf(3C)

passwd(4)

chmod(1)                                                           chmod(1)

NAME
     chmod - Zugriffsrechte ändern (change mode)

SYNTAX
     chmod [-R] [--] modus datei ...

BESCHREIBUNG
     chmod ändert die Zugriffsrechte für Dateien.

     Nur der Eigentümer der Datei oder der Systemverwalter darf die
     Zugriffsrechte ändern. Das s-Bit für die Gruppe darf nur ein Benutzer
     setzen, dessen aktuelle Gruppennummer mit der Gruppennummer der Datei
     übereinstimmt, deren Zugriffsrechte verändert werden [siehe chgrp(1)
     und newgrp(1)].

OPTIONEN
     -R   (R - rekursiv) chmod ändert rekursiv die Zugriffsrechte aller
          Dateien in allen angegebenen Verzeichnissen und deren Unterver-
          zeichnissen.

     --   Ende der Optionenliste. Die Angabe ist nötig, wenn modus mit -
          beginnt.

     modus
          Mit modus geben Sie an, wie Sie die Zugriffsrechte für die ange-
          gebenen Dateien ändern wollen. Sie können modus auf zwei Arten
          definieren:

          -  durch eine symbolische Angabe

          -  durch eine absolute Angabe

          Symbolische Angabe: [wer]darf[was][,[wer]darf[was]]...

          wer  Mit wer geben Sie an, für wen Sie die Zugriffsrechte ändern
               wollen.

               wer kann sein:

               u  (u - user) für Eigentümer

               g  (g - group) für Gruppe

               o  (o - other) für andere Benutzer

               a  (a - all) für ugo, d. h. für alle Benutzer

               oder eine Kombination aus den Buchstaben u, g, o.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

chmod(1)                                                           chmod(1)

               wer nicht angegeben:

               chmod verhält sich ähnlich, als hätten Sie ugo oder a ange-
               geben. Die Zugriffsrechte werden für Eigentümer, Gruppe und
               andere Benutzer geändert, mit Ausnahme der durch umask(1)
               geschützten Bits (siehe BEISPIELE, 2. Tabelle).

          darf Mit darf geben Sie an, ob Sie die angegebenen Zugriffsrechte
               erteilen, unverändert lassen oder entziehen wollen.

               darf kann sein:

               +  Zugriffsrechte neu erteilen

               -  Zugriffsrechte entziehen

               =  Zugriffsrechte absolut setzen, d. h., es werden genau die
                  angegebenen Zugriffsrechte erteilt, alle anderen werden
                  entzogen.

          was  Mit was geben Sie an, welche Zugriffsrechte Sie erteilen
               bzw. entziehen wollen.

               was kann eine Kombination folgender Optionen sein:

               r  (r - read) für Leserecht

               w  (w - write) für Schreibrecht

               x  (x - execute) für Ausführrecht bzw. für Recht zum Durch-
                  laufen von Verzeichnissen.

               X  (X - execute) für Ausführrecht bzw. für Recht zum Durch-
                  laufen von Verzeichnissen. X wirkt im Gegensatz zu x nur
                  bei Verzeichnissen oder wenn für datei bereits x-Zu-
                  griffsrechte gesetzt sind.

               s  für s-Bit (set-user-ID-Bit bzw. set-group-ID-Bit).

                  Die Angabe s beim chmod-Aufruf ist nur zusammen mit u, g
                  oder ug wirksam (wird wer nicht angegeben, so wird hier-
                  für ug angenommen). Ein gesetztes s-Bit ist nur für aus-
                  führbare Binärdateien (nicht für Shell-Prozeduren!) wirk-
                  sam (siehe Das s-Bit unten).

               t  für Sticky-Bit (t-Bit).

                  Nur der Systemverwalter kann das Sticky-Bit setzten. Ver-
                  sucht ein nicht-privilegierter Benutzer das Sticky-Bit zu
                  setzen, so wird dies ignoriert. Die Angabe t beim chmod-
                  Aufruf ist nur zusammen mit u, a oder ohne Angabe für wer
                  wirksam. Ein gesetztes Sticky-Bit ist nur für ausführbare


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

chmod(1)                                                           chmod(1)

                  Dateien wirksam (siehe Das Sticky-Bit unten). Werden die
                  Zugriffsrechte einer Datei mit gesetztem Sticky-Bit geän-
                  dert, so wird das Sticky-Bit automatisch gelöscht.

               l  (l - lock) für obligatorische Sperre von Dateien, Ver-
                  zeichnissen oder Datensätzen. Hierbei können Schreib- und
                  Lesezugriff gesperrt werden, solange ein Programm auf
                  datei zugreift. Für datei wird das l-Bit gesetzt, wenn

                  -  für datei das Ausführrecht für Gruppe nicht gesetzt
                     ist und

                  -  für datei das s-Bit für die Gruppe gesetzt ist.

                     Folgende Beispiele sind deshalb nicht korrekt und füh-
                     ren zu Fehlermeldungen:

                     chmod g+x,+l datei
                     chmod g+s,+l datei

               u  Die Zugriffsrechte des aktuellen Eigentümers sollen über-
                  nommen werden.

               g  Die Zugriffsrechte der aktuellen Gruppe sollen übernommen
                  werden.

               o  Die Zugriffsrechte der aktuellen anderen Benutzer sollen
                  übernommen werden.

               was nicht angegeben:

               Dies ist nur sinnvoll in Kombination mit dem Gleichheitszei-
               chen =; dem betreffenden wer werden dann alle Zugriffsrechte
               entzogen.

          Wie oben angegeben, können Sie mehrere "wer-darf-was"-Angaben,
          getrennt durch Kommas, aneinanderreihen, z. B.

          chmod g-w,o-rw datei

          chmod arbeitet die Zeichenkette, die Sie für modus angeben, von
          links nach rechts ab. So erhält z. B. durch die Angabe a-w,u+w der
          Eigentümer Schreibrecht, während es allen anderen entzogen wird.

          Absolute Angabe

          Eine absolute Angabe für modus ist eine drei- oder vierstellige
          Oktalzahl. Die zulässigen Oktalzahlen erhalten Sie, wenn Sie die
          untenstehenden oktalen Modi im Binärsystem mit dem bitweisen
          logischen ODER verknüpfen. Dasselbe Ergebnis erhalten Sie, wenn
          Sie die Modi (im Oktal- oder Dezimalsystem) addieren. Eine füh-
          rende Null (weder s-Bit noch Sticky-Bit) können Sie weglassen.


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

chmod(1)                                                           chmod(1)

          Die angegebenen Zugriffsrechte werden erteilt, alle anderen
          Zugriffsrechte werden entzogen.

          4000   s-Bit für Eigentümer

          20#0   s-Bit für Gruppe, wenn # gleich 7, 5, 3 oder 1 ist. Eine
                 obligatorische Sperre wird gesetzt, wenn # gleich 6, 4, 2
                 oder 0 ist. Der Wert von # wird ignoriert, wenn datei ein
                 Verzeichnis ist. In diesem Fall dürfen Sie nur die symbo-
                 lische Angabe verwenden.

          1000   Sticky-Bit (t-Bit)

          0400   Leserecht für Eigentümer

          0200   Schreibrecht für Eigentümer

          0100   Ausführrecht (bzw. Recht zum Durchlaufen von Verzeichnis-
                 sen) für Eigentümer

          0040   Leserecht für Gruppe

          0020   Schreibrecht für Gruppe

          0010   Ausführrecht (bzw. Recht zum Durchlaufen von Verzeichnis-
                 sen) für Gruppe

          0004   Leserecht für andere Benutzer

          0002   Schreibrecht für andere Benutzer

          0001   Ausführrecht (bzw. Recht zum Durchlaufen von Verzeichnis-
                 sen) für andere Benutzer

          Beispiel:
               Wenn Sie für den Eigentümer das Lese-, Schreib- und Ausführ-
               recht setzen wollen, und für Gruppe das Lese- und Ausführ-
               recht, dann geben Sie für modus 750 an:

               400 + 200 + 100 + 40 + 10 = 750

               Für die Datei gelten dann die Zugriffsrechte rwxr-x---.

     datei
          Name der Datei, für die Sie die Zugriffsrechte definieren oder
          ändern wollen. datei kann auch ein Verzeichnis sein. Pro Aufruf
          können Sie mehrere Namen angeben.







Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

chmod(1)                                                           chmod(1)

SONDERRECHTE
   Das s-Bit

     Ist für ein ausführbares Programm das s-Bit für den Eigentümer
     gesetzt, dann ist beim Aufruf des Programms die effektive Benutzernum-
     mer des zugehörigen Prozesses gleich der Benutzernummer des Eigentü-
     mers der Datei (und nicht gleich der Benutzenummer des Aufrufers). Das
     bedeutet, daß der Prozeß unter der Benutzernummer des Programm-Eigen-
     tümers abläuft. Dadurch kann er auch auf Dateien zugreifen, für die
     der Programm-Aufrufer direkt kein Zugriffsrecht hat. Die reale Benut-
     zernummer des Prozesses bleibt die des Programm-Aufrufers.

     Ist das s-Bit für die Gruppe gesetzt, dann ist die effektive Gruppen-
     nummer des Prozesses gleich der Gruppennummer des Programm-Eigen-
     tümers. Der Prozeß läuft also unter der Gruppennummer des Programm-
     Eigentümers ab. Die reale Gruppennummer des Prozesses bleibt die des
     Programm-Aufrufers.

     Das s-Bit wirkt nur bei ausführbaren Binärdateien (ausführbaren Pro-
     grammen), nicht aber bei Shell-Prozeduren. Für Dateien, die eine
     Shell-Prozedur enthalten, kann das s-Bit zwar mit chmod gesetzt wer-
     den, es bleibt jedoch wirkungslos.

     Bei Dateiänderungen werden die s-Bits aus Sicherheitsgründen zurückge-
     setzt.

     Vorsicht:
          Setzt der Systemverwalter für ein Programm, das ihm gehört, das
          s-Bit, erlaubt er allen Benutzern, die das Programm aufrufen dür-
          fen, alle Operationen, die er selbst mit Hilfe dieses Programms
          ausführen darf. Er darf das s-Bit also nur dann setzen, wenn
          sichergestellt ist, daß dadurch keine Sicherheitslücke entsteht,
          z. B. Daten gefährdet werden.

     Ein Beispiel für die Anwendung des s-Bits ist das Kommando passwd
     (Verzeichnis /bin). Als normaler Benutzer haben Sie für die Kennwort-
     datei /etc/passwd kein Schreibrecht. Da für das Kommando passwd jedoch
     das s-Bit für den Eigentümer root gesetzt ist, können Sie über dieses
     Kommando ein neues Kennwort in die Datei /etc/passwd schreiben.

   Das Sticky-Bit (t-Bit)

     Nur der Systemverwalter kann das Sticky-Bit (t-Bit) setzen. Versucht
     ein nicht-privilegierter Benutzer das Sticky-Bit zu setzen, so wird
     dies ignoriert.

     Das Sticky-Bit wirkt nur bei Verzeichnissen und ausführbaren Dateien.
     Für andere Dateien kann es zwar mit chmod gesetzt werden, es ist
     jedoch wirkungslos.





Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

chmod(1)                                                           chmod(1)

     Ist das Sticky-Bit bei ausführbaren Dateien gesetzt, kann beim Pro-
     grammstart das Einlesen des Programms aus der Programmdatei und das
     Auslagern in den Swap-Bereich teilweise vermieden werden.

     Wenn ein Verzeichnis schreibbar ist, aber das Sticky-Bit gesetzt hat,
     muß eine der folgenden Bedingungen erfüllt sein, um eine Datei unter
     diesem Verzeichnis zu löschen, zu verschieben oder einen Verweis auf
     diese Datei zu erzeugen:

     -  die Datei muß dem Benutzer gehören

     -  das Verzeichnis muß dem Benutzer gehören

     -  der Benutzer muß Schreibberechtigung für die Datei haben

     -  der Benutzer muß ein privilegierter Benutzer sein

     Bei der Ausgabe des Kommandos ls -l erscheint ein gesetztes Sticky-Bit
     an der letzten Stelle der Zugriffsrechte. Ist gleichzeitig das x-Bit
     für "andere Benutzer" gesetzt, so wird ein t ausgegeben, andernfalls
     ein T.

   Das l-Bit

     Mit Hilfe der Funktion lockf(3C) kann ein Programm eine Datei sperren,
     solange das Programm auf diese Datei zugreift. Ist für diese Datei das
     l-Bit gesetzt, bewirkt der Funktionsaufruf eine obligatorische Sperre
     (mandatory locking) der Datei.

FEHLERMELDUNGEN

     chmod: ERROR: Invalid mode

          Sie haben für chmod einen unzulässigen Modus angegeben.

     chmod: WARNING: Locking not permitted on datei, a group executable file

          Sie wollten eine Datei sperren, obwohl für diese Datei das Aus-
          führrecht für Gruppe gesetzt ist.

     chmod: WARNING: Execute permission requiered for set-ID on execution
     for datei

          Sie wollten eine Datei sperren, obwohl für diese Datei das s-Bit
          gesetzt ist.

INTERNATIONALE UMGEBUNG
     Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
     texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
     ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
     LANG nicht oder als leere Zeichenkette definiert, verhält sich das
     System so, als wäre es nicht internationalisiert.


Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

chmod(1)                                                           chmod(1)

     Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.

BEISPIELE
     Die erste Tabelle zeigt Beispiele, welche symbolischen Angaben welchen
     absoluten Angaben entsprechen.
     ________________________________________
    | Symbolische Angabe |  Absolute Angabe |
    |____________________|__________________|
    | u-w                |         400      |
    | -w                 |         400      |
    | +rx                |         755      |
    | =r                 |         444      |
    | ug=rw,o=r          |         664      |
    | u=rwx,g=rx,o=      |         750      |
    | +x,u+s             |        4711      |
    | +xt                |        1711      |
    |____________________|__________________|

     Hinweis: Das Sticky-Bit (letztes Beispiel) kann nur der Systemverwal-
     ter setzen. Versucht ein nicht-privilegierter Benutzer das Sticky-Bit
     zu setzen, so wird dies ignoriert.

     Die folgenden Beispiele beziehen sich alle auf eine Datei mit den
     Zugriffsrechten rw-------.

     Die zweite Tabelle zeigt die unterschiedlichen Ergebnisse bei symboli-
     schen Angaben ohne wer-Spezifikation, in Abhängigkeit davon, welche
     Schutzbit-Maske durch umask(1) gesetzt ist.
     ___________________________________________
    | Symbolische Angabe |  umask |   Ergebnis |
    |____________________|________|____________|
    | +w                 |   022  |  rw------- |
    | +w                 |   000  |  rw--w--w- |
    |                    |        |            |
    | =rw                |   022  |  rw-r--r-- |
    | =rw                |   000  |  rw-rw-rw- |
    |____________________|________|____________|

     Die dritte Tabelle zeigt die Ergebnisse symbolischer oder absoluter
     Angaben, bei denen die durch umask(1) gesetzte Schutzbit-Maske keine
     Rolle spielt.
     ______________________________________________________________
    | Symbolische Angabe |  Absolute Angabe |  umask |   Ergebnis |
    |____________________|__________________|________|____________|
    | go+r               |        644       |    -   |  rw-r--r-- |
    | go=r               |        644       |    -   |  rw-r--r-- |
    | go+rw              |        666       |    -   |  rw-rw-rw- |
    |____________________|__________________|________|____________|




Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

chmod(1)                                                           chmod(1)

SIEHE AUCH
     chgrp(1), ls(1), newgrp(1), umask(1), chmod(2), chown(2), lockf(3C),
     passwd(4).



















































Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026