Suite à cette erreur j'ai donné les droit administrative à toto via l'interface graphique, donc normalement il a les droits de créer un répertoire et autres taches.
Je deviens fous, je ne comprends pas...
Merci de votre aide.
Suite à cette erreur j'ai donné les droit administrative à toto via l'interface graphique, donc normalement il a les droits de créer un répertoire et autres taches.
Je deviens fous, je ne comprends pas...
Merci de votre aide.
Là je comprends plus ce que tu cherches à faire. Au début de la file tu voulais que n'importe quel utilisateur puisse exécuter une commande avec l'utilisateur toto et là il me semble que tu essaies d'utiliser toto pour écrire dans des répertoires d'autres utilisateurs.
Donc explique clairement ce que tu veux.
Concernant /etc/sudoers, tu l'as fait manuellement ou en utilisant la commande visudo ?
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/
Un petit rappel sur ce que je dois faire et pourquoi je suis la:
Je vais tenter d'être le + clair possible, c'est parti :
Un script permettant de faire une commande à partir d'un compte précis.( peu importe la commande, ca peut être une sauvegarde (c'est le cas ici), création de dossier etc ...). Ces commandes sont en quelque sorte "attribuées" et ne peuvent s'éxécuter que dans le compte toto.
Cette commande s'effectue uniquement si l'on est loggué dans ce compte précis. Appelons ce compte toto.
Si ce script s'éxécute en étant à la base sur un autre compte que toto, les commandes citées dans le script
ne marcheront pas, autrement dit, le script ne servira à rien et n'aura pas d'effet.
Pour palier à cela, dans le Script, je dois indiqué une condition.
Le script s'éxécutera tous les jours. Il se peut que le serveur où se trouve le script soit manipulé et donc peut avoir comme conséquence des changements de compte user. Exemple : root, titi, tata. Et laissé comme tel.
Lorsque le script s'éxécutera, en admettant que le compte courant suite au changement de compte, ne soit plus toto mais titi. Le script ne marchera pas, vous l'aurez deviné.
C'est pour cela que je dois vérifier si le compte courant est bien celui de toto pour que le script marche. Si c'est toto, donc si le compte courant est toto, hé bien la sauvegarde ou autres taches spécifiques s'effectuent sinon se connecter en tant que toto et faire ces commandes.
donc == > if [$USER = toto]
then mkdir /home/mister/Bureau/reptest;
else
su toto; // !!!!!!!!!!!
mkdir /home/mister/Bureau/reptest;
fi
Il s'agit d'une version non otpimisée et qui pose problème pourquoi ?
Lorsque que l'on veut changer de compte, le mot de passe est demandé. Quand on fait su toto, on voit passwd : // saisier au clavier
or c'est un script donc tache automatisé, de plus avec crontab.
SOLUTION :
Tchetch, tu me conseilles de rajouter la ligne dans /etc/sudoers :
ALL ALL=( toto ) NOPASSWD: /etc/SCRIPTS/script.sh
et donc le script peut se lancer en une seul ligne avec ==> sudo -u toto mkdir /home/mister/Bureau/reptest ;
Si c'est toto qui lance, l'utilisateur restera bon, sinon l'utilisateur sera toto.
Problème, Aprés test, l'erreur suivante apparait :
root@mister:~/Bureau# /etc/SCRIPTS/script.sh
mkdir: cannot create directory `/home/mister/Bureau/reptest': Permission denied
Pourquoi ? Si j'ai bien compris ...
car meme si je suis connecté en tant que toto et ce sans avoir entré mon password, il faut se connecter en tant que root à
partir du compte de toto pour pouvoir créer un répertoire ou tout simplement administrer le system.
Et la le mot de passe de toto est demandé, d'ou la restriction vu dans le message d'erreur
Comment pouvoir permettre à toto de pouvoir faire des commandes comme création de répertoire ou autres taches
sans passer par le statut root et donc sans rentrer au clavier un mot de passe demandé. On en revient toujours au
En espérant avoir été claire et précis.
Merci de votre aide
C'est un problème de droit, toto doit avoir le droit d'écrire à l'endroit ou tu veux créer tes répertoires. Il n'y a que le root qui a tout les droits. Si toto a besoin de tous les droits, il y a une erreur quelque part.
Si toto a besoin de créer un répertoire pour travailler, on va donc faire en sorte de créer un répertoire dans un endroit ou toto aura le droit de le faire. Donc généralement, si c'est un répertoire de travail devant être détruit après, dans /tmp/. Maintenant si c'est un répertoire qui doit rester et qui est lié au compte toto, autant le faire dans son répertoire personnel, /home/toto/ typiquement.
La commande que tu lances pour créer le répertoire semble créer un répertoire sur le bureau de l'utilisateur mister et les répertoires personnels des utilisateurs sont, par défaut, accessible uniquement par l'utilisateur en personne et le compte root.
Donc dans le cas où tu veux vraiment que toto puisse y écrire, tu ajoutes toto au groupe de l'utilisateur mister et tu donnes les droits en écriture sur le répertoire /home/mister/Bureau/ pour le groupe associé à l'utilisateur (généralement le groupe par défaut pour un utilisateur a le même nom que l'utilisateur).
Est-ce bien cela que tu cherches à faire ?
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager