Forum Linux.général Restreindre les commandes utilisateur

Posté par  .
Étiquettes : aucune
0
19
août
2010
Bonjour,

je travaille en ce moment sur une distribution slitaz et je voudrai qu'un utilisateur du systeme ne puisse utiliser que des scripts que j'ai ecris pour lui. Il ne faut pas qu'il puisse utiliser ls, cd, etc.
Mais par contre il faut que les scripts qu'il utilise puissent utiliser tous ces binaires.

J'ai essayé un restrict shell mais ça va pas puisque les scripts qu'il lance n'ont pas non plus les droits.
Alternativement j'ai essayé avec chroot, mais ça obige a dupliquer un système dans le système.

L'idée c'est vraiment de restreindre l'utilisateur aux commandes dont ils aura besoin (en l'occurence, uniquement des scripts shell ecris pour lui).

Est-ce qu'il y a un moyen simple de faire ça ?

merci d'avance.
  • # lshell

    Posté par  (site web personnel) . Évalué à 5.

    http://lshell.ghantoos.org/
    http://sourceforge.net/projects/lshell/

    Y avais un article dans le GLMF hors-série nº46 (février-mars 2010).
    • [^] # Re: lshell

      Posté par  . Évalué à 3.

      vu que c'est fait pour restreindre l'utilisation, cela devrait s'appeler iShell, et non pas Lshell ;)

      Ça semble intéressant en tout cas, merci pour le lien.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Un script en tant que shell

    Posté par  . Évalué à 5.

    Il est possible d'utiliser un script shell en tant que shell utilisateur.
    En gros tu écris un script qui affiche un menu et attend une entrée utilisateur (ex : 1, 2 ou 3) place cette valeur dans une variable et suivant la valeur de cette variable lance le binaire ou le script que tu désires.

    Si le script de départ se termine, celui défini en tant que shell utilisateur, alors l'utilisateur est viré de sa session (normal), il ne peu jamais revenir à un vrai shell.

    Simple et efficace si tu as peu de commande à donner à tes utilisateurs.

    J'en ai parlé ici : https://linuxfr.org/comments/1093921,1.html
    Le fil d'origine peut également t'aider : https://linuxfr.org/forums/30/28195.html
    • [^] # Re: Un script en tant que shell

      Posté par  . Évalué à 1.

      Bien vu !

      C'est génial. Par contre ça marche pas tel quel en ssh. Je pensais que se connecter en ssh c'était pareil qu'en local mais visiblement non.
      J'ai vu la solution d'ecrire command= ... dans le .ssh de l'autre fil, mais le problème c'est que je connais pas la clé ssh de l'utilisateur qui va se connecter.

      Y a t-il un moyen pour que le script se lance de la meme manière en ssh ?
      • [^] # Re: Un script en tant que shell

        Posté par  . Évalué à 2.

        Je le fais en ssh et je n'ai jamais eu ce problème.
        La seule chose que je fais c'est de définir dans /etc/passwd mon shell perso. Exemple :
        toto:x:1060:1007::/home/toto:/bin/shell_perso.bash
      • [^] # Re: Un script en tant que shell

        Posté par  (site web personnel) . Évalué à 0.

        Y a t-il un moyen pour que le script se lance de la meme manière en ssh ?

        Si tu utilises SSH et que tu souhaites restreindre l'utilisateur à certaines commandes, je t'engage à mettre en place une authentification par clé publique et clé privée.

        L'avantage est qu'avec une clé, il est possible de définir une commande forcée qui sera lancée lors de la connexion (la commande est a ajouter au fichier ~/.ssh/authorized_keys).

        Documentation :

        - http://wiki.debian.org/fr/ssh (point 11 "Divers")

        - http://www.hackinglinuxexposed.com/articles/20021211.html (en anglais, réparti sur trois pages, suivre le lien "next article" tout en bas)
  • # Path en readonly ?

    Posté par  . Évalué à 0.

    Tu peut lui configurer en PATH très limité en la mettant en readonly (il faut aussi mettre les fichiers de configuration de bash en readonly). La syntaxe est simplement :
    readonly PATH

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # suid

    Posté par  . Évalué à 2.

    Tu peux mettre tes scripts en suid d'un autre utilisateur, qui lui peut lancer les commandes en question

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.