Debian Benutzerverwaltung


© Juli 2020, Letzte Änd. 17.05.21

Übersicht

Bei der Installation wird man nach einen Benutzernamen,
Passwort und einem Administrator Passwort (für root) gefragt.
Dieser erste Benutzer hat meist schon leicht erweiterte Rechte.
Daher verwende ich dafür häufig den Namen "m" - wie Maintenance
oder m wie Leitung der Doppel-Null-Abteilung ;-)
Danach lege ich die Standard-Benutzer an mit den Namen "a1", "b1", etc.
für ein System welches auf der 1. Partition läuft.
Entsprechend sind den Benutzern noch Gruppen "m", "a", "b", etc. zugeordnet.

Den Benutzer "m" stelle ich so ein, dass ich in alle anderen Benutzer gucken kann.
Alle übrigen Benutzer können nicht in die Ordner ihrer jeweils anderen Benutzer gucken.
Ein Benutzer soll das eigene Profil aus einer anderen Installation lesen und schreiben können.
z.B. "a1" darf in "a2" lesen und schreiben und umgekehrt.

Da Linux nicht mit Benutzer-Namen, sondern mit ID's (uid's) arbeitet,
ist es wichtig in jeder Installation die selben ID's zu verwenden.
Analog wird eine Gruppe (gid) behandelt.

Nach der Installation und Einrichtung des Benutzers "m" sieht /home wie folgt aus.

cd /home
ls -la
total 28
drwxr-xr-x  4 root root  4096 Mar 19 05:02 .
drwxr-xr-x 18 root root  4096 Jun 27 05:20 ..
drwx------  2 root root 16384 Mar 19 04:55 lost+found
drwxr-xr-x  9 m    m     4096 Jul 17 17:41 m

id m
uid=1000(m) gid=1000(m) groups=1000(m),24(cdrom),25(floppy),29(audio),30(dip),
44(video),46(plugdev),109(netdev),112(bluetooth),116(scanner),119(lpadmin)

cat /etc/group
root:x:0:
...
m:x:1000:

Das Ergebnis aus /etc/group sollte niemals direkt editiert werden,
sondern lediglich als Kontrolle ausgegeben werden.
Die Gruppe root:x:0: sollte stets keine weiteren Benutzer enthalten!

Zum Anfang

Befehle für die Benutzerverwaltung

Allgemein gibt es verschiedene Befehle mit ähnlicher Wirkung zum Erzeugen, Ändern und Löschen.
Gibt man z.B. man useradd ein, empfiehlt Debian stattdessen adduser zu verwenden.
Anbei die wichtigsten Befehle und Parameter...

useradd -g group username                      group kann die gid oder 
                                               der Gruppenname sein
                                               besser adduser verwenden
adduser [opt] user group                       Allg. Notation: 
                                               Optionen Benutzername Gruppenname
adduser --ingroup group user   
adduser  user                                  erzeugt User und Gruppe 
adduser --uid ID --ingroup group --gid ID user  

addgroup [opt] [--gid ID] group
groupmod -n newGroup oldGroup 

usermod [opt] user
usermod -aG group1,group2 user                 Benutzer weiterer Gruppen hinzufügen
usermod -l user_neu user_alt                   Benutzername ändern
usermod -d /home/verzeichnis_neu -m user       Verzeichnis ändern
usermod -L user_locked                         Benutzer sperren

userdel -r username                            mit löschen des Heimatverzeichnisses
deluser c3                                     löscht User c3 & deren Gruppe
deluser c3 c                                   löscht nur den Benutzer c3 
                                               aus der Gruppe c

Eine gute Beschreibung findet sich unter   cyberciti.biz add user to group

Zum Anfang

Benutzer hinzufügen beim ASRock B450

Unter Debian 10 fängt die erste Benutzer-ID und Gruppen-ID jeweils mit 1000 an.
Das bedeutet, der nächste Benutzer & Gruppe bekommt die nächst höhere ID.

Gruppe erzeugen

su
addgroup a                                   bis DEB 9 möglich   -> gid=1001
groupadd b                                   war genauso möglich -> gid=1002

whereis addgroup                             Pfad in DEB 10 suchen
addgroup: /usr/sbin/addgroup /usr/share/man/man8/addgroup.8.gz

/usr/sbin/addgroup a                         ab DEB 10
Adding group `a' (GID 1001) ... Done.
/usr/sbin/addgroup b
/usr/sbin/groupadd c                         erzeugt um es später zu löschen

Benutzer der Gruppe hinzufügen

su
usermod -aG gruppe_vboxusers user_neu        Benutzer weiterer Gruppe hinzufügen
adduser a1 --ingroup a                       bis DEB 9 möglich
adduser b1 --ingroup b              

/usr/sbin/adduser a1 --ingroup a             ab DEB 10 
Adding user `a1' ...  Adding new user `a1' (1001) with group `a' ...
Creating home directory `/home/a1' ...
Copying files from `/etc/skel' ...
New password:   Retype new password:   passwd: password updated successfully
Changing the user information for a1
Enter the new value, or press ENTER for the default
  Full Name []: a1  Room Number []:  Work Phone []:  Home Phone []:  Other []: 
Is the information correct? [Y/n] Y

/usr/sbin/adduser b1 --ingroup b
/usr/sbin/adduser c1 --ingroup c             erzeugt, um es später zu löschen

Zum Anfang

Benutzer und Ordner umbenennen

usermod -l neu_user alt_user                 Name ändern
usermod -d /home/neu_pfad -m neu_user        Ordner-Name ändern

Benutzer sperren

usermod -L user_locked                       Benutzer sperren

Benutzer löschen

su
/usr/sbin/deluser c1                         löscht nur den Benutzer aus der Gruppe    
Removing user `c1' ...                       allg. deluser [options] user group
Warning: group `c' has no more members.
Done.

ls /home                                     Ordner c1 bleibt bestehen...
a1  b1  c1  lost+found  m

cat /etc/group
...                                          Benutzer c1 ist gelöscht,
c:x:1003:                                    Gruppe c ist geblieben

/usr/sbin/userdel -r c1                      löscht c1 & Heimatverzeichnis

Zum Anfang

andere Benutzer einsehen können

Um von "m" aus in die anderen Benutzer gucken zu können, ist es erforderlich das der Benutzer "m" der Gruppe "a" und "b" hinzugefügt wird.

su
whereis usermod
...
/user/sbin usermod -aG a,b m                Benutzer m der Gruppen a & b hinzufügen

Zum Anfang

Benutzer-Ordner die Leserechte entziehen

Da die verschiedenen Benutzer nicht fremde Ordner einsehen sollen, lösche ich "read" und "execute" von "other". Entsprechend ist vom Befehl chmod die dritte Ziffer 0.

ls -l
...                                                 entspricht
drwxr-xr-x 15 a1   a     4096 Aug  2 14:25 a1          755
drwxr-xr-x  2 b1   b     4096 Jul 17 19:12 b1          755
drwxr-xr-x  2 1003 c     4096 Aug  8 20:26 c1          755 c1 wurde gelöscht
drwx------  2 root root 16384 Mar 19 04:55 lost+found  700

su                            rwx = read write execute
cd /home                   
chmod 750 m                   7= 4+2+1    5= 4+1     0= ---
chmod 750 a1                  u= r w x    g= r-x     o= ---
chmod 750 b1                  u= user     g= group   o= others

ls -l
drwxr-x--- 15 a1   a     4096 Aug  2 14:25 a1          750 ist das gewünschte Ergebnis 
...

Weitere Details bzgl. des Befehls chmod sind weiter unten.

Zum Anfang

Überprüfung der Einstellungen auf dem ASRock B450

Wichtig ist zu wissen, dass viele Änderungen erst nach dem nächsten Einloggen übernommen werden.
Um also Überraschungen zu vermeiden, vor den Tests einmal aus- und wieder ein-loggen.

ls -la /home
...
drwxr-x---  3 a1   a     4096 Jul 18 01:42 a1     drwx = 7
drwxr-x---  2 b1   b     4096 Jul 17 19:12 b1      r-x = 5
drw	xr-x---  9 m    m     4096 Jul 18 01:40 m       --- = 0

cat /etc/group                            Ergebnis der Änderung
...
m:x:1000:
a:x:1001:m                                Benutzer m gehört zur Gruppe a & b
b:x:1002:m

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash           user:x:uid:gid:gecos:home:shell
...
m:x:1000:1000:m,,,:/home/m:/bin/bash      nur zur Info
a1:x:1001:1001:a1,,,:/home/a1:/bin/bash
b1:x:1002:1002:b1,,,:/home/b1:/bin/bash

cd /home/a1                               keine Fehlermeldung mit Benutzer m

su a1                                     gleicher Versuch als Benutzer a1
cd /home/m
-bash: cd: /home/m: Permission denied     Benutzer a1 hat keine Rechte auf Ordner m

Zum Anfang

Benutzerwechsel

Manchmal ist es sinnvoll ganze Datei-Bäume (rekursiv) einem anderen Benutzer zuzuordnen und allen Ordnern bzw. Dateien bestimmte Rechte zu geben.

su
chown -Rc a1:a Musik                       recursiv, c=bei Änd. → verbose
find Musik -type f -exec chmod 660 {} +    Rechte für alle Folder ändern   
find Musik -type d -exec chmod 770 {} +    Rechte für alle Dateien ändern

Weitere Details bzgl. des Befehls chown sind weiter unten.

Passwort Wechsel

Es ist auch möglich die Passwörter von anderen Benutzern zu ändern...

su
passwd a1                                  Passwort von anderen Benutzer ändern, benötigt root

Zum Anfang

Benutzer & Gruppe ändern mit chown

Allgemeine Parameter für chown, wie change owner.

chown [opt] owner:group file
       -R                  --recursive
       -v                  --verbose
       -c                  nur changes anzeigen
       --exclude           vorhanden	
--from=user_old:group_old  nur der gewünschte Benutzer und Gruppe wird geändert

Konkrete Beispiele:

chown -Rc a:a .filezilla   alles im unsichtbaren Ordner .filezilla bekommt einen anderen Besitzer

chown -Rc m:m *            *, aber es fehlen allerdings die unsichtbaren Dateien

chown -Rc m:m .*           Niemals! da dann auch die Ebenen darüber betroffen sind.

Zum Anfang

Einsehbarkeit mit chmod ändern

Allgemeine Übersicht über chmod Parameter und weitere Beispiele.

chmod [opt] mode file                    allg. Format 
Form:	[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+
       -c                                nur changes anzeigen
       -v                                verbose - besonders gesprächig
       -R                                recursive 

Bezeichnung der Abkürzungen

Konkrete Beispiele

chmod -Rc ug+rw Music                    u-user & g-group dürfen r-lesen & w-schreiben
chmod o-rwx m                            entfernt alle Rechte für others vgl. 750

Find /home/Musik -type f -exec chmod 660 {} +    alle Dateien bekommen 660
Find /home/Musik -type d -exec chmod 770 {} +    alle Ordner  bekommen 770

Zum Anfang

Mit chmod Rsync-Problem lösen

su                                       rsync wurde von root und nicht a3 gestartet
rsync --numeric-ids --progress -ac --exclude=VirtualBox\ VMs/* 
  --exclude=.ssh 
  --exclude=.local/share/Trash/* 
  /home/a  /media/a3/702aa5eb-57b3-4c2f-8b38-36bf3675bc2c/
rsync: write failed on ".../part_c.tar.gz": Read-only file system (30)

ls -la
-rw-r--r--  1 a3 a 49635593567 Jun  2  2015 part_c.tar.gz   nur lesbar reicht nicht

chmod 660 part_c.tar.gz

ls -la
-rw-rw----  1 a3 a 49635593567 Jun  2  2015 part_c.tar.gz

Zum Anfang

weitere Quellen

ubuntuusers.de   Benutzermanagement
debiananwenderhandbuch.de   Gruppen und Zugriffsrechte
cyberciti.biz   nicht direkt ausführbar Befehle ausführen
howtogeek.com   chmod

Zum Anfang