/media/sda-magnetic/david/Dok-15-2023-11-27/Dokumente-15-appended-2023-10-11/append-temporarly/safe.txt


Benutzer und Gruppen (Linux, UNIX)

Wir müssen unterscheiden, als Einstieg 

[list=1]
[*] Dem Benutzer [code]super user[/code] oder [code]root[/code]
[*] Dem Benutzer [code]user[/code] in meinem Fall [code]david[/code] oder zum Beispiel [code]sandra[/code]
[/list]

Wie viele Nutzer existieren
[list=1]
[*] [code]david[/code]
[*] [code]siegfried[/code]
[*] [code]brunhilde[/code]
[*] [code]naomi[/code]
[*] ...
[/list]
Hängt vom jeweiligen System ab. Beginnen wir mit 
[code]
UNIX
[/code]
und fangen zum Beispiel in der WG - einen Linux-Rechner an zu nutzen, wie wir meinen oft sinnvoll haben wir die kluge Idee zu meinen einen für alle zu verwenden. Und werden bestrebt sein, ihn für alle Bewohner gleich ein zu richten. Erfahrungswerte zeigen, daraus wird im Allgemeinen nichts. Die Zeiten in denen sich viele Nutzer an der Universität einen Rechner wie früher teilen, sind eigentlich letzten Endes vorbei.

Anders, ist, wenn es um Mails geht. Ich möchte keine Einführung in das Mailsystem vorstellen. So viel sei gesagt. Ich betreibe 
https://www.ituenix.de
mit dem Mailserver, erreichbar unter:
[code]
mail.ituenix.de
[/code]
und es gibt automatisch zu jedem "normalen" Benutzer ein Mail-Benutzer. Diese heissen entsprechend der Nutzer auf dem Rechner
[code]
david
[/code]
entsprechend, der Nutzer, die in der Gruppe
[code]
mail
[/code]

sind. Es gibt generell auf einem Linux-Rechner immer viel mehr Nutzer als es "physische Nutzer" gibt. Sie repräsentieren keine Benutzer, die am PC sitzen. Ein oftmals eingeführter Nutzer ist
[code]
www-data
[/code]

Diese Nutzer entstehen, indem wir 
[code]
services
[/code]

also gewisse Programme erstellen, die für mehr sind, als die reine "Benutzung". Nur gibt es für jeden Linux Rechner solche
[code]
services
[/code]

Der Nutzer
[code]
www-data
[/code]

entsteht allerdings automatisch, allerdings eher nur, wenn wir
[code]
apache2
[/code]

oder
[code]
nginx
[/code]

installieren, was oft nicht der Fall ist. Die Benutzer stehen übrigens in 
[code]
/etc/passwd
[/code]

Keine Sorge, hier werden keine Passwörter unverschlüsselt angezeigt. Und die entsprechenden Gruppen in 
[code]
/etc/group
[/code]

Also:
[list=1]
[*] [code]/etc/passwd[/code]
[*] [code]/etc/group[/code]
[/list]

Die Ausgabe bei mir

[code]
/etc/passwd
[/code]

[code]
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
tss:x:103:109:TPM software stack,,,:/var/lib/tpm:/bin/false
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:105:111:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
usbmux:x:106:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
rtkit:x:107:115:RealtimeKit,,,:/proc:/usr/sbin/nologin
sshd:x:108:65534::/run/sshd:/usr/sbin/nologin
dnsmasq:x:109:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
avahi:x:110:116:Avahi mDNS daemon,,,:/run/avahi-daemon:/usr/sbin/nologin
speech-dispatcher:x:111:29:Speech Dispatcher,,,:/run/speech-dispatcher:/bin/false
pulse:x:112:118:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
saned:x:113:121::/var/lib/saned:/usr/sbin/nologin
colord:x:114:122:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
geoclue:x:115:123::/var/lib/geoclue:/usr/sbin/nologin
sddm:x:116:124:Simple Desktop Display Manager:/var/lib/sddm:/bin/false
david:x:1000:1000:David Vajda,,,:/home/david:/bin/bash
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
postfix:x:117:125::/var/spool/postfix:/usr/sbin/nologin
gitlab-www:x:998:998::/var/opt/gitlab/nginx:/bin/false
git:x:997:997::/var/opt/gitlab:/bin/sh
gitlab-redis:x:996:996::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:995:995::/var/opt/gitlab/postgresql:/bin/sh
registry:x:994:994::/var/opt/gitlab/registry:/bin/sh
gitlab-prometheus:x:993:993::/var/opt/gitlab/prometheus:/bin/sh
debian-tor:x:118:127::/var/lib/tor:/bin/false
fwupd-refresh:x:119:130:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
polkitd:x:992:992:polkit:/nonexistent:/usr/sbin/nologin
[/code]

Das ist unlesbar. Zur guten Ausgabe von 
[code]
/etc/passwd
[/code] 
schlage ich diesen Artikel vor:

https://www.giga.de/downloads/linux-mint/tipps/linux-gruppen-und-benutzer-anzeigen-so-gehts/

oder auch diesen

https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_004_002.htm

Beide schlagen das Programm

[code]
cut 
[/code]

vor, zweiterer verweist darauf, dass die Behandlung von Zeichenketten in der Bash, sowohl vom Thema
[code]
sed
[/code]

als auch 
[code]
cut
[/code]

erfüllt werden. Ich wollte 
[code]
sed
[/code]
zu einem eigenen Thema machen. Ich werde dann
[code]
cut
[/code]

gleich mit einreihen. 
[code]
cut 
[/code]
erlaubt uns das herausfiltern bestimmter Spalten. In diesem Sinne müssen wir es aufrufen, als
[code]
cut -d: -f1 /etc/passwd
[/code]

[code]
cut 
[/code]

filtert automatisch bestimmte Spalten raus. Wie - ein Programm, dass das tut? Ja, allerdings sind wir nicht in einer Welt der Registry, sondern eine normaler Art und Weise, tabellarische Einträge zu speichern ist in 
[code]
csv
[/code]
Dateien. Etwas, das wir ausserhalb von Datenbanken häufig begegnen werden. Dabei werden Daten nach dem Prinzip
[code]
<feld1>:<feld2>:<feld3>:...
[/code]
gespeichert. Insofern müssen wir uns keine Sorgen machen, wie immer, hier passiert etwas unmögliches. Das Ergebnis von:
[code]
cut -d: -f1 /etc/passwd
[/code]
ist:
[code]
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
_apt
systemd-network
systemd-resolve
tss
messagebus
systemd-timesync
usbmux
rtkit
sshd
dnsmasq
avahi
speech-dispatcher
pulse
saned
colord
geoclue
sddm
david
systemd-coredump
postfix
gitlab-www
git
gitlab-redis
gitlab-psql
registry
gitlab-prometheus
debian-tor
fwupd-refresh
polkitd
[/code]
Wie wir sehen sind hier viele Benutzer, als die wir uns normalerweise nicht anmelden werden und auch nicht können. Interessant sind nebenbei 
[code]
feld3:feld4
[/code]
Hier wird die Nutzer und Gruppen-ID angezeigt.  Helfen tut
[code]
cut -d: -f1,3,4 /etc/passwd
[/code]

und die Ausgabe lautet: 
[code]
root:0:0
daemon:1:1
bin:2:2
sys:3:3
sync:4:65534
games:5:60
man:6:12
lp:7:7
mail:8:8
news:9:9
uucp:10:10
proxy:13:13
www-data:33:33
backup:34:34
list:38:38
irc:39:39
gnats:41:41
nobody:65534:65534
_apt:100:65534
systemd-network:101:102
systemd-resolve:102:103
tss:103:109
messagebus:104:110
systemd-timesync:105:111
usbmux:106:46
rtkit:107:115
sshd:108:65534
dnsmasq:109:65534
avahi:110:116
speech-dispatcher:111:29
pulse:112:118
saned:113:121
colord:114:122
geoclue:115:123
sddm:116:124
david:1000:1000
systemd-coredump:999:999
postfix:117:125
gitlab-www:998:998
git:997:997
gitlab-redis:996:996
gitlab-psql:995:995
registry:994:994
gitlab-prometheus:993:993
debian-tor:118:127
fwupd-refresh:119:130
polkitd:992:992
[/code]

Die Ausgabe von 
[code]
/etc/group
[/code]

[code]
cut -d: -f1,3 /etc/group
[/code]

[code]
root:0
daemon:1
bin:2
sys:3
adm:4
tty:5
disk:6
lp:7
mail:8
news:9
uucp:10
man:12
proxy:13
kmem:15
dialout:20
fax:21
voice:22
cdrom:24
floppy:25
tape:26
sudo:27
audio:29
dip:30
www-data:33
backup:34
operator:37
list:38
irc:39
src:40
gnats:41
shadow:42
utmp:43
video:44
sasl:45
plugdev:46
staff:50
games:60
users:100
nogroup:65534
systemd-journal:101
systemd-network:102
systemd-resolve:103
input:104
kvm:105
render:106
crontab:107
netdev:108
tss:109
messagebus:110
systemd-timesync:111
bluetooth:113
ssl-cert:114
rtkit:115
avahi:116
lpadmin:117
pulse:118
pulse-access:119
scanner:120
saned:121
colord:122
geoclue:123
sddm:124
david:1000
systemd-coredump:999
postfix:125
postdrop:126
gitlab-www:998
git:997
gitlab-redis:996
gitlab-psql:995
registry:994
gitlab-prometheus:993
debian-tor:127
sgx:128
_ssh:112
pipewire:129
fwupd-refresh:130
polkitd:992
[/code]

Häufig haben die Gruppen denselben Namen wie die Nutzer. Der Nutzer
[code]
www-data
[/code]

ist in derselben Gruppe, die heisst
[code]
www-data
[/code]

Gut, jeder Nutzer hat eine
[list=1]
[*] Benutzer-ID
[*] Gruppen-ID
[/list]

Was unsere Nutzer nicht sind
[list=1]
[*] Komplizierte Namen, wie
[code]
David Vajda
[/code]
die mit Leerzeichen getrennt stehen
[*] Eine Folge von Sonderzeichen oder im amerikanischen nicht typischen Zeichen
[*] Ein ganzer Datensatz von Addresse, Facebook-Kontaktdaten, Telefonnummer and so on
[*] Die Nutzer sind klar erkennbar - es gibt einen sicheren Ort, wo jeder Nutzer auf zu finden ist
[code]
/etc/passwd
[/code]
und das in einer für Menschen sichtbaren Art und Weise
[/list]

Was die Benutzer und Gruppen-ID nicht ist
[list=1]
[*] Ein komplizierter Binärcode
[*] Ein Eintrag in eine komplizierte Form einer Speicherung
[*] Ein [code]ACCESS_TOKEN[/code]
[*] Es handelt sich um eine lesbare Zahl, im Bereich von 
[code]
0 .. 2^16-1
[/code]
[*] ... die lesbar abgespeichert wird, und trotzdem vom System als Zahl verwendet wird.
[/list]

Die Speicherung
[code]
uid:gid
[/code]

ist üblich. 

[list=1]
[*] Benutzer-ID
[code]
uid
[/code]
[*] Gruppen-ID
[code]
gid
[/code]
[/list]

Diese Schreibweise:
[code]
uid:gid
[/code]

begegnet uns bei 
[code]
chown
[/code]

wieder. Dabei ist es oftmals egal, ob wir 
[list=1]
[*] Den Namen 
[*] Die ID 
[/list]
verwenden. Gut. Unser Mailsystem übrigens, wenn wir es aufgesetzt haben, verwendet dieselben Regeln für Namen von Nutzern und Nutzern, wie der Rest des Systems. Es gibt generell zumindest zunächst, keine Unterschiedliche Behandlung der Mailnutzer, wie der Nutzer, am Rechner.

Google verwendet zur Authentifizierung seiner User, häufig die Mail-Addresse, zum Beispiel
[code]
dave.vajda83@gmail.com
[/code]

Ich behaupte, dass Google inzwischen jede Zeile des Codes, seines Mailsystems und überhaupt seines Systems durch eigene ersetzt hat. Das war sicher nicht immer so. Am Anfang hat Google, als es noch nicht war, was es jetzt ist, einfach auf ein UNIX oder Linux-System zurückgegriffen, was auch für Mails gilt. 

Die Anmeldung über Mail-Addressen ist nicht üblich. Allerdings über das entsprechende Webinterface machbar.

Warum man normalerweise keine Nutzer in seinem eigenen Mailsystem zulässt ausser den eigenen hat oft Gründe aus dem Alltag. Das Internet wurde wie ich finde nicht wie Linus Torvalds sagt, deswegen egoistisch, weil jeder an seinem herum frickelt, sondern weil man schädigendes Verhaltne oft mals feststellt. Es ist besser eine Form des schädigenden Verhaltens zu zeigen und jedes Mal gibt es 100 Punkte. Das wird der Grund sein, warum man ausser sich selbst, wenn man kein grosser Provider ist - keine Nutzer in seinem eigenen Mail System zu lässt

Gut: Wie sehen die typische
[list=1]
['] [code]uid[/code]
[*] [code]gid[/code]
[/list]

aus. Meistens sind sie beim ersten "normalen" Nutzer, vom Wert
[list=1]
[*][code]1000:1000[/code] bei Debian
[*][code]500:500[/code] bei OpenSuSE
[/list]

Darauf möchte ich in diesem Artikel allerdings nicht hinaus. Die
[list=1]
[*] [code]/etc/passwd[/code]
[*] [code]/etc/group[/code]
[list]
sind sicher nicht zweitrangig, weil wir es eben mit 
[list=1]
[*] Benutzern und 
[*] Gruppen 
[/list]
zu tun haben, was Teil des Themas ist,  aber ich möchte:
[list=1]
[*] [code]chmod[/code]
[*] [code]chown[/code]
[/list]
vorstellen. Die eine Frage richtet sich danach,
[list=1]
[*] Wo sind unsere Nutzer gespeichert
[*] Die zweite: Wenn wir unseren eigenen Nutzer und den Nutzer
[code]
root:0:0
[/code]
[/list]
kennen. Wie können wir den 
[list=1]
[*] Besitzer
[*] Rechte
[/list]
einer Datei ändern.

Dazu müssen wir zwei Dinge verstehen:
[list=1]
[*] Die Besitzer einer Datei werden mit
[code]
chown 
[/code]
verändert und dazu gehören sowohl:
[list=1]
[*] Der Nutzer [code]u[/code]
[*] Als auch die Gruppe [code]g[/code]
[/list]
[*] [code]chmod[/code] mit dem wir die Rechte änderun
[/list]

Unterscheiden wir zwischen
[list=1]
[*] Benutzer [code]u[/code]
[*] Gruppe [code]g[/code]
[/list]

fällt uns gleich ein weiterer Club ein:
[list=1]
[*] Benutzer [code]u[/code]
[*] Gruppe [code]g[/code]
[*] Andere [code]o[/code]
[/list]

[code]o[/code] steht für [code]others[/code] und meint alle, die weder in der 
[list=1]
[*] Gruppe des Besitzers der Datei, nämlich eines Benutzers
[*] noch der Gruppe in dem dieser Eigentümer ist
[/list]

enthalten sind. Uns fällt auf:  Die Eigentümer-Verwaltung von Dateien ist nicht besonders schwer. Es gibt keine eigene Verwaltung für [code]others[/code]. Es liessen sich zum Beispiel theoretisch gedacht, eine vielzahl von Gruppen einfallen. 
[code]others[/code] könnte eine bestimmte Gruppe von anderen sein, die bestimmtes dürfte und es würde wiederum eine Gruppe [code]others2[/code] geben, die wiederum anders dürfte

allerdings lässt sich dieses Problem bequemer lösen, wie es UNIX und Linux auch tun, was nicht Teil dieses Artikels ist. Die Gruppenzugehörigkeit.

Ein Nutzer gehört zu verschiedenen Gruppen. Diese lassen sich mit dem Kommando 
[code]
id
[/code]

anzeigen. Bei 
[code]
david
[/code]

erhalten wir

[code]
uid=1000(david) gid=1000(david) Gruppen=1000(david),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),113(bluetooth),117(lpadmin),120(scanner)
[/code]

Richtig ist das trotz allem nicht, denn 
[code]
g
[/code]

steht im Allgemeinen nur für das, was
[code]
gid
[/code]

ist. Möchte man erreichen, dass bestimmte andere Nutzer auch etwas tun dürfen, mit der Datei, was sie von allen anderen unterscheidet, abgesehen vom Eigentümer selber müssen sie mit in der Gruppe sein, so dass die
[code]
gid
[/code]

beider identisch ist

Gut:

Schwer zu merken. Es gibt
[code]
2x3
[/code]

Es gibt drei Zeichen und eigentlich sind es vier
[list=1]
[*] [code]u[/code]
[*] [code]g[/code]
[*] [code]o[/code]
[/list]

Bezogen auf 
[code] chmod [/code]

sind es 4
[list=1]
[*] [code]u[/code]
[*] [code]g[/code]
[*] [code]o[/code]
[*] [code]a[/code]
[/list]

Dabei stehen:
[list=1]
[*] [code]u[/code]: User
[*] [code]g[/code]: Gruppe
[*] [code]o[/code]: Others
[*] [code]a[/code]: Alle
[/list]

Alle steht dabei nicht etwa, für 
[code]
alle
[/code]

das heisst, für das, was jeder Nutzer tun kann, egal, wer es ist. 
[code]
a
[/code]

für alle 
[code]
all
[/code]

steht für alle Formen von Gruppenidentitäten, nämlich:

[list=1]
[*] [code]u[/code]
[*] [code]g[/code]
[*] [code]o[/code]
[/list]

wollen wir die Rechte sowohl für

[list=1]
[*] [code]u[/code]: Den Benutzer
[*] [code]g[/code]: Die Gruppe
[*] [code]o[/code]: Alle anderen
[/list]

gleichzeitig auf ein Mal so ändern, dass sowohl

[list=1]
[*] [code]u[/code]
[*] [code]g[/code]
[*] [code]o[/code]
[/list]

gleichzeitig alle dieselben Rechte erhalten, benutzen wir bei
[code]
chmod
[/code]

den Parameter
[code]
-a
[/code]

Jetzt haben wir 2x3 - vergessen wir
[code]
-a
[/code]
Dieses gibt es nicht. Es ist nur eine Zusammenfassung von

[list=1]
[*] [code]u[/code]
[*] [code]g[/code]
[*] [code]o[/code]
[/list]

Das sind die ersten drei. Jetzt gibt es weitere 3:

[list=1]
[*] [code] r [/code]: Lesen
[*] [code] w [/code]: Schreiben
[*] [code] x [/code]: ausführen
[/list]

[list=1]
[*] Lesen
[*] Schreiben
[/list]

sind typische Prinzipien, die uns bei der Behandlung von Dateien immer wieder begegnen. Ausführen ist ein weiteres. Im Bereich von Computern reden wir immer wieder von

[list=1]
[*] [code]READ[/code]
[*] [code]WRITE[/code]
[/list]

Das tun wir unabhängig davon, ob wir ein Betriebssystem verwenden. Viele Befehle des Computers selber implizieren das. Sind wir nicht bei einer Turing Maschine und selbst da wird es so sein, werden wir bei diesem Prinzip bleiben. 

[list=1]
[*] [code]EXECUTE[/code] oder [code]EXEC[/code]
ist etwas sehr Betriebssystem spezifisches. Etwas, dass es ohne das Betriebssystem nicht gibt. Nicht als Systemaufruf.
[*] [code]READ[/code] ist ohne die Implementierung von Systemaufrufen durch das OS im System implementiert
[*] [code]WRITE[/code] ist ohne die Implementierung von Systemaufrufen durch das OS im System implementiert
[/list]

Allerdings. Lauten somit unsere Rechte
[list=1]
[*][code]r[/code] für [code]READ[/code] oder [code]read[/code]
[*][code]w[/code] für [code]WRITE[/code] oder [code]write[/code]
[*][code]x[/code] für [code]EXECUTE[/code] oder [code]exec[/code]
[/list]

Und unsere Clubs waren:

[list=1]
[*] Benutzer [code]u[/code]
[*] Gruppe [code]g[/code]
[*] Andere [code]o[/code]
[/list]


Gut mit dieser Einführung wird es schon ganz einfach, die Rechte entsprechend zu verwalten. Wenn wir [code]-a[/code] nicht vergessen

[list=1]
[*] [code]
chmod -u [rechte] datei.xyz
[/code]

verändert die Rechte für den Nutzer selber
[*][code]
chmod -g [rechte] datei.xyz
[/code]
verändert die Rechte einer Datei für die Gruppe des Eigentümers der Datei

[*][code]
chmod -o [rechte] datei.xyz
[/code]
verändert die Rechte einer Datei  für alle, die weder zu der Gruppe des Eigentümers gehören, noch der Eigentümer selber sind - kurz - 
[code]
others
[/code]

[*][code]
chmod -a [rechte] datei.xyz
[/code]
verändert die Rechte einer Datei für
[code]u,g,o[/code]
gleichermassen 
[/list]

Jetzt ist die Frage, was die Rechte sind

[list=1]
[*] [code]r[/code] für [code]read[/code]
[*] [code]w[/code] für [code]write[/code]
[*] [code]x[/code] für [code]execute[/code]
[/list]

Wir hatten, die [code]2x3[/code]-Regel aufgestellt. In wirklichkeit ist es die
[code]2x3+2[/code] Regel. Wenn wir

[code]
chmod 
[/code]

betrachten. Die Frage ist:

[list=1]
[*] Erteilen wir das Recht dem Besitzer, der Gruppe oder den anderen
[*] Entziehen wir das jeweilige Recht
[/list]

Etwas, das uns manchmal seltsamer weise immer wieder begegnen wird, ist die Unterscheidung in 
[code]
+/-
[/code]

In diesem Falle ist es nicht seltsam

[list=1]
[*] [code]+[/code] steht für Recht hinzufügen, setzen
[*] [code]-[/code] steht dafür, das Recht zu entziehen
[/list]

Das ist unsere [code]2x3+2[/code] Regel

[list=1]
[*] Clubs:
[list=1]
[*] [code]u[/code]: Der Eigentümer, ein Nutzer
[*] [code]g[/code]: Die Gruppe
[*] [code]o[/code]: Alle anderen
[/list]
[*] Rechte:
[list=1]
[*] [code]r[/code]: Lesen
[*] [code]w[/code]: schreiben
[*] [code]x[/code]: ausführen
[/list]
[*] Das was wir vorhaben zu tun
[list=1]
[/list]
[*] [code]+[/code]: Attribut, Recht setzen
[*] [code]-[/code]: Recht entziehen
[/list]

Ja und was passiert mit den übrigen Rechten, die zwar sind, aber nicht entzogen oder gesetzt werden? Sie bleiben.

Also ein typischer Aufruf von 
[code]
chmod
[/code]

dass die Rechte der entsprechenden Clubs ändert, sieht so aus
[code]
chmod a+rwx datei.xyz
[/code]

Es setzt für den Besitzer, die Gruppe, zu der der eigentümer gehört, und für alle anderen, die Rechte, Lesen, Schreiben, Ausführen. Jeder darf alles.

Ich stelle nun alle möglichkeiten vor:

[list=1]
[*] [code]chmod u+r datei.xyz [/code]: Dem Besitzer das Recht erteilen zu lesen:
[*] [code]chmod u+w datei.xyz [/code]: Dem Besitzer das Recht erteilen zu schreiben
[*] [code]chmod u+x datei.xyz [/code]: Dem Besitzer das Recht geben die Datei aus zu führen
[*] [code]chmod u+rw datei.xyz [/code]: Dem Besitzer die Rechte erteilen, die Datei zu lesen und zu schreiben
[*] [code]chmod u+rx datei.xyz [/code]: Dem Besitzer die Rechte erteilen, die Datei zu lesen und sie aus zu führen
[*] [code]chmod u+wx datei.xyz [/code]: Dem Besitzer die Rechte erteilen, die Datei zu schreiben und sie aus zu führen
[*] [code]chmod u+rwx datei.xyz [/code]: Dem Besitzer die Rechte erteilen, die Datei zu lesen, schreiben und sie aus zu führen. 

[*] [code]chmod g+r datei.xyz [/code]
[*] [code]chmod g+w datei.xyz [/code]
[*] [code]chmod g+x datei.xyz [/code]
[*] [code]chmod g+rw datei.xyz [/code]
[*] [code]chmod g+rx datei.xyz [/code]
[*] [code]chmod g+wx datei.xyz [/code]
[*] [code]chmod g+rwx datei.xyz [/code]

[*] [code]chmod o+r datei.xyz [/code]
[*] [code]chmod o+w datei.xyz [/code]
[*] [code]chmod o+x datei.xyz [/code]
[*] [code]chmod o+rw datei.xyz [/code]
[*] [code]chmod o+rx datei.xyz [/code]
[*] [code]chmod o+wx datei.xyz [/code]
[*] [code]chmod o+rwx datei.xyz [/code]

[*] [code]chmod a+r datei.xyz [/code]
[*] [code]chmod a+w datei.xyz [/code]
[*] [code]chmod a+x datei.xyz [/code]
[*] [code]chmod a+rw datei.xyz [/code]
[*] [code]chmod a+rx datei.xyz [/code]
[*] [code]chmod a+wx datei.xyz [/code]
[*] [code]chmod a+rwx datei.xyz [/code]




[*] [code]chmod u-r datei.xyz [/code]
[*] [code]chmod u-w datei.xyz [/code]
[*] [code]chmod u-x datei.xyz [/code]
[*] [code]chmod u-rw datei.xyz [/code]
[*] [code]chmod u-rx datei.xyz [/code]
[*] [code]chmod u-wx datei.xyz [/code]
[*] [code]chmod u-rwx datei.xyz [/code]

[*] [code]chmod g-r datei.xyz [/code]
[*] [code]chmod g-w datei.xyz [/code]
[*] [code]chmod g-x datei.xyz [/code]
[*] [code]chmod g-rw datei.xyz [/code]
[*] [code]chmod g-rx datei.xyz [/code]
[*] [code]chmod g-wx datei.xyz [/code]
[*] [code]chmod g-rwx datei.xyz [/code]

[*] [code]chmod o-r datei.xyz [/code]
[*] [code]chmod o-w datei.xyz [/code]
[*] [code]chmod o-x datei.xyz [/code]
[*] [code]chmod o-rw datei.xyz [/code]
[*] [code]chmod o-rx datei.xyz [/code]
[*] [code]chmod o-wx datei.xyz [/code]
[*] [code]chmod o-rwx datei.xyz [/code]

[*] [code]chmod a-r datei.xyz [/code]
[*] [code]chmod a-w datei.xyz [/code]
[*] [code]chmod a-x datei.xyz [/code]
[*] [code]chmod a-rw datei.xyz [/code]
[*] [code]chmod a-rx datei.xyz [/code]
[*] [code]chmod a-wx datei.xyz [/code]
[*] [code]chmod a-rwx datei.xyz [/code]
[/list]