Il y a deux utilisateurs sur mon mac : moi (user1, administrateur), et
user2 non admin.
Si, ayant ouvert une session comme user1, je tape dans le terminal :
cd /Users/user2
sudo cd Documents
puis mon mot de passe admin
j'obtiens le message :
sudo: cd: command not found
Par contre :
sudo ls Documents
fonctionne normalement
Il y a deux utilisateurs sur mon mac : moi (user1, administrateur), et user2 non admin. Si, ayant ouvert une session comme user1, je tape dans le terminal : cd /Users/user2 sudo cd Documents puis mon mot de passe admin j'obtiens le message : sudo: cd: command not found
Par contre : sudo ls Documents fonctionne normalement
Comment se fait-ce ?
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes. Perso cela me parait logique.
-- Jacques PERROCHEAU ______________________________________________________________ e-mail: mailto:
herve <herve.nospam@tiscali.fr> wrote:
Il y a deux utilisateurs sur mon mac : moi (user1, administrateur), et
user2 non admin.
Si, ayant ouvert une session comme user1, je tape dans le terminal :
cd /Users/user2
sudo cd Documents
puis mon mot de passe admin
j'obtiens le message :
sudo: cd: command not found
Par contre :
sudo ls Documents
fonctionne normalement
Comment se fait-ce ?
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas
te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes.
Perso cela me parait logique.
--
Jacques PERROCHEAU
______________________________________________________________
e-mail: mailto:jperrocheau@mac.com
Il y a deux utilisateurs sur mon mac : moi (user1, administrateur), et user2 non admin. Si, ayant ouvert une session comme user1, je tape dans le terminal : cd /Users/user2 sudo cd Documents puis mon mot de passe admin j'obtiens le message : sudo: cd: command not found
Par contre : sudo ls Documents fonctionne normalement
Comment se fait-ce ?
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes. Perso cela me parait logique.
-- Jacques PERROCHEAU ______________________________________________________________ e-mail: mailto:
herve.nospam
(Jacques Perrocheau) wrote in message news:<1g81qi0.kik77khtobnyN%...
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes. Perso cela me parait logique.
OK, ton explication me convainc. Cependant "command not found" n'est pas très explicite, on pourrait faire mieux comme message d'erreur...
Merci,
Hervé
jperrocheau@mac.com.invalid (Jacques Perrocheau) wrote in message news:<1g81qi0.kik77khtobnyN%jperrocheau@mac.com.invalid>...
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas
te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes.
Perso cela me parait logique.
OK, ton explication me convainc.
Cependant "command not found" n'est pas très explicite, on pourrait
faire mieux comme message d'erreur...
(Jacques Perrocheau) wrote in message news:<1g81qi0.kik77khtobnyN%...
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes. Perso cela me parait logique.
OK, ton explication me convainc. Cependant "command not found" n'est pas très explicite, on pourrait faire mieux comme message d'erreur...
Merci,
Hervé
Éric Lévénez
Le 23/01/04 23:03, dans , « herve » a écrit :
sudo cd Documents puis mon mot de passe admin j'obtiens le message : sudo: cd: command not found
Par contre : sudo ls Documents fonctionne normalement
Comment se fait-ce ?
ls est un programme unix. "cd" est une commande interne au shell (comme "for" par exemple), et pas une commande unix. On ne peut faire un "sudo cd", ou un "exec cd". Le message d'erreur est clair "command not found" : ce n'est pas une commande unix.
Si tu es sous bash :
HAL3:~ eric$ type cd cd is a shell builtin
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 23/01/04 23:03, dans <df8aa16d.0401231403.187e3743@posting.google.com>,
« herve » <herve.nospam@tiscali.fr> a écrit :
sudo cd Documents
puis mon mot de passe admin
j'obtiens le message :
sudo: cd: command not found
Par contre :
sudo ls Documents
fonctionne normalement
Comment se fait-ce ?
ls est un programme unix. "cd" est une commande interne au shell (comme
"for" par exemple), et pas une commande unix. On ne peut faire un "sudo cd",
ou un "exec cd". Le message d'erreur est clair "command not found" : ce
n'est pas une commande unix.
Si tu es sous bash :
HAL3:~ eric$ type cd
cd is a shell builtin
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
sudo cd Documents puis mon mot de passe admin j'obtiens le message : sudo: cd: command not found
Par contre : sudo ls Documents fonctionne normalement
Comment se fait-ce ?
ls est un programme unix. "cd" est une commande interne au shell (comme "for" par exemple), et pas une commande unix. On ne peut faire un "sudo cd", ou un "exec cd". Le message d'erreur est clair "command not found" : ce n'est pas une commande unix.
Si tu es sous bash :
HAL3:~ eric$ type cd cd is a shell builtin
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Éric Lévénez
Le 24/01/04 12:46, dans , « herve » a écrit :
(Jacques Perrocheau) wrote in message news:<1g81qi0.kik77khtobnyN%...
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes. Perso cela me parait logique.
OK, ton explication me convainc.
Faut pas te laisser faire ! :-)
Cependant "command not found" n'est pas très explicite, on pourrait faire mieux comme message d'erreur...
Le message d'erreur est pourtant parfait. C'est l'explication qui ne l'est pas :-)
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 24/01/04 12:46, dans <df8aa16d.0401240346.3873c14d@posting.google.com>,
« herve » <herve.nospam@tiscali.fr> a écrit :
jperrocheau@mac.com.invalid (Jacques Perrocheau) wrote in message
news:<1g81qi0.kik77khtobnyN%jperrocheau@mac.com.invalid>...
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas
te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes.
Perso cela me parait logique.
OK, ton explication me convainc.
Faut pas te laisser faire ! :-)
Cependant "command not found" n'est pas très explicite, on pourrait
faire mieux comme message d'erreur...
Le message d'erreur est pourtant parfait. C'est l'explication qui ne l'est
pas :-)
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
(Jacques Perrocheau) wrote in message news:<1g81qi0.kik77khtobnyN%...
Normal, sudo étant une commande à "durée de vie limitée", elle ne va pas te laisser "séjourner" là où tu n'es pas sensé trainer tes baskettes. Perso cela me parait logique.
OK, ton explication me convainc.
Faut pas te laisser faire ! :-)
Cependant "command not found" n'est pas très explicite, on pourrait faire mieux comme message d'erreur...
Le message d'erreur est pourtant parfait. C'est l'explication qui ne l'est pas :-)
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
blanc
herve wrote:
Si, ayant ouvert une session comme user1, je tape dans le terminal : cd /Users/user2 sudo cd Documents puis mon mot de passe admin j'obtiens le message : sudo: cd: command not found
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement dans le répertoire 'home' de user2, et tu te retrouves avec ses droits (et son environnement) ! Contrairement à une idée reçue, la commande su permet de se substituer à n'importe quel utilisateur, pas seulement root. (su = substitute user identity) Ne pas oublier ensuite de faire ^D (control D) pour quitter la substitution.
Si tu veux juste faire une ou deux commandes en tant qu'utilisateur user2, tu peux faire : sudo -u user2 commande
Voir les manuels : man su man sudo pour plus de détails
JPaul.
-- /==/==- JPaul Blanc / /--/--// quelque part (somewhere) |/| L | en (in) /|| = ||| France
herve <herve.nospam@tiscali.fr> wrote:
Si, ayant ouvert une session comme user1, je tape dans le terminal :
cd /Users/user2
sudo cd Documents
puis mon mot de passe admin
j'obtiens le message :
sudo: cd: command not found
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement
dans le répertoire 'home' de user2, et tu te retrouves avec ses droits
(et son environnement) !
Contrairement à une idée reçue, la commande su permet de se substituer à
n'importe quel utilisateur, pas seulement root.
(su = substitute user identity)
Ne pas oublier ensuite de faire ^D (control D) pour quitter la
substitution.
Si tu veux juste faire une ou deux commandes en tant qu'utilisateur
user2, tu peux faire :
sudo -u user2 commande
Voir les manuels :
man su
man sudo
pour plus de détails
JPaul.
--
/==/==\- JPaul Blanc
/ /--/--//\ quelque part (somewhere)
|/| L |\ en (in)
/|| = |||\ France
Si, ayant ouvert une session comme user1, je tape dans le terminal : cd /Users/user2 sudo cd Documents puis mon mot de passe admin j'obtiens le message : sudo: cd: command not found
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement dans le répertoire 'home' de user2, et tu te retrouves avec ses droits (et son environnement) ! Contrairement à une idée reçue, la commande su permet de se substituer à n'importe quel utilisateur, pas seulement root. (su = substitute user identity) Ne pas oublier ensuite de faire ^D (control D) pour quitter la substitution.
Si tu veux juste faire une ou deux commandes en tant qu'utilisateur user2, tu peux faire : sudo -u user2 commande
Voir les manuels : man su man sudo pour plus de détails
JPaul.
-- /==/==- JPaul Blanc / /--/--// quelque part (somewhere) |/| L | en (in) /|| = ||| France
jperrocheau
JPaul wrote:
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement dans le répertoire 'home' de user2, et tu te retrouves avec ses droits (et son environnement) ! Contrairement à une idée reçue, la commande su permet de se substituer à n'importe quel utilisateur, pas seulement root.
sudo aussi.. non ?
Est-ce vraiment utile d'empiler un su et un sudo ?
(su = substitute user identity) Ne pas oublier ensuite de faire ^D (control D) pour quitter la substitution.
Un "exit" ne serait-il pas plus propre ?
Si tu veux juste faire une ou deux commandes en tant qu'utilisateur user2, tu peux faire : sudo -u user2 commande
OK
-- Jacques PERROCHEAU ______________________________________________________________ e-mail: mailto:
JPaul <blanc@empty.org> wrote:
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement
dans le répertoire 'home' de user2, et tu te retrouves avec ses droits
(et son environnement) !
Contrairement à une idée reçue, la commande su permet de se substituer à
n'importe quel utilisateur, pas seulement root.
sudo aussi.. non ?
Est-ce vraiment utile d'empiler un su et un sudo ?
(su = substitute user identity)
Ne pas oublier ensuite de faire ^D (control D) pour quitter la
substitution.
Un "exit" ne serait-il pas plus propre ?
Si tu veux juste faire une ou deux commandes en tant qu'utilisateur
user2, tu peux faire :
sudo -u user2 commande
OK
--
Jacques PERROCHEAU
______________________________________________________________
e-mail: mailto:jperrocheau@mac.com
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement dans le répertoire 'home' de user2, et tu te retrouves avec ses droits (et son environnement) ! Contrairement à une idée reçue, la commande su permet de se substituer à n'importe quel utilisateur, pas seulement root.
sudo aussi.. non ?
Est-ce vraiment utile d'empiler un su et un sudo ?
(su = substitute user identity) Ne pas oublier ensuite de faire ^D (control D) pour quitter la substitution.
Un "exit" ne serait-il pas plus propre ?
Si tu veux juste faire une ou deux commandes en tant qu'utilisateur user2, tu peux faire : sudo -u user2 commande
OK
-- Jacques PERROCHEAU ______________________________________________________________ e-mail: mailto:
blanc
Jacques Perrocheau wrote:
Est-ce vraiment utile d'empiler un su et un sudo ?
J'ai pensé que s'il voulait travailler dans le répertoire home de user2, c'était plus simple, puisque sudo ne permet pas de faire le changt de répertoire
Ne pas oublier ensuite de faire ^D (control D) pour quitter la substitution.
Un "exit" ne serait-il pas plus propre ?
Je te l'accorde (mais plus long à taper ;-)
JPaul.
-- /==/==- JPaul Blanc / /--/--// quelque part (somewhere) |/| L | en (in) /|| = ||| France
Jacques Perrocheau <jperrocheau@mac.com.invalid> wrote:
Est-ce vraiment utile d'empiler un su et un sudo ?
J'ai pensé que s'il voulait travailler dans le répertoire home de user2,
c'était plus simple, puisque sudo ne permet pas de faire le changt de
répertoire
Ne pas oublier ensuite de faire ^D (control D) pour quitter la
substitution.
Un "exit" ne serait-il pas plus propre ?
Je te l'accorde (mais plus long à taper ;-)
JPaul.
--
/==/==\- JPaul Blanc
/ /--/--//\ quelque part (somewhere)
|/| L |\ en (in)
/|| = |||\ France
Est-ce vraiment utile d'empiler un su et un sudo ?
J'ai pensé que s'il voulait travailler dans le répertoire home de user2, c'était plus simple, puisque sudo ne permet pas de faire le changt de répertoire
Ne pas oublier ensuite de faire ^D (control D) pour quitter la substitution.
Un "exit" ne serait-il pas plus propre ?
Je te l'accorde (mais plus long à taper ;-)
JPaul.
-- /==/==- JPaul Blanc / /--/--// quelque part (somewhere) |/| L | en (in) /|| = ||| France
blanc
JPaul wrote:
Un "exit" ne serait-il pas plus propre ?
Je te l'accorde (mais plus long à taper ;-)
Et bien non, après réflexion, je ne te l'accorde pas ;->
Un ^D pour terminer un shell est parfaitement correct et propre. Il s'agit en effet du caractère de fin de fichier, et le shell sait interpréter ce caractère, puisque c'est celui qu'il reçoit lorsqu'il lit la fin d'un script. Ce caractère signifie pour lui qu'il doit se terminer et est totalement équivalent à ``exit''.
Ce n'est pas tout à fait pareil avec un ^C qui permet de terminer un processus : même si tout processus bien fait devrait théoriquement capturer ce ^C et se terminer proprement, ce n'est hélas pas toujours le cas.
JPaul.
-- /==/==- JPaul Blanc / /--/--// quelque part (somewhere) |/| L | en (in) /|| = ||| France
JPaul <blanc@empty.org> wrote:
Un "exit" ne serait-il pas plus propre ?
Je te l'accorde (mais plus long à taper ;-)
Et bien non, après réflexion, je ne te l'accorde pas ;->
Un ^D pour terminer un shell est parfaitement correct et propre. Il
s'agit en effet du caractère de fin de fichier, et le shell sait
interpréter ce caractère, puisque c'est celui qu'il reçoit lorsqu'il lit
la fin d'un script. Ce caractère signifie pour lui qu'il doit se
terminer et est totalement équivalent à ``exit''.
Ce n'est pas tout à fait pareil avec un ^C qui permet de terminer un
processus : même si tout processus bien fait devrait théoriquement
capturer ce ^C et se terminer proprement, ce n'est hélas pas toujours le
cas.
JPaul.
--
/==/==\- JPaul Blanc
/ /--/--//\ quelque part (somewhere)
|/| L |\ en (in)
/|| = |||\ France
Et bien non, après réflexion, je ne te l'accorde pas ;->
Un ^D pour terminer un shell est parfaitement correct et propre. Il s'agit en effet du caractère de fin de fichier, et le shell sait interpréter ce caractère, puisque c'est celui qu'il reçoit lorsqu'il lit la fin d'un script. Ce caractère signifie pour lui qu'il doit se terminer et est totalement équivalent à ``exit''.
Ce n'est pas tout à fait pareil avec un ^C qui permet de terminer un processus : même si tout processus bien fait devrait théoriquement capturer ce ^C et se terminer proprement, ce n'est hélas pas toujours le cas.
JPaul.
-- /==/==- JPaul Blanc / /--/--// quelque part (somewhere) |/| L | en (in) /|| = ||| France
herve.nospam
(JPaul) wrote in message news:<1g82npl.11hvq8dhy6my0N%...
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement dans le répertoire 'home' de user2, et tu te retrouves avec ses droits (et son environnement) ! Contrairement à une idée reçue, la commande su permet de se substituer à n'importe quel utilisateur, pas seulement root.
Pourquoi faut-il y ajouter un sudo ? D'après man su, il me semble que "su user2" devrait suffire. Or effectivement ça ne marche pas, car après avoir entré le mot de passe de user2, j'obtiens la réponse : su : Sorry
Hervé
blanc@empty.org (JPaul) wrote in message news:<1g82npl.11hvq8dhy6my0N%blanc@empty.org>...
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement
dans le répertoire 'home' de user2, et tu te retrouves avec ses droits
(et son environnement) !
Contrairement à une idée reçue, la commande su permet de se substituer à
n'importe quel utilisateur, pas seulement root.
Pourquoi faut-il y ajouter un sudo ?
D'après man su, il me semble que "su user2" devrait suffire.
Or effectivement ça ne marche pas, car après avoir entré le mot de
passe de user2, j'obtiens la réponse :
su : Sorry
(JPaul) wrote in message news:<1g82npl.11hvq8dhy6my0N%...
La bonne solution pour faire ce que tu veux :
sudo su - user2
De cette manière tu fais d'une pierre deux coups : Tu vas effectivement dans le répertoire 'home' de user2, et tu te retrouves avec ses droits (et son environnement) ! Contrairement à une idée reçue, la commande su permet de se substituer à n'importe quel utilisateur, pas seulement root.
Pourquoi faut-il y ajouter un sudo ? D'après man su, il me semble que "su user2" devrait suffire. Or effectivement ça ne marche pas, car après avoir entré le mot de passe de user2, j'obtiens la réponse : su : Sorry
Hervé
herve.nospam
Éric Lévénez wrote in message news:<BC381B27.66CE8%...
ls est un programme unix. "cd" est une commande interne au shell (comme "for" par exemple), et pas une commande unix. On ne peut faire un "sudo cd", ou un "exec cd". Le message d'erreur est clair "command not found" : ce n'est pas une commande unix.
Donc on ne peut pas "forcer" via root l'éxécution des commandes internes ?
Hervé
Éric Lévénez <news@levenez.com> wrote in message news:<BC381B27.66CE8%news@levenez.com>...
ls est un programme unix. "cd" est une commande interne au shell (comme
"for" par exemple), et pas une commande unix. On ne peut faire un "sudo cd",
ou un "exec cd". Le message d'erreur est clair "command not found" : ce
n'est pas une commande unix.
Donc on ne peut pas "forcer" via root l'éxécution des commandes internes ?
Éric Lévénez wrote in message news:<BC381B27.66CE8%...
ls est un programme unix. "cd" est une commande interne au shell (comme "for" par exemple), et pas une commande unix. On ne peut faire un "sudo cd", ou un "exec cd". Le message d'erreur est clair "command not found" : ce n'est pas une commande unix.
Donc on ne peut pas "forcer" via root l'éxécution des commandes internes ?