GNU/Linux >> Tutoriels Linux >  >> Linux

Options Su - Exécuter la commande en tant qu'autre utilisateur ?

Je me demandais comment exécuter une commande en tant qu'autre utilisateur à partir d'un script.

J'ai le propriétaire du script défini comme root. J'ai également la commande suivante en cours d'exécution dans le script pour exécuter la commande en tant qu'utilisateur hudson :

su -c command hudson

Est-ce la bonne syntaxe ?

Réponse acceptée :

Oui. Voici le --help :

$ su --help
Usage: su [options] [LOGIN]

Options:
  -c, --command COMMAND         pass COMMAND to the invoked shell
  -h, --help                    display this help message and exit
  -, -l, --login                make the shell a login shell
  -m, -p,
  --preserve-environment        do not reset environment variables, and
                                keep the same shell
  -s, --shell SHELL             use SHELL instead of the default in passwd

Et quelques tests (j'ai utilisé sudo car je ne connais pas le mot de passe pour le nobody compte)

$ sudo su -c whoami nobody
[sudo] password for oli: 
nobody

Lorsque votre commande prend des arguments, vous devez la citer. Si vous ne le faites pas, des choses étranges se produiront. Ici, je suis —en tant que root— en train d'essayer de créer un répertoire dans /home/oli (en tant que oli) sans citant la commande complète :

# su -c mkdir /home/oli/java oli
No passwd entry for user '/home/oli/java'

Il ne s'agit que de lire mkdir comme valeur pour le -c flag et il essaie d'utiliser /home/oli/java comme nom d'utilisateur. Si nous le citons, cela fonctionne :

# su -c "mkdir /home/oli/java" oli
# stat /home/oli/java
  File: ‘/home/oli/java’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 811h/2065d  Inode: 5817025     Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1000/     oli)   Gid: ( 1000/     oli)
Access: 2016-02-16 10:49:15.467375905 +0000
Modify: 2016-02-16 10:49:15.467375905 +0000
Change: 2016-02-16 10:49:15.467375905 +0000
 Birth: -

Linux
  1. Expliquer les options de la commande Readlink ?

  2. Comment se souvenir des options de commande ? ?

  3. Création d'utilisateur avec plusieurs options de commande ?

  4. Commande Linux su

  5. Options de la commande modprobe

Mes options de commande Linux préférées

Commande Su sous Linux (Changer d'utilisateur)

Commande ID sous Linux

Commande Usermod sous Linux

Commande su sous Linux

su :commande introuvable