GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beschränken Sie den Zugriff des Benutzers auf das Linux-System

Stellen Sie sich dieses Szenario vor. Sie möchten einem Benutzer erlauben, nur bestimmte Aufgaben auszuführen und bestimmte Befehle auszuführen. Der Benutzer sollte die Umgebungsvariablen/Pfade nicht ändern. Er kann die anderen Verzeichnisse außer seinem Home-Verzeichnis nicht besuchen und kann nicht zu anderen Benutzern wechseln usw. Der Benutzer kann nur einige wenige Befehle ausführen, die ihm vom Systemadministrator zugewiesen wurden. Ist das möglich? Ja! Hier ist Eingeschränkte Shell kommt zu Hilfe. Mit Restricted Shell können wir den Zugriff des Benutzers auf das Linux-System einfach einschränken. Sobald Sie die Benutzer in den eingeschränkten Shell-Modus versetzt haben, dürfen sie nur eine begrenzte Anzahl von Befehlen ausführen. In diesem kurzen Tutorial werden wir darüber sprechen, wie man dies unter Linux macht. Ich habe diese Anleitung auf einem CentOS 7-Minimalserver getestet. Es funktioniert jedoch auf den meisten Unix-ähnlichen Distributionen.

Was ist Restricted Shell?

Lassen Sie mich zunächst klarstellen, was genau Restricted Shell ist. Es ist keine separate Shell wie Bash, Korn Shell usw. Wenn Sie eine vorhandene Shell mit den Optionen "rbash", "--restricted", "-r" starten, wird sie zur eingeschränkten Shell. Beispielsweise kann die Bourne-Shell mit dem Befehl bsh -r als eingeschränkte Shell gestartet werden , und die Korn-Shell mit dem Befehl ksh -r .

Die eingeschränkte Shell wird die Benutzer daran hindern, die meisten Befehle auszuführen und das aktuelle Arbeitsverzeichnis zu ändern. Die eingeschränkte Shell wird den Benutzern die folgenden Einschränkungen auferlegen:

  • Sie können cd nicht ausführen Befehl. Du kannst also nirgendwo hingehen. Sie können einfach im aktuellen Arbeitsverzeichnis bleiben.
  • Sie können die Werte von $PATH nicht ändern , $SHELL , $BASH_ENV oder $ENV Umgebungsvariablen.
  • Sie können kein Programm ausführen, das ein /(Slash)-Zeichen enthält. Beispielsweise können Sie /usr/bin/uname nicht ausführen oder ./uname Befehl. Sie können jedoch den Befehl uname ausführen. Mit anderen Worten, Sie dürfen die Befehle nur im aktuellen Pfad ausführen.
  • Sie können die Ausgabe nicht mit „ > umleiten ’, ‘ >| ’, ‘<> ’, ‘ >& ’, ‘&> “ und „>> ’ Umleitungsoperatoren.
  • Sie können den eingeschränkten Shell-Modus innerhalb von Skripten nicht verlassen.
  • Sie können den eingeschränkten Shell-Modus nicht mit ‘set +r’ deaktivieren oder ‘Set +o Restricted’ .

Dies kann sehr nützlich sein, wenn eine große Anzahl von Benutzern ein gemeinsam genutztes System verwendet. Wenn Sie also den Benutzern erlauben möchten, nur bestimmte Befehle auszuführen, Restricted Shell ist eine Möglichkeit, dies zu tun.

Beschränken Sie den Zugriff des Benutzers auf das Linux-System mithilfe der eingeschränkten Shell

Erstellen Sie zuerst einen Symlink namens rbash von Bash wie unten gezeigt. Die folgenden Befehle sollten als root ausgeführt werden Benutzer.

# ln -s /bin/bash /bin/rbash

Erstellen Sie als Nächstes einen Benutzer namens "ostechnix" mit rbash als seine/ihre Standard-Login-Shell.

# useradd ostechnix -s /bin/rbash

Legen Sie das Passwort für den neuen Benutzer fest.

# passwd ostechnix

Erstellen Sie einen Papierkorb Verzeichnis innerhalb des Home-Ordners des neuen Benutzers.

# mkdir /home/ostechnix/bin

Jetzt müssen wir angeben, welche Befehle der Benutzer ausführen kann.

Hier werde ich dem Benutzer erlauben, nur "ls" auszuführen , "mkdir" , und "ping" Befehle. Sie können beliebige Befehle Ihrer Wahl zuweisen.

Führen Sie dazu die folgenden Befehle aus:

# ln -s /bin/ls /home/ostechnix/bin/ls
# ln -s /bin/mkdir /home/ostechnix/bin/mkdir
# ln -s /bin/ping /home/ostechnix/bin/ping

Jetzt verstehen Sie, warum wir im vorherigen Schritt das Verzeichnis „bin“ erstellt haben. Die Benutzer können keine Befehle außer den oben genannten drei Befehlen ausführen.

Verhindern Sie als Nächstes, dass der Benutzer .bash_profile ändert .

# chown root. /home/ostechnix/.bash_profile
# chmod 755 /home/ostechnix/.bash_profile

Bearbeiten Sie /home/ostechnix/.bash_profile Datei:

# vi /home/ostechnix/.bash_profile

Ändern Sie die PATH-Variable wie unten.

[...]
PATH=$HOME/bin
[...]

Drücken Sie ESC drücken und :wq eingeben um die Datei zu speichern und zu schließen.

Wenn sich der Benutzer jetzt anmeldet, wird die eingeschränkte Shell (rbash) als Standard-Login-Shell ausgeführt und liest das .bash_profile , wodurch PATH auf $HOME/bin gesetzt wird sodass der Benutzer nur ls ausführen kann , mkdir und ping Befehle. Die eingeschränkte Shell erlaubt dem Benutzer nicht, PATH zu ändern , und die Berechtigungen für .bash_profile erlaubt dem Benutzer nicht, die Umgebung zu ändern, um die Beschränkungen während der nächsten Anmeldesitzung zu umgehen.

Rbash verifizieren

Melden Sie sich jetzt vom Root-Benutzer ab und wieder mit dem neu erstellten Benutzer an, in unserem Fall also ostechnix.

Führen Sie dann einige Befehle aus, um zu überprüfen, ob es funktioniert oder nicht. Zum Beispiel möchte ich das Terminal leeren.

Dazu lief ich:

$ clear

Beispielausgabe:

-rbash: clear: command not found

Sie können cd nicht verwenden Befehl zum Wechseln in das andere Verzeichnis.

$ cd /root

Beispielausgabe:

-rbash: cd: restricted

Sie können die Ausgabe auch nicht mit dem >-Operator umleiten.

$ cat > file.txt

Beispielausgabe:

-rbash: file.txt: restricted: cannot redirect output

Der Benutzer "ostechnix" darf nur die von Ihnen (natürlich dem Systemadministrator) zugewiesenen Befehle verwenden. In unserem Fall kann der Benutzer ls-, mkdir- und ping-Befehle ausführen.

$ ls
$ mkdir ostechnix
$ ping -c 3 google.com

Abgesehen von diesen drei Befehlen kann der Benutzer nichts ausführen. Er/Sie ist vollständig unter Ihrer Kontrolle.

Empfohlene Lektüre:

  • So überwachen Sie die Benutzeraktivität unter Linux

Benutzern neue Befehle erlauben

Wenn Sie einem Benutzer weitere Befehle zuweisen möchten, melden Sie sich vom aktuellen Benutzer ab und wieder beim Root an Benutzer erneut und weisen Sie die Befehle wie unten gezeigt zu.

Zum Beispiel, um dem Benutzer (d. h. ostechnix) zu erlauben, rm auszuführen Befehl führen Sie den folgenden Befehl als root aus Benutzer.

# ln -s /bin/rm /home/ostechnix/bin/rm

Jetzt kann der Benutzer den Befehl "rm" verwenden.

Weitere Einzelheiten finden Sie in den Manpages unter dem unten angegebenen Link.

  • Rbash-Manpages

Linux
  1. So blockieren oder deaktivieren Sie normale Benutzeranmeldungen in Linux

  2. So überprüfen Sie die Betriebssystem- und Linux-Version

  3. So ändern Sie die Identität eines Linux-Systems

  4. Linux – Wie beschränkt man den Internetzugang für einen bestimmten Benutzer im LAN mit Iptables in Linux?

  5. So ändern Sie die PATH-Variable in Linux

So ändern Sie die Standardbenutzer-Shell im Linux-Betriebssystem

So treten Sie einem Linux-System einer Active Directory-Domäne bei

Die Auswirkungen des Hinzufügens von Benutzern zu einem Linux-System

So ändern Sie die Standard-Shell im Linux-System

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie man die Gruppen eines Linux-Benutzers kennt