Linux 如何在没有sudo的情况下在shell脚本中运行特定命令?
我正在运行一个shell脚本,它正在以具有sudo权限的root用户身份运行。 它有gem install命令,该命令也作为sudo运行 但是我想在没有sudo的情况下运行gem install[command]Linux 如何在没有sudo的情况下在shell脚本中运行特定命令?,linux,bash,shell,sh,Linux,Bash,Shell,Sh,我正在运行一个shell脚本,它正在以具有sudo权限的root用户身份运行。 它有gem install命令,该命令也作为sudo运行 但是我想在没有sudo的情况下运行gem install[command] #!/usr/bin/env bash curl -sSL https://get.rvm.io | bash -s stable rvm install stable gem install jekyll 这是一个用于vagrant的配置管理脚本 如果要以非特权特定用户的身份运行,
#!/usr/bin/env bash
curl -sSL https://get.rvm.io | bash -s stable
rvm install stable
gem install jekyll
这是一个用于vagrant的配置管理脚本 如果要以非特权特定用户的身份运行,可以使用
sudo -u <username> command
sudo-u命令
如果您想以非特权特定用户的身份运行它,您可以使用
sudo -u <username> command
sudo-u命令
您不应该使用sudo
运行整个脚本;脚本本身应该只为那些需要提升权限的命令调用sudo
例如:
#!/usr/bin/env bash
curl -sSL https://get.rvm.io > installer # Does not need sudo
bash installer stable # Maybe needs sudo?
sudo rvm install stable # I assume this needs sudo
gem install jekyll
直接从外部资源运行代码而不进行验证,更不用说以root用户身份运行了,这是一个很大的安全风险。您应该首先下载代码,验证它,然后将其作为参数传递给脚本
#!/usr/bin/env bash
bash "$1" stable # Again, maybe needs sudo
sudo rvm install stable
gem install jekyll
要运行脚本,请执行以下操作:
curl -sSL https://get.rvm.io > installer
# Check if installer is the right script and is safe
myscript installer
您不应该使用
sudo
运行整个脚本;脚本本身应该只为那些需要提升权限的命令调用sudo
例如:
#!/usr/bin/env bash
curl -sSL https://get.rvm.io > installer # Does not need sudo
bash installer stable # Maybe needs sudo?
sudo rvm install stable # I assume this needs sudo
gem install jekyll
直接从外部资源运行代码而不进行验证,更不用说以root用户身份运行了,这是一个很大的安全风险。您应该首先下载代码,验证它,然后将其作为参数传递给脚本
#!/usr/bin/env bash
bash "$1" stable # Again, maybe needs sudo
sudo rvm install stable
gem install jekyll
要运行脚本,请执行以下操作:
curl -sSL https://get.rvm.io > installer
# Check if installer is the right script and is safe
myscript installer
它只有一个用户,它的根用户。我真的不明白你想做什么。sudo是为(非root)用户授予root权限的。若用户已经是root用户,那个么使用sudo运行和不使用sudo运行并没有区别。如前所述,您可以将其用于根用户作为另一个用户运行。如果没有其他用户,那么,据我所知,sudo无法解决gem的问题,当你安装gem时,不应该与sudo gem install一起使用。它只有一个用户,它的根用户。我真的不明白你想做什么。sudo是为(非root)用户授予root权限的。若用户已经是root用户,那个么使用sudo运行和不使用sudo运行并没有区别。如前所述,您可以将其用于根用户作为另一个用户运行。如果没有其他用户,那么,据我所知,sudo无法解决gem的问题,当您安装gem时,不应与sudo gem install一起使用..可能重复的可能重复的