Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
968 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  changement user "su" et proprietaire répertoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

changement user "su" et proprietaire répertoire

n°1189248
vavoir
Posté le 01-01-2010 à 14:45:44  profilanswer
 

Bonjour et bonne année 2010 à tous !
 
Pour commencer l'année doucement après le réveillon ( :pt1cable: ), 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  :hello: .

mood
Publicité
Posté le 01-01-2010 à 14:45:44  profilanswer
 

n°1189249
sputnick
bip...bip...bip...bip...bi...b
Posté le 01-01-2010 à 14:48:42  profilanswer
 

Salut,
 
ce n'est pas possible d'utiliser la commande su de cette façon en script.
Pour ca utilise :

Code :
  1. su - <USER X> -c <COMMAND>

n°1189257
mrbebert
Posté le 01-01-2010 à 16:59:35  profilanswer
 

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 :jap: )


Message édité par mrbebert le 01-01-2010 à 17:00:18
n°1189258
kisscoolz
Posté le 01-01-2010 à 17:39:27  profilanswer
 

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 :)

n°1189271
vavoir
Posté le 01-01-2010 à 20:08:59  profilanswer
 

@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.

n°1189276
vavoir
Posté le 01-01-2010 à 21:26:30  profilanswer
 

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 !

n°1189287
vavoir
Posté le 01-01-2010 à 21:54:51  profilanswer
 

vavoir a écrit :

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 !


Euh....finalement, il suffisait de paramétrer l'utilisateur "toto" dans la crontab pour le lancement du traitement  :D  
*/1 * * * * toto test.sh
Bon ben j'ai appris plusieurs trucs aujourd'hui. Merci  :hello:

n°1189695
sputnick
bip...bip...bip...bip...bi...b
Posté le 04-01-2010 à 18:08:35  profilanswer
 

vavoir a écrit :


Euh....finalement, il suffisait de paramétrer l'utilisateur "toto" dans la crontab pour le lancement du traitement  :D  

Code :
  1. */1 * * * * toto test.sh


Bon ben j'ai appris plusieurs trucs aujourd'hui. Merci  :hello:


 
 
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 :
  1. crontab -e -u mamieSousBSD


Message édité par sputnick le 04-01-2010 à 18:09:19
n°1189705
Tuxerman12
Posté le 04-01-2010 à 18:44:20  profilanswer
 

On peut utiliser sudo aussi, pour changer d'identité le temps de passer une commande.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  changement user "su" et proprietaire répertoire

 

Sujets relatifs
Mon bureau m'affiche les icones du mon répertoire ~/ [Résolu] [SAMBA] quotas sur repertoire possible?
Rewriting - Rediriger un sous domaine quand le répertoire n'existe pasMontage répertoire avec Webdav
proxy et user agentapache2, user et droits
Apache UserDir + séparation de l'autentification par répértoire[debian] Lancement d'un service Postgres par un user normal
Répertoire /bin corrompux user not authorized to run the x server
Plus de sujets relatifs à : changement user "su" et proprietaire répertoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR