GNU/Linux >> Linux の 問題 >  >> Linux

Suオプション–別のユーザーとしてコマンドを実行しますか?

スクリプトから別のユーザーとしてコマンドを実行する方法を考えていました。

スクリプトの所有者をrootとして設定しています。また、ハドソンユーザーとしてコマンドを実行するために、スクリプト内で次のコマンドを実行しています。

su -c command hudson

これは正しい構文ですか?

承認された回答:

はい。これが--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

そしていくつかのテスト(私はsudoを使用しました nobodyのパスワードがわからないので アカウント)

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

コマンドが引数を取るときは、引用符で囲む必要があります。そうしないと、奇妙なことが起こります。ここで私は—rootとして— / home / oliに(oliとして)なしでディレクトリを作成しようとしています。 コマンド全体を引用する:

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

mkdirのみが読み取られます -cの値として フラグを立てて、/home/oli/javaを使用しようとしています ユーザー名として。引用すると、うまくいきます:

# 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. 便利なpsオプション

  2. Readlinkコマンドのオプションを説明しますか?

  3. modprobe コマンドのオプション

  1. grub-mkconfig コマンド オプション

  2. grub-install コマンド オプション

  3. パスワードなしで別のユーザーとしてスクリプトを実行するには?

  1. コマンドオプションを覚える方法は??

  2. 複数のコマンドオプションを使用したユーザー作成?

  3. Linuxsuコマンド