GNU/Linux >> Linux Esercitazione >  >> Linux

Opzioni Su - Esecuzione del comando come un altro utente?

Mi chiedevo come eseguire un comando come un altro utente da uno script.

Ho il proprietario dello script impostato come root. Ho anche il seguente comando in esecuzione all'interno dello script per eseguire il comando come utente hudson:

su -c command hudson

È questa la sintassi corretta?

Risposta accettata:

Sì. Ecco il --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

E alcuni test (ho usato sudo poiché non conosco la password per nobody conto)

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

Quando il tuo comando accetta argomenti, devi citarlo. Se non lo fai, accadranno cose strane. Eccomi —come root— che provo a creare una directory in /home/oli (as oli) senza citando il comando completo:

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

Si legge solo mkdir come valore per -c flag e sta tentando di utilizzare /home/oli/java come nome utente. Se lo citiamo, funziona e basta:

# 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. Opzioni utili per ps

  2. Comando su Linux

  3. Opzioni del comando modprobe

  4. Opzioni del comando grub-mkconfig

  5. Opzioni di comando di grub-install

Le mie opzioni di comando principali di Linux preferite

Su Command in Linux (Cambia utente)

Comando ID in Linux

Comando Usermod in Linux

su Comando in Linux

Creazione di utenti con più opzioni di comando?