Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

executer une action par un autre user depuis un script

5 réponses
Avatar
Franssoa
Bonjour,

J'ai un petit script qui, depuis un serveur linux, dois contrôler la
place dispo sur un disque windows du reseau et eventuellement faire
automatiquement le ménage.

Le script est lancé par le serveur intranet (cherrypy) et doit tout
d'abord mounter le disque samba. Mais mount ne peut être lancer qu'en
root, or le serveur web n'a pas les droits.
J'ai vu que je pourrais modifier "/etc/sudoers", mais j'aimerais assez,
si c'est possible, ne pas donner d'autorisation permanente.
Je ne sais pas trouvé si une instruction du genre de celle ci existe ?
exec_autre_user user:password cmd

Merci d'avance de vos avis
Franssoa

5 réponses

Avatar
Cumbalero

J'ai vu que je pourrais modifier "/etc/sudoers", mais j'aimerais assez,
si c'est possible, ne pas donner d'autorisation permanente.
Je ne sais pas trouvé si une instruction du genre de celle ci existe ?
exec_autre_user user:password cmd


Je t'invite à regarder plus en détail la doc de sudo. C'est exactemen t
ce qu'il te faut pour ton "exec_autre_user", mais en mieux car tu
n'auras pas à écrire de mot de passe dans ton script, ou modifier ce
script quand tu changes le mot de passe.

La syntaxe du fichier sudoers permet de ne donner d'autorisation que sur
un fichier particuler, pas forcément une commande système. Ainsi, si les
commandes de montage, purge et démontage sont dans un seul script
(appelons le purge.sh) tu peux ne donner les droits de délégation
d'identité que sur ce script purge.sh , ce qui est plus rassurant que d e
le faire sur mount ou sur le répertoire /sbin par exemple

A+
JF

Avatar
Emmanuel Florac
Le Tue, 29 May 2007 09:44:28 +0200, Franssoa a écrit :

mais j'aimerais assez, si c'est possible, ne pas
donner d'autorisation permanente. Je ne sais pas trouvé si une
instruction du genre de celle ci existe ? exec_autre_user user:password


Justement, la méthode relativement sûre est fiable c'est sudo, parce que
mettre un mot de passe dans un script, ça craint. Avec sudo, tu peux
définir quelle commande est exécutable et comment :

Par exemple, pour autoriser l'utilisateur tartempion à exécuter la
commande /bin/machin sur la machine "machine" en tant que guignol, sans
demander de mot de passe :

tartempion machine = NOPASSWD: (guignol) /bin/machin

Toutes les autres méthodes sont d'affreux bricolages qu'il faut proscrire.

--
Les défauts n'apparaissent qu'après que le programme a passé (avec
succès) la phase d'intégration.
Loi de Klipstein.

Avatar
Mihamina Rakotomandimby (R12y)
Franssoa wrote:

Mais mount ne peut être lancer qu'en
root


Non non.
Je peux, par exemple mounter un Data-CD en tant que simple user.
Malheureusement, je ne saurais pas (exactement) te dire quelles options il
faut fournir et ou les fournir.
Une piste serait de voir l'option "user" dans /etc/fstab.

D'ailleurs 'man fstab' me dit:

The fourth field, (fs_mntops), describes the mount
options associated with the filesystem.

It is formatted as a comma separated list of options.
It contains at least the type of mount plus any addi?
tional options appropriate to the filesystem type. For
documentation on the available options for non-nfs file
systems, see mount(8). For documentation on all nfs-
specific options have a look at nfs(5). Common for all
types of file system are the options ??noauto?? (do not
mount when "mount -a" is given, e.g., at boot time),
??user?? (allow a user to mount), and ??owner?? (allow
device owner to mount), and ??comment?? (e.g., for use
by fstab-maintaining programs). The ??owner?? and
??comment?? options are Linux-specific. For more
details, see mount(8).

Et par la suite, "umask" etc...

Avatar
Franssoa

Je t'invite à regarder plus en détail la doc de sudo
(...)

La syntaxe du fichier sudoers permet de ne donner d'autorisation que sur
un fichier particuler, pas forcément une commande système. Ainsi, si les
commandes de montage, purge et démontage sont dans un seul script
(appelons le purge.sh) tu peux ne donner les droits de délégation
d'identité que sur ce script purge.sh


Ah, ah, parfait. Je cours donc regarder le man de sudo.
Merci

Franssoa

Avatar
Michel Tatoute
Franssoa wrote:

Bonjour,

J'ai un petit script qui, depuis un serveur linux, dois contrôler la
place dispo sur un disque windows du reseau et eventuellement faire
automatiquement le ménage.

Le script est lancé par le serveur intranet (cherrypy) et doit tout
d'abord mounter le disque samba. Mais mount ne peut être lancer qu'en
root, or le serveur web n'a pas les droits.


généralement on peut faire en sorte, en utilisant fstab, que un user puisses
monter un disque particulier... pas besoin de sudo.

J'ai vu que je pourrais modifier "/etc/sudoers", mais j'aimerais assez,
si c'est possible, ne pas donner d'autorisation permanente.
Je ne sais pas trouvé si une instruction du genre de celle ci existe ?
exec_autre_user user:password cmd

Merci d'avance de vos avis
de rien

Franssoa
Michel