changement user "su" et proprietaire répertoire - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 01-01-2010 à 14:48:42
Salut,
ce n'est pas possible d'utiliser la commande su de cette façon en script.
Pour ca utilise :
Code :
|
Marsh Posté le 01-01-2010 à 16:59:35
Ce qui se passe, c'est que ton script lance le su, qui attend des commandes sur l'entrée standard. Et quand le su se termine, le script continue (création du répertoire).
A la rigueur, il aurait fallu faire : "echo mkdir repertoire" | su - toto
(l'utilisation du paramètre -c est mieux, bien évidemment )
Marsh Posté le 01-01-2010 à 17:39:27
Une autre possibilité c'est de passer par la commande chown pour changer le propriétaire du répertoire
mkdir repertoire
chown toto repertoire
Comme ca t'as le choix
Marsh Posté le 01-01-2010 à 20:08:59
@mrbebert: merci pour l'explication.
@kisscoolz: j'en ai pas mal à gérer, je préfère que se soit mon user toto qui effectue la manip.
@sputnick: bien vu la commande. Par contre il me demande le mot de passe, alors qu'on prompt, il n'en réclame pas (c'est root qui effectue le su). Y a t-il un moyen de gérer cela ?
Merci pour vos réponses.
Marsh Posté le 01-01-2010 à 21:26:30
Bon, chuis nul ! j'avais laissé un "su - toto" dans le script appelé !!!
Donc, tout marche nickel. Merci pour votre prompte participation.
Et.... bonne année !
Marsh Posté le 01-01-2010 à 21:54:51
vavoir a écrit : Bon, chuis nul ! j'avais laissé un "su - toto" dans le script appelé !!! |
Euh....finalement, il suffisait de paramétrer l'utilisateur "toto" dans la crontab pour le lancement du traitement
*/1 * * * * toto test.sh
Bon ben j'ai appris plusieurs trucs aujourd'hui. Merci
Marsh Posté le 04-01-2010 à 18:08:35
vavoir a écrit :
|
Oui, enfin n'oublie pas de preciser que cette syntaxe n'est prevue que dans /etc/crontab.
Sinon il suffit d'editer la bonne crontab, example :
Code :
|
Marsh Posté le 04-01-2010 à 18:44:20
On peut utiliser sudo aussi, pour changer d'identité le temps de passer une commande.
Marsh Posté le 01-01-2010 à 14:45:44
Bonjour et bonne année 2010 à tous !
Pour commencer l'année doucement après le réveillon ( ), je vous propose un sujet, surement simple, mais je coince un peu.
Voila, je suis hébergé chez OVH en dédié linux.
Je veux automatiser des tâches via la crontab. Paramétrage de la crontab, sans pb.
Un script est exécuté par l'utilisateur root. Aussi, j'ai effectué un "su - toto" pour changer d'utilisateur, avant, par exemple, de créer un répertoire.
Et ben c'est toujours root le créateur du répertoire, et pas mon user toto !
Manip manuelle via le prompt :
> su - toto (je suis connecté en tant que toto)
> mkdir mon_repertoire (toto est le créateur du répertoire)
> exit (je reviens en mode root)
Maintenant, mon script shell "test.sh" essaye de faire la même chose. Voici son contenu :
su - toto
mkdir mon_repertoire
echo "creation OK"
exit
Je le lance via root (comme un tâche cron) de la façon suivante : "./test.sh" et voilà ce qui se passe :
- Le script se connecte en tant que user "toto", le prompt est "toto@xxxx:", et rien ne se passe.
- Je fais un exit à partir du prompt et le script se termine en créant mon répertoire avec le user root et non toto du coup, et affiche le message "creation OK".
Ya surement un truc tout simple mais là, je ne vois pas.
Pourriez-vous me filer un coup de main ?
Merci .