Benutzer-Werkzeuge

Webseiten-Werkzeuge


users_groups

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
users_groups [2018/02/12 18:36]
admin angelegt
users_groups [2018/02/12 18:55] (aktuell)
admin
Zeile 1: Zeile 1:
 ====== User- ,Gruppen- & Berechtigungsverwaltung ====== ====== User- ,Gruppen- & Berechtigungsverwaltung ======
-===== User & Groups basics ​=====+===== User & Gruppen hinzufügen/​löschen ​=====
 === hinzufügen === === 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 | |''​useradd -mG users hans -s /​bin/​bash ''​| Erstellen des Users hans und Hinzufügen zu der Gruppe users sowie festlegen von bash als Shell |
Zeile 12: Zeile 12:
 |'' ​ ''​| Mailverzeichnis löschen ​                                                                                       | |'' ​ ''​| Mailverzeichnis löschen ​                                                                                       |
 |''​groupdel sshusers ''​| die Gruppe sshusers löschen ​                                                                           | |''​groupdel sshusers ''​| die Gruppe sshusers löschen ​                                                                           |
 +===== Berechtigungsverwaltung =====
 +  * [[https://​www.cyberciti.biz/​faq/​how-linux-file-permissions-work/​]]
 +==== 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:
 +<​code>​
 +$ 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
 +</​code>​
 +
 +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 [[ssh#​schluessel_generieren|Erstellen eines Schlüsselpaares]] macht es vorbildlich vor:
 +<​code>​
 +$ 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
 +</​code>​
 +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_key''​s-Datei eingestellt sein. Dies kann man mit dem ''​chmod''​-Kommando bewerkstelligen:​
 +<​code|user@host:​~$>​
 +chmod 600 .ssh/​authorized_keys
 +</​code>​
 +Hierbei wird die [[https://​de.wikipedia.org/​wiki/​Unix-Dateirechte#​Oktalnotation||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:
 +<​code>​
 +  |rwx
 +--+----
 + 0|000
 + 1|001
 + 2|010
 + 3|011
 + 4|100
 + 5|101
 + 6|110
 + 7|111
 +</​code>​
 +Eine andere Möglichkeit die gleichen Berechtigungen zu setzen wäre folgende:
 +<​code>​
 +chmod u=rw,g=,o= authorized_keys
 +</​code>​
 +
 +=== 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):
 +<​code|user@host:​~$>​
 +echo '#​!/​bin/​bash'​ > script.sh
 +ls -l
 +-------------------------------------------------------
 +-rw-r--r-- 1 hans hans 12 Feb  8 13:19 script.sh
 +</​code>​
 +Anschließend setze man die Berechtigungen zum Ausführen:
 +
 +<​code|user@host:​~$>​
 +chmod 755 script.sh
 +ls -l
 +-------------------------------------------------------
 +-rwxr-xr-x 1 hans hans 12 Feb  8 13:19 script.sh
 +</​code>​
 +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:
 +<​code|root@host:​~#>​
 +apt-get install sudo
 +</​code>​
 +
 +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''​):​
 +
 +<​code|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
 +</​code>​
 +
 +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:
 +<​code|root@host:​~#>​
 +usermod -aG sudo hans
 +</​code>​
 +
 +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:
 +<​code|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
 +</​code>​
  
users_groups.1518457004.txt.gz · Zuletzt geändert: 2018/02/12 18:36 von admin