2

サービスでこのコードを試したとき

start() {
    sudo -u userName "pwd" &>/home/log
}

/home/log で次の結果が得られました。

sudo: sorry, you must have a tty to run sudo

サービスは実行されませんが、サーバーの起動が完了すると、私が呼び出すとサービスが実行されます

サービステスト開始

4

1 に答える 1

4

通常、サービスはrootブート (または/etc/init.d/) スクリプトから開始されます。

/bin/su次のコマンドを(root として)使用して、ユーザーを変更できます。

/bin/su -c "pwd; id" username

setuidプログラムとsetuid(2)およびsetreuid(2)システムコールについても読んでください。時間を取ってAdvanced Linux Programmingを読み、関連する概念を理解してください。

@rebootユーザーのcrontab(5)のエントリも検討してください。

于 2013-08-31T09:17:36.567 に答える