Linux:使用sudo在bin中运行脚本

时间:2016-04-18 22:07:45

标签: linux bash shell

所以我确定这是写在某个地方,我只是写错我的搜索,但我找不到它。

我编写shell脚本。其中许多脚本都需要超级用户权限。我没有将sudo命令放在脚本中,而是想从sudo开始调用整个脚本。

所以而不是:

#!/bin/bash
# Sample Script 1

sudo mkdir /usr/tempDir

这将是:

#!/bin/bash
# Sample Script 2

mkdir /usr/tempDir

我会像这样调用它:sudo ./sampleScript.sh

我的问题是,当我编写一个脚本时,我将它链接到我的bin,所以当我执行它时我不需要担心脚本的路径。

如果我将文件simlinked到我的bin,并且我只是运行它:sampleScript.sh,它被识别(并且将失败)。但是,如果我这样做:sudo sampleScript.sh,我得到一个“sudo:sampleScript.sh:command not found”消息。

如果它位于/ home / myName / bin和/ usr / local / bin中,则会发生这种情况。

我知道必须有一个技巧来完成我缺少的这项工作。而且我也知道我可能只是没有正确地搜索我的谷歌搜索。只是寻找一些指导来解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:3)

当你调用sudo时,PATH会改变,即它不会使用你的。看这里

sudo changes PATH - why?

这样做是因为它现在以root运行,而不是以您的用户身份运行。