Archives pour l'étiquette limitation

Limiter les droits d’un utilisateur sur Debian/Ubuntu (lshell)

Plop à tous ….

Lorsque l’on doit partager/administrer une machine, on a souvent peur que les individus fassent de belles boulettes sur la machine en question (surtout si l’accès est partagé entre plusieurs utilisateurs).

Une technique consisterait à faire un chroot via SSH (si ça vous tente ^^ mais c’est super long).

Ou passer par un truc du genre dans /etc/ssh/sshd_config :

Subsystem sftp internal-sftp
Match user nomUser
         ChrootDirectory /home/nomUser
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp

Qui bloque la plupart des commandes et n’autorise que le sftp …

Pour les admins flemmards, il existe une solution : lshell, on peut choper un .deb sur le site et une fois installé, il n’y a pas grand chose à faire :

Modifier le fichier /etc/lshell.conf (assez facile à comprendre), avec des paramètres du genre :
Pour les commandes autorisées :

allowed         : ['ls','echo','cd','ll','svn','vi','rm']

Pour kiker l’utilisateur après un certain nombre d’erreurs :

warning_counter : 2

dans ce cas, après 2 erreurs, la connection SSH est coupée.

On peut chrooter un utilisateur :

path            : ['/var/www/']

Pour obliger un utilisateur à utiliser ce shell, il y a 2 cas :
On modifie un utilisateur :

usermod --shell /usr/bin/lshell nomUser

On créer un utilisateur

adduser nomUser --shell /usr/bin/lshell nomUser

Et voilà … connectez vous avec un utilisateur « lshellé » (pour ma part chrooté et limité aux commandes « allowed » plus haut) :

You are in a limited shell.
Type '?' or 'help' to get the list of allowed commands
kikoo:~$ 
kikoo:~$ ls
index.php  license.txt  robots.txt  svnup.php  system
kikoo:~$ cat /etc/ssh/sshd_config
*** forbidden path -> "/etc/ssh/sshd_config"
*** You have 0 joker(s) left, before getting kicked out.
This incident has been reported.
kikoo:~$ svn up
À la révision 12.
kikoo:~$ echo "LOL"
LOL
kikoo:~$ echo "LOL" > /etc/ssh/sshd_config
*** forbidden synthax -> "echo "LOL" > /etc/ssh/sshd_config"
- Kicked out -
Connection to 1.3.3.7 closed.

Voilà … bonne administration 😉