我有一個bash腳本,create-file.sh,創建命名一個文件:運行bash腳本使用sudo,但創建用戶文件作爲所有者
$ 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的文件與根目錄中創建的用戶腳本:
$ sudo ./create-file.sh
$ ls -l
-rw-r--r-- 1 root wheel 0 Aug 16 17:19 a
有沒有辦法告訴大家,在sudo下運行,用我的用戶創建文件的腳本作爲所有者?
- 你應該說,接觸單個文件的腳本不需要在sudo下運行。這個例子當然是減少了原來的問題,我的腳本有更多,並且需要在sudo下運行,但我仍然希望用我的用戶作爲所有者來創建文件。
細節也很重要 - - 例如,理想的方法可能涉及諸如運行sudo'd腳本作爲協處理的非提升腳本之類的東西。專注於具體解決方案的問題不允許有細微的,量身定製的答案。 –
順便說一下,'#/ bin/bash'不是'#!/ bin/bash'; '!'必須是一個有效的shebang。 –
@Charles Duffy:當然,'#!/ bin/bash',我的不好。 –