以另一个用户身份运行makefile命令

我有两个脚本,由root拥有。

#!/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”并不断在my_makefile上运行make。 script1.sh被个别用户调用来改变makefile。

我如何运行makefile命令,以便file.txt由用户拥有,而不是根?

 #!/bin/sh #script1.sh ... echo "\tchown "`logname`" file.txt" >> my_makefile 

对不起,我没有正确使用sudo。 我只需要将script2.sh的最后一行替换为:

 echo "sudo su -m -l `whoami` -c \"touch file.txt\"" >> my_makefile