#26 Le 27/03/2021, à 21:51
- Tawal
Re : Lancer mon script avec un seule sudo
Ben je crois que j'ai trouvé une bizarrerie :
tawal@Deb1:~/Term/DossVid$ ls -l
total 4
-rwxr-xr-x 1 tawal tawal 101 mars 27 21:39 test.sh
tawal@Deb1:~/Term/DossVid$ cat test.sh
#!/bin/bash
whoami > log
(whoami >> log)
(echo "echo subshell" >> log)
echo "echo tee" | tee -a log
tawal@Deb1:~/Term/DossVid$ ./test.sh
echo tee
tawal@Deb1:~/Term/DossVid$ ll
total 8
-rw-r--r-- 1 tawal tawal 35 mars 27 21:43 log
-rwxr-xr-x 1 tawal tawal 101 mars 27 21:39 test.sh*
tawal@Deb1:~/Term/DossVid$ sudo ./test.sh
echo tee
tawal@Deb1:~/Term/DossVid$ ll
total 8
-rw-r--r-- 1 tawal tawal 33 mars 27 21:43 log
-rwxr-xr-x 1 tawal tawal 101 mars 27 21:39 test.sh*
tawal@Deb1:~/Term/DossVid$ su -
Mot de passe :
root@Deb1:~# cd /home/tawal/Term/DossVid
root@Deb1:/home/tawal/Term/DossVid# ll
total 8
-rw-r--r-- 1 tawal tawal 33 mars 27 21:43 log
-rwxr-xr-x 1 tawal tawal 101 mars 27 21:39 test.sh*
root@Deb1:/home/tawal/Term/DossVid# ./test.sh
echo tee
root@Deb1:/home/tawal/Term/DossVid# ll
total 8
-rw-r--r-- 1 tawal tawal 33 mars 27 21:44 log
-rwxr-xr-x 1 tawal tawal 101 mars 27 21:39 test.sh*
root@Deb1:/home/tawal/Term/DossVid# cat log
root
root
echo subshell
echo tee
root@Deb1:/home/tawal/Term/DossVid#
Bizarre, le fichier m'appartient toujours !
(ll est un alias de ls -l)
Edit:
La bizarrerie vient du fait que si le fichier (log) est existant (et m'appartient) un appel de script avec sudo et écriture dans ce fichier, ne change pas l'appartenance du fichier !
Si le fichier log n'existe pas, l'appel avec sudo donne l'appartenance à root.
Dernière modification par Tawal (Le 27/03/2021, à 21:58)
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#27 Le 27/03/2021, à 22:10
- Watael
Re : Lancer mon script avec un seule sudo
pourquoi le propriétaire changerait-il ?
n'importe qui ayant le droit d'y écrire ne doit pas se l'approprier.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#28 Le 27/03/2021, à 22:59
- Tawal
Re : Lancer mon script avec un seule sudo
Évident !
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#29 Le 28/03/2021, à 05:59
- MicP
Re : Lancer mon script avec un seule sudo
Bonjour
Si tu as besoin de réattribuer la propriété d'un fichier ou/et répertoire
au compte utilisateur qui a lancé la commande sudo
ou de lancer une commande en utilisant son compte
tu pourras utiliser la variable SUDO_USER
michel@xubu:~$ cat scrtest
#!/bin/bash
echo "USER -> $USER"
echo "SUDO_USER -> $SUDO_USER"
michel@xubu:~$
michel@xubu:~$ sudo ./scrtest
USER -> root
SUDO_USER -> michel
michel@xubu:~$
Dernière modification par MicP (Le 28/03/2021, à 06:06)
Hors ligne
#30 Le 28/03/2021, à 20:00
- Tawal
Re : Lancer mon script avec un seule sudo
Merci
Super, je ne connaissais pas SUDO_USER
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#31 Le 13/04/2021, à 00:54
- cristobal78
Re : Lancer mon script avec un seule sudo
Bonsoir à tous
aux post #3 et #7 on propose
if [ "$USER" != "root" ]
if [ "x$(id -u)" != "x0" ]
Est ce différent de
if [ $(whoami) != "root" ]
Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE
Hors ligne
#32 Le 13/04/2021, à 06:57
- jplemoine
Re : Lancer mon script avec un seule sudo
Je pense que c'est pareil que la première proposition (la mienne). La seule différence est que j'utilise une variable est non un appel d'une instruction.
La deuxième syntaxe ne renvoie pas le libellé mais le code (0 [root] ou 1000 [1er utilisateur créé]).
Par "convention", on évite de tester les libellés (qui peuvent changer) quand on peut tester un code.
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne