GNU/Linux >> Belajar Linux >  >> Linux

Opsi Su – Menjalankan Perintah Sebagai Pengguna Lain?

Saya bertanya-tanya bagaimana menjalankan perintah sebagai pengguna lain dari skrip.

Saya telah menetapkan pemilik skrip sebagai root. Saya juga menjalankan perintah berikut di dalam skrip untuk menjalankan perintah sebagai pengguna hudson:

su -c command hudson

Apakah ini sintaks yang benar?

Jawaban yang Diterima:

Ya. Berikut --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

Dan beberapa pengujian (saya menggunakan sudo karena saya tidak tahu kata sandi untuk nobody akun)

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

Ketika perintah Anda mengambil argumen, Anda perlu mengutipnya. Jika tidak, hal-hal aneh akan terjadi. Inilah saya —sebagai root— mencoba membuat direktori di /home/oli (sebagai oli) tanpa mengutip perintah lengkap:

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

Itu hanya membaca mkdir sebagai nilai untuk -c bendera dan mencoba menggunakan /home/oli/java sebagai nama pengguna. Jika kami mengutipnya, itu hanya berfungsi:

# 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. Opsi ps yang berguna

  2. Jelaskan Pilihan Perintah Readlink?

  3. Pembuatan Pengguna Dengan Opsi Perintah Mutiple?

  1. Opsi Perintah modprobe

  2. Opsi Perintah grub-mkconfig

  3. Opsi Perintah grub-install

  1. dpkg-konfigurasi ulang Opsi Perintah

  2. Opsi Perintah ufw

  3. su:perintah tidak ditemukan