Chmod

From s23
Jump to navigation Jump to search

A Unix/Linux shell command to change file permissions.

<man>chmod</man>


Chmod

Chmod ugoa =+- rwx filename

	WHO		
	U= user		
	G= group
	O= owner
	A= all

Or Chmod xxx filename

	R = 4		Read
	W = 2		Write
      	X = 1		Execute


Ie Chmod 744 file.ksh

	User can 	Read 		4
			Write 		+2
			Execute	        +1
					=7

	Group can 	Read		4

	Everyone can	Read		4


Wenn 4 Zahlen benutzt werden können noch weitere Sonderrecht vergeben werden.

Auch hier wird 1+2+4 addiert. 1 für "Rest der Welt", 2 für "Gruppe" und 4 für "Besitzer".


Substitute UserID Bit (SUID) "Wert": 4 - Besitzer

Dieses Recht gilt ausschließlich für ausführbare Dateien. Hat eine ausführbare Datei dieses Recht gesetzt, so erscheint in der Darstellung durch das ls -l Kommando statt dem x beim Eigentümerrecht ein s. Jeder User, der dieses Programm ausführt, tut dies unter der effektiven UserID des Users, dem die Datei geh?rt.

$ chmod 4755 test
$ ls -lha test
-rwsr-xr-x  1 took took 0 Mär 15 23:20 test*


Substitute GroupID Bit (SGID) "Wert": 2 - Gruppe

Dieses Recht gilt einerseits für ausführbare Dateien und andererseits für Verzeichnisse. Hat ein ausführbares Programm dieses Recht gesetzt, so gilt der gleiche Mechanismus, wie beim Substitute UserID Bit, nur diesmal eben die Gruppenmitgliedschaft betreffend. Ein User, der dieses Programm ausführt, tut dies als Gruppenmitglied der Gruppe, der das Programm gehört, statt seiner eigentlichen Gruppenkennung. Er hat also die Rechte eines Gruppenmitglieds dieser Gruppe.

$ ls -lha test
-rwxr-sr-x  1 took took 0 Mär 15 23:20 test*

Hat ein Verzeichnis dieses Recht gesetzt, dann liegt der Fall etwas anders. Legt ein User, der Schreibrecht auf ein Verzeichnis hat, in diesem Verzeichnis eine Datei an, so erh?lt diese Datei normalerweise die Gruppenmitgliedschaft der prim?ren Gruppe des Users, der sie eben angelegt hat. Das f?hrt schnell zum Chaos, wenn z.B. mehrere User zusammen an einem Projekt arbeiten. Alle diese User sind Gruppenmitglieder einer bestimmten Gruppe, aber sie haben diese...?!?! hundfred: pls continue


T "Wert": 1 -rest der Welt

da steht dann t bzw T.. wat dat bedeutet... wissema noch nich

$ chmod 1755 test
$ ls -lha test
-rwxr-xr-t  1 took took 0 Mär 15 23:20 test*
$ chmod 1754 test
$ ls -lha test
-rwxr-xr-T  1 took took 0 Mär 15 23:20 test*


Absolute modes are octal numbers specifying the complete list of attributes for the files; you specify attributes by OR'ing together these bits.

    01000000  temporary file
    02000000  compressed file
    04000000  sparse file
    4000      Hidden file (setuid bit)
    2000      System file (setgid bit)
    1000      Archive bit (sticky bit)
    0400      Individual read
    0200      Individual write
    0100      Individual execute (or list directory)
    0040      Group read
    0020      Group write
    0010      Group execute
    0004      Other read
    0002      Other write
    0001      Other execute

See also: POSIX_ACL