sudo shell脚本mkdir

时间:2013-02-03 21:37:30

标签: shell sudo mkdir

myscript.sh是

#/!bin/sh
mkdir -p $1
cp -p a.txt ./$1
cp b.txt /usr

如果我用sudo ./myscript.sh调用它,目录$ 1由root拥有,因此用户无法修改a.txt(这是一个问题)。我可以将脚本更改为

#/!bin/sh
mkdir -p $1
cp -p a.txt ./$1
sudo cp b.txt /usr

并使用./myscript.sh调用,但我得到的印象是这是不好的做法。如何进行一般情况下,我不知道用户,所以chown没有帮助?

2 个答案:

答案 0 :(得分:1)

SUDO_USER环境变量由sudo设置为调用sudo的用户的名称。您可以将其用于chown

在不良做法中,您不会检查任何内容,并且对于包含空格的文件名,您的$1参数替换会被破坏。如果那么重要,你应该关心其余的吗?

答案 1 :(得分:1)

你应该添加这一行

chmod ug+rw a.txt

使用这个,用户将拥有'a.txt'的读/写权限。