としてユーザーとファイルを作成し、私は名前のファイルを作成するbashスクリプト、create-file.sh、持っている:のsudoで実行bashスクリプトが、所有者
$ cat create-file.sh
# /bin/bash
touch a
を私はスクリプトを実行すると、それはファイルを作成します私のユーザーを所有者として 'a'。
$ ./create-file.sh
$ ls -l
-rw-r--r-- 1 shai wheel 0 Aug 16 17:19 a
私はsudoの下にスクリプトを実行するときしかし、ファイルがユーザーとしてrootを使用して作成されます
$ sudo ./create-file.sh
$ ls -l
-rw-r--r-- 1 root wheel 0 Aug 16 17:19 a
は私のユーザーとファイルを作成するために、sudoの下で実行するスクリプトを指示する方法はあります所有者として?
- あなたは、単一のファイルに触れるスクリプトはsudoの下で実行する必要はないと言うのは間違いありません。この例は当然元の問題を軽減したものですが、私のスクリプトははるかに多く、sudoの下で実行する必要がありますが、所有者として自分のユーザでファイルを作成したいと思っています。
詳細は問題 - - 理想的なアプローチには、例えばsudoのスクリプトをコプロセッサとして実行する非昇格スクリプトのようなものがあります。特定の解決策に焦点を当てた質問では、微妙な調整済みの回答は許されません。 –
ところで、 '#/ bin/bash'は'#!/ bin/bash'ではありません。 '!'は有効なシバンであることが必須です。 –
@Charles Duffy:もちろん、「#!/ bin/bash」、悪いです。 –