Benutzer-Werkzeuge

Webseiten-Werkzeuge


users_groups

User- ,Gruppen- & Berechtigungsverwaltung

User & Gruppen hinzufügen/löschen

hinzufügen

useradd -mG users hans -s /bin/bash Erstellen des Users hans und Hinzufügen zu der Gruppe users sowie festlegen von bash als Shell
passwd Festlegen eines Passworts für den aktuell eingeloggten Users
passwd hans Festlegen eines Passworts für hans
usermod -s /bin/bash hans die Shell von hans zu bash ändern
usermod -aG sudo hans Hinzufügen des Users zu der Gruppe sudo (die Gruppe muss vorher angelegt werden)
groupadd sshusers die Gruppe sshusers erstellen

löschen

userdel -r hans den User hans, sowie sein Home- und
Mailverzeichnis löschen
groupdel sshusers die Gruppe sshusers löschen

Berechtigungsverwaltung

Lese-, Schreib- und Ausführberechtigungen

Unter Unixartigen Systemen gibt es die drei Benutzerklassen User, Group und Others. Die Grundrechte Read, Write und Execute werden dabei diesen Benutzerklassen einzeln vergeben um so zu steuern, wer zu welchen Zugriffen berechtigt ist.

Im Listing kann man die Berechtigungen in der ersten Spalte ablesen:

$ ls -la 
-----------------------------------------------------------------
drwxr-xr-x  2 root root 4096 Feb  7 11:01 dir1
-rw-r--r--  1 root root   93 Feb  7 10:19 file
-rwxr-xr-x  1 root root  119 Feb  5 16:03 script.sh

Dabei kennzeichnet der erste Buchstabe den Dateitypen. dir1 wird hier mit einem d für directory versehen, reguläre Dateien haben ein - als Typbezeichnung.
Die übrigen 9 Chars stehen jeweils zu dritt gruppiert und von links nach rechts gelesen für die Berechtigungen von User, Group und den Others.
In diesem Fall darf der User (root) die Datei file lesen und schreiben, alle anderen können sie nur lesen. Das Skript script.sh darf nur von root beschrieben werden, alle anderen können es ausführen.

Ändern der Berechtigungen

Bei sensiblen Dateien sollten die Berechtigungen so weit es geht eingeschränkt werden damit unbefugte Zugriffe verhindert werden können. Das Erstellen eines Schlüsselpaares macht es vorbildlich vor:

$ ls -l ~/.ssh
---------------------------------------------------------------
insgesamt 16
-rw------- 1 hans hans 3326 Feb  7 11:41 id_rsa
-rw-r--r-- 1 hans hans  734 Feb  7 11:41 id_rsa.pub
Der private key (id_rsa) ist im Gegensatz zum public key (id_rsa.pub) nur für den User hans les- und beschreibbar. Genau so sollte dies auch bei der authorized_keys-Datei eingestellt sein. Dies kann man mit dem chmod-Kommando bewerkstelligen:

user@host:~$

chmod 600 .ssh/authorized_keys
Hierbei wird die |Oktalschreibweise für das Setzen der Berechtigungen verwendet.
Dabei stehen die Oktalzahlen von 0 bis 7 jeweils für die verschiedenen Kombinationen von r,w und x:
  |rwx
--+----
 0|000
 1|001
 2|010
 3|011
 4|100
 5|101
 6|110
 7|111
Eine andere Möglichkeit die gleichen Berechtigungen zu setzen wäre folgende:
chmod u=rw,g=,o= authorized_keys

Den Besitzer und die Gruppe einer Datei ändern

chown hans file ändert den Besitzer zu hans
chown hans:users file .. und die Gruppe zu users
chown -R hans:users dir .. rekursiv auf alle Dateien in dir
chgrp users file ändert nur die Gruppe einer Datei

Skript anlegen und ausführbar machen

Zuerst schreibe man in die Datei welcher Interpreter verwendet werden soll (hier: bash):

user@host:~$

echo '#!/bin/bash' > script.sh
ls -l
-------------------------------------------------------
-rw-r--r-- 1 hans hans 12 Feb  8 13:19 script.sh
Anschließend setze man die Berechtigungen zum Ausführen:

user@host:~$

chmod 755 script.sh
ls -l
-------------------------------------------------------
-rwxr-xr-x 1 hans hans 12 Feb  8 13:19 script.sh
Dann kann man die Datei editieren.

Die man-page von chmod liefert eine gute Referenz für das Berechtigungswesen unter Linux/Unix.

Sudo einrichten

sudo steht für „super user do“ und ist dafür gedacht, dass unpriviligierte User (nicht-root) Kommandos mit root-Rechten ausführen können, bzw. auf Dateien operieren können, die root-Rechte erfordern.
Zunächst muss sudo nachinstalliert werden, falls es nocht nicht auf dem System vorhanden ist:

root@host:~#

apt-get install sudo

Anschließend muss in der Konfigurationsdatei von sudo /etc/sudoers sichergestellt werden, dass die jeweilige sudo-Gruppe berechtigt ist höher priviligierte Kommandos auszuführen (Unter einigen Linuxen heißt die Gruppe wheel statt sudo):

root@host:~#

cat /etc/sudoers | grep -A 1 "execute any command"
--------------------------------------------------------------------
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Hierbei bewirkt der Schalter -A 1, dass nach jedem Match die nachfolgende Zeile mit ausgegeben wird.
Die Zeile %sudo ALL=(ALL:ALL) ALL sollte unkommentiert sein. Falls nicht, so entferne man das vorangestellte #.

Dann füge man die User in die Gruppe sudo hinzu:

root@host:~#

usermod -aG sudo hans

Beim erstmaligen Ausführen eines Kommandos mit sudo wird man mit einer Ausgabe an die verantwortungsvollen Pfilchten erinnert und dann nach dem Passwort des users, mit dem man eingeloggt ist, gefragt:

user@host:~$

sudo echo hallo
-------------------------------------------------------------------
Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:


    #1) Respektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach, bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

[sudo] Passwort für user: <tipperditipp ...>
hallo

users_groups.txt · Zuletzt geändert: 2018/02/12 18:55 von admin