Alias avec 'sudo' : comment faire ?

J’ai créé un alias pour monter une partoche sur mon dossier /mnt/autre
alias hda8='mount -t ext3 /dev/hda8 /mnt/autre’
avec
su -
pass root
hda8
pas de problème, ça fonctionne et ma partoche est monté au bon endroit.
Avec ‘sudo’, il ne veut rien savoir.
Possible ou pas possible ?

bonjour ricardo, POSSIBLE biensur …
hé bien qu’as tu mis dans ton /etc/sudoers ?

Monter un disk vfat via sudo en utilisant un alias. 2 alias même, un pour mount, un pour umount :

[quote]alias mdisk='sudo mount -t vfat /dev/hdb1 /mnt/disk1’
alias udisk=‘sudo umount /mnt/disk1’[/quote]

Vérifier la présence d’un repertoire /mnt/disk1 (par exemple).
Vérifier la présence de ces blocs :

[quote=“nano /root/.bashrc”]# Demande à consulter le fichier bash_aliases
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
[/quote]

[quote=“nano //.bashrc”]# Demande à consulter le fichier bash_aliases
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
[/quote]

Modifier/editer les fichiers bash_aliases en ajoutant les deux lignes d’alias , ce qui nous donnera : debian:/home/jcode# cat /root/.bash_aliases | grep "disk" alias mdisk='mount -t vfat /dev/hdb1 /mnt/disk1' alias udisk='umount /mnt/disk1' debian:/home/jcode# cat /home/jcode/.bash_aliases | grep "disk" alias mdisk='sudo mount -t vfat /dev/hdb1 /mnt/disk1' alias udisk='sudo umount /mnt/disk1'

Modifier/editer /etc/sudoers en rajoutant ces lignes :

debian:/home/jcode# cat /etc/sudoers | grep -i disk Cmnd_Alias UDISK=/bin/umount /mnt/disk1 Cmnd_Alias MDISK=/bin/mount -t vfat /dev/hdb1 /mnt/disk1 ADMIN LOCALNET=NOPASSWD:UDISK,NOPASSWD:MDISK, [ ... etc ... ]
Oui, ça dépend comment est défini l’user, chez moi j’ai fait :

[quote]# Host alias specification
Host_Alias LOCALNET=localhost.localdomain

User alias specification

User_Alias ADMIN=jcode

[/quote]
(Relancer sudo par un sudo -v je crois, et bash par un /bin/bash)

Testons :

[code]jcode@debian:~$ mount /mnt/disk1
mount: can’t find /mnt/disk1 in /etc/fstab or /etc/mtab
jcode@debian:~$ cat /etc/fstab |grep disk1
#/dev/hdb1 /mnt/disk1 vfat defaults 0 0

jcode@debian:~$ mount -t vfat /dev/hdb1 /mnt/disk1
mount: only root can do that
jcode@debian:~$ sudo mount -t vfat /dev/hdb1 /mnt/disk1
jcode@debian:~$ ls /mnt/disk1 | wc
24 25 248
[/code]
Ben je vérifie quand même que toute la commande définie dans /etc/sudoers est bien prise en compte, histoire que l’user ne puisse pas monter tout n’importe où :

jcode@debian:~$ sudo umount /mnt/disk1 jcode@debian:~$ sudo mount -t vfat /dev/hdb1 /mnt/disk2 Password: jcode@debian:~$ mkdir /mnt/disk2 mkdir: ne peut créer le répertoire `/mnt/disk2': Permission non accordée jcode@debian:~$ su Password: debian:/home/jcode# mkdir /mnt/disk2 debian:/home/jcode# su jcode jcode@debian:~$ sudo mount -t vfat /dev/hdb1 /mnt/disk2 Password: C’est ok, sudo ne reconnait pas la commande (il demande un passwd qui n’existe pas).
Utilisation des alias maintenant :

jcode@debian:~$ mdisk jcode@debian:~$ ls /mnt/disk1 | wc 24 25 248 jcode@debian:~$ udisk jcode@debian:~$ ls /mnt/disk1 | wc 0 0 0

pour vous servir, sir ricardo :wink:

C’est simple, quoi :cry:
Je réponds en partie pour comprendre.
Où il faut écrire ce qui suit , ds
root/.bashrc
et ds
/home/user/.bashrc
ou ds
sudoers
:question:

Citation: alias mdisk='sudo mount -t vfat /dev/hdb1 /mnt/disk1' alias udisk='sudo umount /mnt/disk1'
C’est ce que j’avais fait mais ds sudoers, je ne savais pas quoi écrire.

Suite du msg précédent (à lire avant)

alias hda8='mount -t ext3 /dev/hda8 /mnt/autre' alias hda1='mount -t ext3 /dev/hda1 /mnt/autre' alias hdc3='mount -t ext3 /dev/hdc3 /mnt/autre' alias hdc7='mount -t ext3 /dev/hdc7 /mnt/autre' alias hdc6='mount -t ext3 /dev/hdc6 /mnt/autre' alias demonte='umount /mnt/autre'
Voilà ce que j’ai placé ds
/root/.bashrc
et ds
/home/ricardo3/.bashrc
en tant que root, pas de problème, je tape

hda1

et il est monté ds /mnt/autre
ce que je veux, c’est taper
$ sudo hda1
pass user
et avoir le m^ rslt.

PS :
J’ai essayé en ajoutant sudo au début
alias hda1=’ sudo mount -t ext3 /dev/hda1 /mnt/autre’
ou à la fin :
alias hda1='mount -t ext3 /dev/hda1 /mnt/autre ; sudo’
Mais sans succès

Résolu :laughing:
en fait c’était simple mais c’est à la commande que je me plantais.
j’ai seulement placé ‘sudo’ en tête de l’alias qui est ds /home/ricardo/.bashrc
alias hda8='sudo mount -t ext3 /dev/hda8 /mnt/autre’
Ça ne fonctionnait pas car à la commande, je rajoutais ‘sudo’ :
$ sudo hda8
et bien sûr, il ne faut taper que
$ hda8
Voilà, tt simple et mes partoches sont quand m^ montées en tant que ‘root’, ce que je voulais garder.

[quote]alias mdisk='sudo mount -t vfat /dev/hdb1 /mnt/disk1’
alias udisk=‘sudo umount /mnt/disk1’[/quote]
J’ai placé les alias dans .bash_aliases, pour les distinguer des alias de bases de .bashrc … le bloc if que je citais montre que si un fichier .bash_aliases existe, bash va chercher aussi dedans pour reconnaitre une commande … up to you.