Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 04-04-2017 19:23:24

Sydos
Membre
Inscription : 04-04-2017

Restreindre utilisateur et commande

Bonjour à vous,

J'ai un petit soucis pour lequel je m'arrache les cheveux depuis quelques jours.

Alors voilà j'ai un serveur VPS sous debian 8.4 jessie et j'ai un ami pour lequel je veux crée un utilisateur, crée un dossier pour lui et lui permettre d'activer uniquement certaines commandes que je choisie. Par commande j'entends lancement de script shell par exemple. J'ai Openssh d'installé et l'accès à son SFTP n'est pas obligatoire mais sa serais bien qu'il ne l'ai pas. J'ai fais beaucoup de recherche sur google mais la majors partie des tutoriels ne marche pas, sont dans une version antérieur ou ne me corresponde pas.

Je peux remettre à zéro plusieurs fois le serveur si nécessaire.

Si vous avez d'autres solutions un minimum sécurisé pour qu'il puisse lancer des scripts sur mon serveur, donc avec un nom d'utilisateur et un mot de passe je suis preneurs.

Merci de vos réponses,
Cordialement Sydos.

Hors ligne

#2 04-04-2017 19:36:15

tux12
Membre
Lieu : ./
Distrib. : stable
Noyau : celui de la stable
(G)UI : KDE
Inscription : 27-02-2008

Re : Restreindre utilisateur et commande

Bonjour,

Il existe des shells restreints comme lshell qui permet de définir les commandes utilisables par un utilisateur.

Dernière modification par tux12 (04-04-2017 19:40:58)

Hors ligne

#3 04-04-2017 19:45:38

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

Ça m'a l'air compliqué, et je ne trouve pas de tuto d'installation sur le net, seulement en bref sur github ou se trouve le fichier hmm
Et j'ai pas l'impression que l'on puisse si connecter comme un shell normal

Merci de ta réponse smile

Hors ligne

#4 04-04-2017 19:52:05

kyodev
Banni(e)
Lieu : Lyon
Distrib. : Debian
Noyau : probablement stretch
(G)UI : variable selon l'humeur de naguam
Inscription : 18-08-2013

Re : Restreindre utilisateur et commande

est-ce que sudo répondrait pas à ta demande? https://debian-facile.org/doc:systeme:sudo

[mode aéré]

Hors ligne

#5 04-04-2017 19:55:12

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

Pour moi sudo c'est une commande permettant de lancé un script en root, comment je pourrais m'en servir pour en faire un shell utilisateur restreint ? smile

Merci de ta réponse wink

Hors ligne

#6 04-04-2017 20:01:19

kyodev
Banni(e)
Lieu : Lyon
Distrib. : Debian
Noyau : probablement stretch
(G)UI : variable selon l'humeur de naguam
Inscription : 18-08-2013

Re : Restreindre utilisateur et commande

regarde le tuto
pour moi aussi, jamais utilisé.
mais  tu peux définir aux petits oignons  les droits pour le groupe sudoers. ce n'est pas  la méthode ubuntu, et j'ai appris dernièrement que c'était utilisé en administration serveur pour restreindre les actions des power-users.

[mode aéré]

Hors ligne

#7 04-04-2017 20:05:52

kawer
Adhérent(e)
Lieu : Quelque part vers Gallifrey
Distrib. : Debian 9 / ArchLinux / FreeBSD
Noyau : Current
(G)UI : gnome et xfce4
Inscription : 08-10-2013

Re : Restreindre utilisateur et commande

Cherche sur google "jail ssh" tu devrais trouver ton bonheur car sa correspond exactement à ta recherche, j'avais ouvert un fil la dessus sur df, tu peu y rechercher aussi pour te mettre sur le bonne piste mais dans tout les cas il te faudra un peu d'huile de coude.

Rendez à César ce qui est à César et à Dieu ce qui est à Dieu -Cit. J.C.
La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. -Cit. Robert Half.
Dans toutes les situations, le piège c'était avant, car tu ne voyais pas les murs -Cit. Crevette

Hors ligne

#8 04-04-2017 21:07:32

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

kawer, quelque chose comme ça ? https://debian-facile.org/viewtopic.php?id=9607

kyodev, je pense que modifier le sudo c'est super compliqué nan ? smile

Hors ligne

#9 04-04-2017 23:10:01

kyodev
Banni(e)
Lieu : Lyon
Distrib. : Debian
Noyau : probablement stretch
(G)UI : variable selon l'humeur de naguam
Inscription : 18-08-2013

Re : Restreindre utilisateur et commande

heu non, regarde le tuto.
le jail (prison) c'est bien, mais pour cantonner un user dans un espace, pour les commandes?
kawer confirmera/infirmera

[mode aéré]

Hors ligne

#10 05-04-2017 06:54:24

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

Je me dis que pour le jail c'est pas trop grave dans la mesure ou je peux enlevé le SFTP et enlevé les commande comme CD ou LS.

J'ai juste besoin que l'utilisateur puisse lancé des script dans son dossier home du type ./monscript.sh

Merci smile

Hors ligne

#11 05-04-2017 15:14:55

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

tux12 m'ayant conseillé Lshell, je l'ai installé.

Il est super simple et fais exactement ce que je veux, sauf que j'aimerais démarré des scripts avec hors je ne peux pas.
J’obtiens plusieurs erreurs, quelqu'un qui si connait en ce script peut me conseiller ?

Merci beaucoup smile

Hors ligne

#12 05-04-2017 15:48:18

tux12
Membre
Lieu : ./
Distrib. : stable
Noyau : celui de la stable
(G)UI : KDE
Inscription : 27-02-2008

Re : Restreindre utilisateur et commande

Avec le détail des erreurs ça serait sans doute plus simple de répondre qu'en divination pure. wink
Néanmoins une source d'erreur commune est qu'un script lancé sous cet utilisateur restreint doit pouvoir exécuter chacune des commandes contenues dans le script sous l'identité de cet utilisateur. Si ce n'est pas le cas on aura une erreur.
De plus l'indication des chemins complets des commandes/scripts est aussi un bon moyen d'éviter les erreurs liées à l'absence du chemin d'accès dans le $PATH.

Souhaitant que ça aide,

Hors ligne

#13 05-04-2017 16:08:12

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

Enfaite, j'ai un script que j'aimerais exécuter avec ./monscript.sh

Mais pour l’exécuter il faut que j'accorde la commande "sh", mais en activant cette commande, si l'user fais un "sh" tout court, sa le sort du shell restreint... et en autorisant la commande "./monscript", un fois sur l'utilisateur si je rentre cette commande, sa me met : "sh: 1 monscript.sh not found" alors qu'il est bien dans le dossier avec les permission qu'il faut dessus.

Hors ligne

#14 05-04-2017 16:09:49

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 3.16.0-4-amd64 - 3.16.39-1
(G)UI : gnome 1:3.14+3
Inscription : 21-10-2008

Re : Restreindre utilisateur et commande

Peux-tu nous indiquer la teneur de ton script ?

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#15 05-04-2017 16:19:03

tux12
Membre
Lieu : ./
Distrib. : stable
Noyau : celui de la stable
(G)UI : KDE
Inscription : 27-02-2008

Re : Restreindre utilisateur et commande

Sydos a écrit :

pour l’exécuter il faut que j'accorde la commande "sh", mais en activant cette commande, si l'user fais un "sh" tout court, sa le sort du shell restreint...


effectivement j'étais en train de me faire la réflexion. hmm J'avoue n'avoir jamais utilisé lshell pour lancer un script. Sans aucune garantie de résultat, as-tu tenté de remplacer "sh" par "lshell" (en lui fournissant accès à toutes les autres commandes utilisées par le script) ?

Hors ligne

#16 05-04-2017 16:19:15

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

Qu'es ce que tu appels par teneur ? hmm

Je vous envoie le contenu de mon fichier config :

# lshell.py configuration file
#
# $Id: lshell.conf,v 1.27 2010-10-18 19:05:17 ghantoos Exp $

[global]
##  log directory (default /var/log/lshell/ )
logpath         : /var/log/lshell/
##  set log level to 0, 1, 2, 3 or 4  (0: no logs, 1: least verbose,
##                                                 4: log all commands)
loglevel        : 2
##  configure log file name (default is %u i.e. username.log)
#logfilename     : %y%m%d-%u
#logfilename     : syslog

##  in case you are using syslog, you can choose your logname
#syslogname      : myapp

[default]
##  a list of the allowed commands or 'all' to allow all commands in user's PATH
allowed         : ['./']

##  a list of forbidden character or commands -- deny vim, as it allows to escape lshell
forbidden       : [';', '&', '|','`','>','<', '$(', '${']

##  a list of allowed command to use with sudo(8)
#sudo_commands   : ['ls', 'more']

##  number of warnings when user enters a forbidden value before getting
##  exited from lshell, set to -1 to disable.
warning_counter : -1

##  command aliases list (similar to bash’s alias directive)
aliases         : {'ll':'ls -l', 'vim':'rvim'}

##  introduction text to print (when entering lshell)
intro           : "Bienvenue sur une console restreinte\nTapez '?' ou 'help' pour avoir la liste des commandes"

##  configure your promt using %u or %h (default: username)
#prompt          : "%u@%h"

##  set sort prompt current directory update (default: 0)
#prompt_short    : 0

##  a value in seconds for the session timer
#timer           : 5

##  list of path to restrict the user "geographicaly"
#path            : ['/home/bla/','/etc']

##  set the home folder of your user. If not specified the home_path is set to
##  the $HOME environment variable
home_path       : '/home/%u/'

##  update the environment variable $PATH of the user
#env_path        : ':/usr/local/bin:/usr/sbin'

##  a list of path; all executable files inside these path will be allowed
#allowed_cmd_path: ['/home/bla/']

##  add environment variables
#env_vars        : {'foo':1, 'bar':'helloworld'}

##  allow or forbid the use of scp (set to 1 or 0)
#scp             : 1

## forbid scp upload
#scp_upload       : 0

## forbid scp download
#scp_download     : 0

##  allow of forbid the use of sftp (set to 1 or 0)
#sftp            : 1

##  list of command allowed to execute over ssh (e.g. rsync, rdiff-backup, etc.)
#overssh         : ['ls', 'rsync']

##  logging strictness. If set to 1, any unknown command is considered as
##  forbidden, and user's warning counter is decreased. If set to 0, command is
##  considered as unknown, and user is only warned (i.e. *** unknown synthax)
strict          : 0

##  force files sent through scp to a specific directory
#scpforce        : '/home/bla/uploads/'

##  history file maximum size
#history_size     : 100

##  set history file name (default is /home/%u/.lhistory)
#history_file     : "/home/%u/.lshell_history"

##  define the script to run at user login
#login_script     : "/path/to/myscript.sh"
 

Dernière modification par Sydos (05-04-2017 16:23:55)

Hors ligne

#17 06-04-2017 19:04:54

Sydos
Membre
Inscription : 04-04-2017

Re : Restreindre utilisateur et commande

Du coup je pense gardé lshell, je vais autorisé la commande sh, malgré quelle permette de sortir du shell restreint, j'ai une question :

Savez vous comment je pourrais autorisé l'utilisation de sh uniquement pour lancé un script et non pour accédé au shell sh.

Merci smile

Hors ligne

Pied de page des forums