Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 ! roll


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 smile
Super, je ne connaissais pas SUDO_USER cool


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.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne