2

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 没有帮助?

4

2 回答 2

1

你应该添加这一行

chmod ug+rw a.txt

有了这个,用户将拥有对“a.txt”的读/写权限。

于 2013-02-03T22:57:44.380 回答
1

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

作为不良做法,您不检查任何内容,并且您的$1参数替换对于带有空格的文件名会被破坏。如果这无关紧要,你应该关心其余的吗?

于 2013-02-03T21:45:13.407 回答