2012-08-22 22 views
2

我有兩個腳本,由root擁有。作爲另一個用戶運行makefile命令

#!/bin/sh 
#script1.sh 
echo "all: first" > my_makefile 
echo >> my_makefile 
echo "first: " >> my_makefile 
echo "\ttouch file.txt" >> my_makefile 

#!/bin/sh 
#script2.sh 
while true 
do 
make -f my_makefile 
sleep 10 
done 

script2.sh被稱爲「sudo sh script.sh」並不斷運行make on my_makefile。個人用戶調用script1.sh來更改makefile。

如何運行makefile命令,以便file.txt由用戶擁有,而不是root?

+0

「...由用戶擁有...」您是指最後一個運行'script1.sh'的用戶? – Beta

+0

'sudo'和朋友。 – khachik

回答

0

對不起,我沒有正確使用sudo。我只需要將script2.sh的最後一行替換爲:

echo "sudo su -m -l `whoami` -c \"touch file.txt\"" >> my_makefile 
1
#!/bin/sh 
#script1.sh 
... 
echo "\tchown "`logname`" file.txt" >> my_makefile 
+0

也許我的例子太簡單了。我需要處理這樣的情況,許多不完整的名稱文件是由makefile中的命令生成的。 – Benjamin

相關問題