GNU/Linux >> Tutoriels Linux >  >> Linux

rbash - Définir le shell restreint sous Linux

rbash représente le shell bash restreint. Sous UNIX, comme lorsqu'un utilisateur est créé, un shell par défaut (/bin/bash) est attribué. Ainsi, un utilisateur peut se déplacer vers les répertoires de n'importe qui, donc pour éviter cette situation, nous pouvons attribuer le shell restreint à un utilisateur, le shell restreint est comme un environnement de type prison ou un environnement chroot.

Pourquoi rbash ?

Si bash est démarré avec le nom rbash, ou si l'option -r est fournie à l'invocation, le shell devient restreint. Un shell restreint est utilisé pour mettre en place un environnement plus contrôlé que le shell standard. Il se comporte de la même manière que bash, à l'exception que les éléments suivants sont interdits ou non exécutés :

  • changer de répertoire avec cd
  • définir ou supprimer les valeurs de SHELL, PATH, ENV ou BASH_ENV
  • spécifier les noms de commande contenant /
  • spécifier un nom de fichier contenant un / comme argument de la commande intégrée
  • spécifier un nom de fichier contenant une barre oblique comme argument de l'option -p de la commande intégrée de hachage
  • importer des définitions de fonctions depuis l'environnement shell au démarrage
  • analyse de la valeur de SHELLOPTS à partir de l'environnement shell au démarrage
  • redirection de la sortie à l'aide des opérateurs de redirection>,>|, <>,>&, &> et>>
  • en utilisant la commande intégrée exec pour remplacer le shell par une autre commande
  • ajouter ou supprimer des commandes intégrées avec les options -f et -d à la commande intégrée enable
  • en utilisant la commande intégrée enable pour activer les commandes internes désactivées du shell
  • en spécifiant l'option -p à la commande intégrée command.
  • désactiver le mode restreint avec set +r ou set +o restreint.

Comment définir un shell restreint

Définissez l'environnement que vous souhaitez pour un utilisateur particulier et placez-le dans le fichier de démarrage :$HOME/.bash_profile, comme indiqué ci-dessous :

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then 
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
bash -r

Connectez-vous maintenant avec l'utilisateur et essayez de changer les répertoires.

$ cd /etc/
bash: cd: restricted

$ cd /tmp/
bash: cd: restricted

Pour définir un shell restreint pour tous les utilisateurs, créez un lien symbolique de /bin/bash vers /bin/rbash :

# cd /bin
# ln -s bash rbash


Linux
  1. Comment définir votre variable $PATH sous Linux

  2. Comment définir/créer des variables d'environnement et de shell sous Linux

  3. Comment changer de shell sous Linux

  4. Comment configurer le shell bash restreint sous Linux

  5. Service du système d'exploitation Linux "lm_sensors"

Comment définir ou modifier le nom d'hôte sous Linux

Comment changer un shell d'utilisateurs sous Linux

Commande source sur Linux expliquée

Qu'est-ce que le sous-shell sous Linux ?

Qu'est-ce que le shell de connexion sous Linux ?

8 types de shells Linux