
Ich bin ein Root-Benutzer und möchte nicht, dass Benutzer alle Linux-Befehle außer SSH ausführen können. Sie müssen in ihrem Benutzer nur den SSH-Befehl verwenden. Wie geht das? Kann mir bitte jemand helfen?
Antwort1
Um dies zu erreichen, können Sie verschiedene Ansätze verfolgen. Hier sind einige Optionen:
Verwenden Sie den integrierten eingeschränkten Modus der Bash-Shell: Sie können die Shell eines Benutzers im eingeschränkten Modus starten, indem Sie bash -r oder rbash ausführen. Dadurch wird der Benutzer daran gehindert, die meisten Befehle auszuführen, einschließlich Verzeichniswechsel, Festlegen von Umgebungsvariablen und Ausführen von Befehlen mit /bin/sh. Der Benutzer kann jedoch weiterhin Befehle ausführen, die in die Bash-Shell integriert sind, z. B. cd, echo und exit.
Verwenden Sie den Alias-Befehl der Bash-Shell: Mit dem Alias-Befehl können Sie benutzerdefinierte Befehle definieren, die der Benutzer ausführen darf. Sie könnten beispielsweise einen Alias für SSH wie folgt erstellen:
alias ssh='/usr/bin/ssh'
Dadurch kann der Benutzer den SSH-Befehl ausführen, jedoch keine anderen Befehle.
Verwenden Sie den integrierten Befehl der Bash-Shell: Mit dem integrierten Befehl können Sie einen Befehl so ausführen, als würde er von der Befehlszeile aus ausgeführt, anstatt als Funktion oder integriert. Sie können dies verwenden, um dem Benutzer das Ausführen bestimmter Befehle zu ermöglichen und ihn gleichzeitig daran zu hindern, andere Befehle auszuführen. Beispiel:
command ssh
Dadurch kann der Benutzer den SSH-Befehl ausführen, jedoch keine anderen Befehle.
Verwenden Sie die integrierte Funktion „enable“ der Bash-Shell: Mit der integrierten Funktion „enable“ können Sie bestimmte Shell-Integrierungen oder Befehle aktivieren oder deaktivieren. Sie können dies verwenden, um dem Benutzer die Ausführung bestimmter Befehle zu erlauben, ihn aber gleichzeitig daran zu hindern, andere Befehle auszuführen. Beispiel:
enable -n ssh
Dadurch wird der SSH-Befehl deaktiviert, sodass der Benutzer ihn nicht ausführen kann.
Verwenden Sie den Exportbefehl der Bash-Shell: Mit dem Exportbefehl können Sie Umgebungsvariablen festlegen, die der Benutzer nicht ändern darf. Beispiel:
export PATH=/usr/bin:/usr/sbin
Dadurch wird die Umgebungsvariable PATH des Benutzers so eingestellt, dass sie nur die Verzeichnisse /usr/bin und /usr/sbin umfasst. Der Benutzer kann also nur Befehle ausführen, die sich in diesen Verzeichnissen befinden.
Benutzerdefinierte Shell verwenden: Sie können eine benutzerdefinierte Shell erstellen, die dem Benutzer nur das Ausführen bestimmter Befehle erlaubt. Sie könnten beispielsweise ein Shell-Skript namens ssh-only erstellen, das wie folgt aussieht:
#!/bin/bash
# Check if the first argument is "ssh"
if [ "$1" == "ssh" ]; then
# If it is, run the ssh command
/usr/bin/ssh "$@"
else
# If it's not, print an error message
echo "Command not allowed"
fi
Stellen Sie dann die Shell des Benutzers mit dem Befehl chsh auf /path/to/ssh-only ein. Dadurch kann der Benutzer den SSH-Befehl ausführen, aber keine anderen Befehle.