The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX for Dummies Questions & Answers > Antworten auf häufig gestellte Fragen > Tipps und Tutorials
.
Google unix.com



Tipps und Tutorials Hilfreiche Texte von unseren Nutzern.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Um den "unzip" & Berechtigungen "Erstellen" Dateiberechtigungen Mike1234 HP-UX 3 03-02-2008 05:34 PM
Unix-Rechte mobershaw SUN Solaris 0 01-24-2006 06:06 PM
Unix-Dateiberechtigungen jerardfjay UNIX für Fortgeschrittene und Experten 3 03-15-2005 12:25 PM
Unix-Rechte moukoko UNIX for Dummies Questions & Answers 2 03-11-2004 08:12 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Bewertung: Thread Rating: 6 votes, 4.83 average. Anzeige-Modi
  #1 (permalink)  
Old 05-28-2005
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix-Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9131
Unix-Dateirechte

Einführung

Ich habe einige Fehlinformationen in Bezug auf Unix-Dateiberechtigungen. Ich werde versuchen, um die Aufzeichnung direkt. Werfen Sie einen Blick auf dieses Beispiel einiger Ausgabe von ls:

Code:
$ ls -ld /usr/bin /usr/bin/cat
drwxrwxr-x   3 root     bin         8704 Sep 23  2004 /usr/bin
-r-xr-xr-x   1 bin      bin         9388 Jul 16  1997 /usr/bin/cat
$

In der ersten Zeile, die "root", sagt, dass das Verzeichnis befindet sich im Besitz der Benutzer "root". Und das "bin" ist die Gruppe des Verzeichnisses. Sie müssen verstehen, Benutzer und Gruppen, und ich werde davon ausgegangen, dass Sie tun. Mein Ziel ist es zu erklären, dass "drwxrwxr-x" und "-r-xr-xr-x" stuff. Das Feld ist eine Kombination aus den Dateityp und Zugriffsrechte. Gemeinsam werden diese Informationen auch unter der Bezeichnung der Datei-Modus. Und manchmal ist es das Berechtigungen. Ein guter Platz, um zu starten ist, indem sie einen Blick darauf werfen, wie diese Informationen tatsächlich auf der Festplatte gespeichert. Die Art und Weise, es wird sich um eine Reihe von Entscheidungen, die gemacht wurden in den letzten Jahren.

Wie die "Datei-Modus" gespeichert ist.

Auf der Festplatte, Informationen über eine Datei gespeichert ist, in der Struktur als "Inode". Jede Datei wird ein eigenes Inode. Ein Datenelement in einer Inode wird als "Modus", und es sieht wie folgt aus:

Code:
 |------file mode------|
 |                     |
 |
 |       |----full-----|
         |
 |-type| |   |--basic--|
 |     | |   |         |
 oo0 000 000 000 000 000
 ... ... ... ... ... ...
    |     |   |   |   |
    |     |   |   |   |---- rwx for other
    |     |   |   |
    |     |   |   |-------- rwx for group
    |     |   |
    |     |   |------------ rwx for user
    |     |
    |     |---------------- set uid, set gid, sticky bit
    |
    |---------------------- file type: regular (-)
                                       directory (d)
                                       character special (c)
                                       block special (b)
                                       fifo (p)
                                       symbolic link (l)
                                       socket (s)

Ich denke, dass die "Mode" wirklich bedeutet nur, dass die Rechte und den Datei-Typ wurde in geschoben, um Speicherplatz zu sparen. Aber der Autor des ls-Programm ist die Behandlung der Modus als ein einzelnes Element. Das ist der Grund, warum die Datei-Typ ist das erste Zeichen der Zeichenkette in der Genehmigung "ls-l"-Ausgabe. Der Dateityp wird in der Regel als eine der sieben Typen, die ich oben zeigen. Einige Versionen von Unix wird ein paar mehr. Der einzige andere Hinweis auf die Daten aus Layout ist, dass es keinen Platz für mehr Zugriffsbits.

Stellvertretend für die Berechtigungen in oktal

Der ls Programm kann Display, sagen wir, "rwxrwxrwx" für die Berechtigungen für eine Datei. Es ist auch sehr häufig auf eine Oktalzahl, um die Berechtigungen für eine Datei. Und wie sehen Sie oben, das ist, wie sie gespeichert sind. Sie können jemanden sagen hören, dass einige 777 Berechtigungen hat. Dies ist die gleiche wie "rwxrwxrwx" und viel einfacher zu sprechen. Sie müssen wissen, wie sie zu konvertieren. Drei Binärstellen bzw. Bits entspricht einem oktal Ziffer:


Code:
  421
  rwx

So dass die "read-Bit-Wert ist 4, der Schreib-Bit-Wert ist 2 und die Ausführung von Bit-Wert von 1 ist. Sie einfach diese bis zu eine oktal Ziffer. So"-rwxrwxrwx "ist 777. Und"-rwxr-x -- - "ist 750. Wenn Sie noch nicht sehen können, wie man von" rx "bis 5, vielleicht hilft diese Tabelle:


Code:
--- = 0
--x = 1
-w- = 2
-wx = 3
r-- = 4
r-x = 5
rw- = 6
rwx = 7

Hinweis: Wir brauchen oktal 4-stellig, alle von der Zugriffsbits. Die ersten drei Bits sind spezielle und häufig Null. Und Sie lernen, fast immer über die abschließenden 9 Bit zuerst. Einige Menschen stehen und nicht lernen, die ersten drei Bits. Aber es sind 12 Zugriffsbits, nicht nur 9. Dies gesagt, laßt uns jetzt einen Blick auf die nachfolgenden 9 Bits.

Die Basic Zugriffsbits

Wir haben 3 Dreibettzimmer: ein Dreibettzimmer für den Benutzer, ein Dreibettzimmer für die Gruppe, und ein Dreibettzimmer für andere. Manchmal ist der "user" ist der Eigentümer. Und manchmal "andere" wird als "Welt". Ich werde mit "Benutzer" und "andere", weil der Befehl chmod verwendet die Buchstaben ug und O, um auf diese verdreifacht.

In denen der Bits trifft auf Sie zu?

Wenn Unix entscheidet, was Sie tun können, sie nicht alle 9 Bit. Unix nimmt die erste Triple, dass auf Sie zutrifft. Betrachten Sie hierzu folgendermaßen vor:
Code:
----rwxrwx   1 joe        users           29 Mar 22 19:39 somefile

Auch wenn Joe besitzt diese Datei, kann er nicht auf ihn zugreifen. (Da Joe besitzt die Datei, er könnte sich den Zugang. Mehr dazu später.) Auch root ist etwas besonderes. root wird rwx für alle Verzeichnisse und rw auf alle Dateien. Auf eine Datei, wenn eine der 3 x-Bit gesetzt sind, hat root ausführen Erlaubnis. Diese Erlaubnis ist oft Behinderte auf die Netzwerk-Dateisysteme montiert.

Was rw wirklich bedeutet und x für eine Datei?

Für eine Datei, "lesen" und "Schreiben" sind recht intuitiv. Die x für "execute" bedeutet, dass der Kernel möglicherweise versuchen, um die Datei auszuführen. Aus diesem zu arbeiten, wird die Datei muss eine ausführbare Datei (Ausgabe von einem Compiler) oder ein Shell-Skript mit einem "#!" ersten Zeile. Für ein Verzeichnis, sind die Dinge ein wenig komplexer. Mit einem Verzeichnis, "schreiben" bedeutet, dass die Erlaubnis können Sie neue Dateien in das Verzeichnis oder entfernen Sie alte Dateien. Es manchmal überrascht, dass die Menschen können Sie eine Datei, die Sie nicht lesen können. Der Unix-Befehl rm-Test auf, und eine Warnung, aber Sie können diese Warnung mit-f. Und Warnung oder gar nicht, wenn Sie möchten, entfernen Sie eine nicht lesbare Datei von einem beschreibbaren Verzeichnis, können Sie. Und rmdir wird nicht die Mühe zu prüfen, auf allen.

Was rw wirklich bedeuten, und X für ein Verzeichnis?

Ein Verzeichnis ist eine Datei zu, und "lesen" Genehmigung bedeutet, dass Sie es lesen kann. Aber man kann wirklich nicht sehr viel tun, ohne Erlaubnis x und. Mit Verzeichnisse, Sie haben in der Regel auch lesen und ausführen Erlaubnis oder keines von beidem. Auf einem Verzeichnis, dass x ist offiziell "Suche Genehmigung". Sie müssen für die Verwendung eines x-Verzeichnis in ein Pfadname. Also, wenn Sie versuchen "cat / etc / passwd", benötigen Sie auf x / und / etc Sie brauchen auch die x-CD in ein Verzeichnis. Angenommen, Sie haben gelesen, aber nicht die Suche (x) die Erlaubnis für ein Verzeichnis. Was können Sie tun? Nicht viel. Sie können mit "ls", um die Datei-Namen. Auch "ls-l" wird nicht funktionieren. Lesen Sie den Zugang ohne Erlaubnis Suche ist nicht sehr nützlich. Noch, dass ist besser als mit nur Schreibrechte auf ein Verzeichnis ... das ist völlig nutzlos. Ich habe nicht gesehen, alle anderen Unterlagen, dass die Staaten dies ausdrücklich, so lassen Sie mich wiederholen: schreiben, aber keine Ausführungsberechtigung auf ein Verzeichnis gewährt nichts all.Suppose Sie suchen (x) die Erlaubnis, aber keine Leseberechtigung auf ein Verzeichnis. Jetzt können Sie Dateien in das Verzeichnis, falls Sie wissen, die Datei den Namen. Sie können CD in das Verzeichnis. Und das ist es. Sie können nicht einmal eine neue Datei. Hinzufügen Schreibberechtigung können Sie zum Erstellen von Dateien. Und Sie können dann das Löschen von Dateien, wenn Sie geschehen, zu wissen, ihren Namen.

Symbolische Links stellen einen Sonderfall

Die Erlaubnis auf einen symbolischen Link ein wenig spezieller als gut. Sie werden komplett ignoriert. Viele Versionen von Unix haben keine Möglichkeit, sie zu ändern.

Die setuid und setgid-Bits

Werfen Sie einen Blick auf diese:
Code:
$ ls -l /etc/passwd /etc/shadow /usr/bin/passwd
-r--r--r--   1 root     sys        14006 Jan 14 11:17 /etc/passwd
-r--------   1 root     sys         8281 Jan 14 11:18 /etc/shadow
-r-sr-sr-x   3 root     sys        96244 Sep  5  2001 /usr/bin/passwd

Die passwd-Datei schreibbar ist nur von root (Denken Sie daran, dass root ist etwas besonderes. Es kann eine Datei, die hat keine Schreibrechte gesetzt). Der Schatten-Datei, in denen Passwörter gespeichert sind, können nicht einmal gelesen werden durch normale Benutzer. Aber Joe will das Passwort ändern. Er kann tun, indem Sie / usr / bin / passwd. Beachten Sie die RS-Berechtigungen. Die passwd-Programm hat die suid und sgid Bits gesetzt. Dadurch wird die X in S. In oktal, wäre es 6555. Die passwd-Programm befindet sich im Besitz von root. Wenn Joe läuft, es läuft nicht als "Joe". Stattdessen, so läuft, wie es Eigentümer, die Wurzel. Also das passwd Programm können Joe's Passwort für ihn. Die SGID Bit arbeitet nach dem gleichen Prinzip, es sei denn, es wird das passwd Programm, um mit der Gruppe sys anstelle von Joe's Gruppe. Die suid und sgid nicht bekommen, ihre eigene Position in der ls. Wenn das SUID-Bit gesetzt ist, ls zeigt, wie anstatt ax für den Eigentümer Ausführungsberechtigung. Was passiert, wenn das SUID-Bit gesetzt ist, aber der Besitzer ist etwas ausführen? ls wird ein Kapital in S der Fall ist. Die sgid-Bit wird in einer ähnlichen Art und Weise, es sei denn, dass die Interaktion mit der Gruppe Ausführungsberechtigung. (Das Set uid wurde erfunden von Dennis Ritchie, wie er in der Entwicklung und Unix.)

Um auf die Dinge ein wenig, während Joe läuft das suid-to-root-passwd Programm "Joe" ist die reale UID und "root" ist die effektive UID. Die passwd-Programm können diese beiden id's, wenn es will. Dies ist, wie das passwd Programm weiß, dass Joe Joe, um nur das Passwort.

Das Sticky-Bit

Der Posix Standard sagt, dass, wenn das Sticky-Bit wird auf ein Verzeichnis, nur Schreibrechte auf das Verzeichnis ist nicht mehr genug, um Dateien zu entfernen. Sie müssen zusätzlich die Datei oder den eigenen eigenen Verzeichnis. root zu löschen können aus jedem beliebigen Verzeichnis unabhängig von Berechtigungen. Früher diente dieser etwas anderen Zweck. Auf einigen OS ist es noch nicht. Ich werde erarbeiten in einem Anhang aufgeführt. Das Sticky-Bit auf die "andere" execute Bit in der ls Anzeige. Außer, dass er t und T anstatt s und S. Zum Beispiel:
Code:
drwxrwxrwt   5 root       root          1024 Feb 11 20:43 /tmp

In diesem / tmp-Verzeichnis vor, jeder kann neue Dateien. Aber weil der Sticky-Bit, ein Benutzer nicht löschen können, einem anderen Benutzer die Dateien.

Begrenzung der Datei mit Berechtigungen umask

Wenn Dateien erstellt das Programm, das können die erste Genehmigung Einstellung. Sie können, dass mit umask. Die umask ist ein Satz von Bits zu verbieten. Es ist eine umask-Befehl, der Ihnen erlaubt, Anzeigen und Ändern der umask. Zum Beispiel, "umask 022" verbietet Gruppe schreiben und andere schreiben auf neu erstellte Dateien. Oder "umask 027" verbietet Gruppe schreiben, und es verbietet, andere lesen, schreiben oder ausführen. Sie können eine "umask 0" auf dem Programm, was es will, wie sie erzeugt werden. Aber Sie können nicht weiter. Sie können keine Kraft ein Programm, um ein bisschen auf. Die umask Einstellung wirkt sich auf Dateien, Verzeichnisse, benannte Pipes (FIFOs alias), und spezielle Dateien. Es kann keinen Einfluss auf symbolische Links. Es wirkt sich auch auf Somes Formen der Kommunikation zwischen Prozessen, aber das würde den Rahmen dieses Artikels. Und ob Sie es glauben oder nicht, den Namen Steckdosen sind von der umask. Diese Ausnahme ist erforderlich von Posix.

Ändern der Datei mit Berechtigungen chmod

Nur der Eigentümer einer Datei oder root können die Berechtigungen für eine Datei. Dieser Vorgang wird nicht die auf allen von der umask Einstellung. Wenn Sie Berechtigungen für einen symbolischen Link, wird der Link gefolgt, und Sie werden die Ziel-Datei. Es ist möglich, dass nur root wird die Macht haben, um eine Datei Sticky-Bit. Als ein Beispiel, "chmod 700 somefile" Wil vermieten die Besitzer lesen, schreiben und die Datei auszuführen, während disallowing allen den Zugang zu anderen Benutzern.

Symbolische-Modus mit chmod und umask

Posix eine neue Syntax für den Befehl chmod. Die Idee war, dass die neue Syntax ersetzt die Verwendung eines konstanten oktal mit dem chmod Befehl. Die oktal konstant weiterhin erlaubt ist, und ich denke, es ist hier zu bleiben. Aber die neue symbolische Syntax können Sie ein paar Bits, ohne zu wissen, was die anderen sind. Zum Beispiel, sagen wir mal, dass ich mich um eine Datei für andere nicht zugänglich, aber ich nicht, was eine Änderung der Zugang für den Benutzer oder die Gruppe. Ich hätte tun müssen:
ls-l-Datei
Sehen Sie sich Dateien und herauszufinden, die aktuellen Einstellungen.
chmod 750 Datei
Ich musste feststellen, dass die ersten beiden Ziffern sind Strömungen 7 und 5, bevor ich könnte mein chmod Kommando. Mit der neuen Syntax, kann ich einfach tun:
chmod o \u003d Datei
, um die letzten 3 Bits. Als ein weiteres Beispiel dafür, "chmod u + x-Datei" ermöglicht dem Benutzer, die Datei auszuführen. Auf der anderen Seite, diese beiden Befehle sind äquivalent:
chmod 750 Datei
chmod u \u003d rwx, g \u003d rx, o \u003d Datei
und ich bevorzuge die erste Syntax.

Der symbolische Modus kann eine durch Komma getrennte Liste der Spezifikationen. Jede Spezifikation besteht aus drei Komponenten: <who> <operation> <bitlist>
Code:
The who part can be:
u  (user)
g  (group)
o  (other)
a  (all)
   (whatever is allowed by umask (subset of all))

The operator can be  = or - or +
= (set bits to bitlist)
- (subtract bitlist from current bit
+ (add bitllist to current bits)

The bitlist can be one of the following letters:
r (read permission)
w (write permission)
x (execute permision)
X (conditional execute permision)
u (current permissions for user)
g (current permissions for group)
o (current permissions for others)
s (set uid or set gid)
t (sticky bit)

Das X ist das gleiche wie x, es sei denn, die Datei ist ein nondirectory und hat zurzeit noch keine x-Bit gesetzt. Die S (Set uid oder gid) kann nur für Benutzer oder Gruppe Berechtigungen. Die T kann nur für Benutzer-Berechtigungen. Ein paar Beispiele mit Hilfe. Oben haben wir gesehen, / usr / bin / passwd wurde 6555 (-r-sr-sr-x in ls). Hier sind einige Möglichkeiten, wie erreicht werden kann:
chmod 6555 / usr / bin / passwd
chmod u \u003d RXS, g \u003d RXS, o \u003d rx / usr / bin / passwd
chmod ug \u003d RXS, o \u003d rx / usr / bin / passwd
chmod a \u003d rx, ug + s / usr / bin / passwd
Und es gibt viele andere Wege, dies zu tun.

In den meisten Fällen ist immun gegen chmod umask in Bits, dass das, was sie will, um sich nicht geändert durch die umask. Allerdings unter einer Bedingung, die chmod-Befehl wird die aktuelle Einstellung von umask, um festzustellen, welche Bits es möchte. Dies geschieht, wenn Sie aus dem "Who"-Feld leer. Wie folgt aus:
chmod \u003d w somefile
Der Unterschied zwischen "a \u003d w" und "\u003d w" ist subtil. Hier ist ein Beispiel, die dazu beitragen können. Viele Programme versuchen, Dateien mit 666 (-rw-rw-rw-) Berechtigungen. Aber dies wird durch die umask. Nehmen wir an, die wollen Sie eine Datei in 666 geändert, aber von der aktuellen umask. Wir könnten alle Bits schalten, dann auf lesen und schreiben Bits, die von der aktuellen umask:

chmod a \u003d, \u003d rw somefile

Und spricht von umask, können Sie symbolischen Auseinandersetzungen mit dem Kommando umask als gut. Jedoch, Posix, In ihrer Weisheit beschlossen, dass in diesem Fall der Logik würde rückgängig gemacht werden. Also wenn die Verwendung umask mit einem Argument oktal Sie die Dinge, die verboten werden. Aber wenn Sie umask mit einem symbolischen Argument, geben Sie die Daten zu ermöglichen. Das sind also äquivalent:
umask 022
umask u \u003d rwx, go \u003d rx

Zusammenfassung

An dieser Stelle haben Sie genügend Informationen, um vor allem verstehen, diesen 12 Zugriffsbits. Es gibt einige sehr spezielle Fälle, die ich ignoriert oder totgeschwiegen über. In separaten Stellen unten werde ich diese Adresse. Die Informationen in diesem ersten Beitrag ist ziemlich universell. A Posix kompatible OS muss diese Sachen. Das betrifft fast alle Versionen von Unix freigegeben, in den letzten 10 Jahren. Die folgenden Artikel diskutieren Funktionen, die nicht universal sein.
 

Lesezeichen

Tags
chmod, Dateiberechtigungen, Linux-Befehle, Sticky Bit, suid, umask

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:28 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0