Script sauvegarde : modif ==> problème

Suite à conseils, j’ai déplacé l’emplacement de mon script de
/home/ricardo/bin/sauvegarde
vers
/usr/local/bin/sauvegarde
MAIS il ne reconnait plus la corbeille de ricardo et cherche celle de root
voici l’annonce :

et voici la ligne de code concernée :

cette dernière fonctionnait sans problèmes lorsque le script était dans /home/ricardo/bin/
Bien sûr, je peux modifier de façon à ne donner que le chemin réel mais comme on avait pas mal discuté sur ce truc, je pense qu’il y a plus propre.
https://www.debian-fr.org/pour-en-finir-avec-le-bloc-corbeille-t34870-50.html#p353644

Le problème ne vient pas du déplacement en lui-même, mais du fait que tu as changé la manière d’appeler le script / obtenir les droits root.

Avant : appel en tant qu’utilisateur (donc les variables $HOME etc fonctionnaient bien), et sudo pour les quelques points qui avaient besoin de droits root.
Maintenant : sudo l’ensemble du script (donc les variables $HOME etc sont celles de root)

Là il ne va pas y avoir 36.000 solutions pour le faire remarcher : il faut que le script soit appelé par l’utilisateur et non pas via sudo (ou sinon comme tu dis, utiliser des chemins absolus, mais ça enlève de la souplesse au script).

Bref, récupère ton script original (tu en as fait une copie avant de le modifier bien sûr ?), copie le dans /usr/local/bin tel quel, chown root:root / chmod 755 et c’est suffisant. :wink:
Tu pourras toujours l’appeler en tant qu’utilisateur (sans sudo devant ! pense à enlever l’alias .bashrc si tu en as fait un comme pour maj), la seule différence c’est que seul root pourra le modifier ce qui élimine la faille de sécurité dont on avait parlé.

[quote=“syam”]Le problème ne vient pas du déplacement en lui-même, mais du fait que tu as changé la manière d’appeler le script / obtenir les droits root.

Avant : appel en tant qu’utilisateur (donc les variables $HOME etc fonctionnaient bien), et sudo pour les quelques points qui avaient besoin de droits root.
Maintenant : sudo l’ensemble du script (donc les variables $HOME etc sont celles de root)

Là il ne va pas y avoir 36.000 solutions pour le faire remarcher : il faut que le script soit appelé par l’utilisateur et non pas via sudo (ou sinon comme tu dis, utiliser des chemins absolus, mais ça enlève de la souplesse au script).

Bref, récupère ton script original (tu en as fait une copie avant de le modifier bien sûr ?), copie le dans /usr/local/bin tel quel, chown root:root / chmod 755 et c’est suffisant. :wink:
Tu pourras toujours l’appeler en tant qu’utilisateur (sans sudo devant ! pense à enlever l’alias .bashrc si tu en as fait un comme pour maj), la seule différence c’est que seul root pourra le modifier ce qui élimine la faille de sécurité dont on avait parlé.[/quote]

En fait, je n’avais rien modifié dans le script, seuls le chemin et les droits avaient été changés.
Je l’ai donc laissé à sa place, laissé en root:root et “chmodé” en 755
MAIS
le problème subsiste.
Je ne pense pas qu’il faille rebouter ?

EDIT :
Je pense que 755 ou 700, ça ne change rien car le propriétaire est toujours root donc, il me demande le pass sudo au départ, ce qui est logique, non ?
Avant, il ne demandait le pass que quand la commande débutait par sudo mais pas à l’ouverture, car le proprio était ricardo.

EDIT 2 :
:023
Ben si, en fait il fallait rebouter :unamused:
Maintenant, il ne pose plus cette alerte et il ne me demande le pass sudo qu’après la vérif de la corbeille, ce qui est normal.
Impec !

Mais j’ai un autre problème qui ne concerne pas le script proprement dit mais ‘rsync’ et plus particulièrement la prise en compte du fichier d’exclusion de ricardo.
J’ouvre un fil dans SD à ce sujet.

Nan faut pas rebooter. :wink:

[quote=“ricardo”]Je pense que 755 ou 700, ça ne change rien car le propriétaire est toujours root donc, il me demande le pass sudo au départ, ce qui est logique, non ?
Avant, il ne demandait le pass que quand la commande débutait par sudo mais pas à l’ouverture, car le proprio était ricardo.[/quote]

Le fait qu’il te demande le mot de passe root n’a rien à voir avec le propriétaire : ta machine contient déjà des centaines (voire milliers) de programmes appartenant à root, et que tu peux lancer en utilisateur, dont un bon paquet de scripts.
$ cat /usr/bin/iceweasel
[…] c’est bien un script […]
$ ls -lA /usr/bin/iceweasel
lrwxrwxrwx 1 root root 26 oct. 15 10:01 /usr/bin/iceweasel -> …/lib/iceweasel/iceweasel
(bon, c’est un lien, allons voir sur quoi il pointe)
$ ls -lA $(readlink -f /usr/bin/iceweasel)
-rwxr-xr-x 1 root root 4725 oct. 15 10:01 /usr/lib/iceweasel/iceweasel
(il est en root:root 755, et pourtant il ne te demande pas de mdp pour lancer Iceweasel :wink:)

Le 755 est au contraire important : en 700, seul root peut lire/exécuter le script donc il te faut obligatoirement l’appeler via sudo. En 755, n’importe qui peut exécuter le script donc pas besoin de mettre un sudo devant lors de l’appel.
Le truc c’est que c’est impossible qu’un simple déplacement / changement de propriétaire se mette à provoquer un comportement de type sudo, il y a donc forcément un truc extérieur au script qui provoque ça (et ça n’a rien à voir avec les droits ou le propriétaire).
Es-tu sûr que tu n’as fait que déplacer le script ? Tu n’as pas rajouté un alias dans le .bashrc ou quelque chose comme ça (je demande ça parce que pour maj tu l’avais fait je crois, histoire de pas avoir à taper le sudo) ?

Petit test simple : si tu remets le script à son emplacement d’origine, que tu le chown pour ricardo comme c’était au départ, et que tu l’appelles… il te demande toujours le mot de passe directement ?

Réponse plus haut en edit.
j’avais bien enlevé l’alias.

Ah oui au temps pour moi, si tu avais mis un alias et que tu l’as renlevé ensuite, fallait bel et bien relancer ta session (juste la session X aurait fait l’affaire je pense).
'Fin bref, c’est réglé.