GNU/Linux >> Tutoriels Linux >  >> Linux

Limiter l'utilisateur à exécuter des commandes sélectives (Linux)

Vous allez peut-être dans le mauvais sens. Au lieu de donner à un utilisateur un shell bash "restreint", vous ne devez lui donner accès qu'aux commandes dont il aurait besoin pour s'exécuter en tant que root. Par exemple, dans votre fichier sudoers :

tomc ALL=(root) /usr/bin/vim /etc/myapp.conf
tomc ALL=(root) /usr/bin/less /var/log/myapp/*.log

Soyez prudent lorsque vous autorisez les utilisateurs à exécuter vim en tant que root. Vim a de nombreuses fonctionnalités intégrées, comme les échappements vers le shell et la possibilité d'exécuter des commandes depuis vim. Selon votre distribution, vous pourriez avoir sudoedit disponible. Cela fonctionne de la même manière qu'un Vim normal, sauf qu'il est conçu pour gérer les échappements du shell et autres.


Sur mon Synology Diskstation exécutant DSM 6, seuls les utilisateurs administrateurs peuvent ssh de manière cohérente (les utilisateurs non administrateurs ont un shell comme /sbin/nologin dans /etc/passwd - vous pouvez le définir sur /bin/sh pour autoriser temporairement ssh, mais au redémarrage le fichier /etc/passwd est réinitialisé). Pour cette raison, une sorte de restriction sudo est nécessaire pour un compte qui n'existe autrement que pour exécuter, par ex. /sbin/poweroff. Les lignes suivantes dans /etc/sudoers ont fonctionné pour moi :

# Allow guestx user to remote poweroff
guestx ALL=(ALL) !ALL
guestx ALL=NOPASSWD: /sbin/poweroff

Traduction :interdire toutes les commandes, puis autoriser uniquement la commande souhaitée (sans demander de mot de passe dans ce cas).

Avec cette configuration, sudo demande le mot de passe puis échoue pour les commandes autres que celle en liste blanche :

[email protected]:~$ sudo su -
Password: 
Sorry, user guestx is not allowed to execute '/bin/su -' as root on ds.
[email protected]:~$ 

Linux
  1. 20 commandes Linux essentielles pour chaque utilisateur

  2. 10 commandes que tout utilisateur de Linux devrait connaître

  3. Comprendre les différentes classifications des commandes Shell et leur utilisation sous Linux

  4. Comment supprimer les privilèges root dans les scripts Shell ?

  5. 5 façons d'exécuter des commandes UNIX / Linux (et des scripts shell) en arrière-plan

Comment limiter l'accès de l'utilisateur au système Linux

Exécuter des commandes sur des systèmes Linux distants via SSH

Comment lister tous les utilisateurs sous Linux

5 commandes Linux que chaque utilisateur Linux devrait connaître

Linux - Ajouter un utilisateur à la liste des Sudoers

Comment limiter l'utilisateur root dans CentOS