Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用sudo和密码作为参数_Linux_Bash_Sudo - Fatal编程技术网

Linux 使用sudo和密码作为参数

Linux 使用sudo和密码作为参数,linux,bash,sudo,Linux,Bash,Sudo,我想用我的密码作为参数运行sudo,这样我就可以将它用于脚本。我试过了 sudo -S mypassword execute_command 但是没有成功。有什么建议吗?S开关使sudo从STDIN读取密码。这意味着你能做到 echo -e "YOURPASSWORD\n" | sudo -S yourcommand echo mypassword | sudo -S command 将密码传递给sudo 但是,其他人的建议不涉及将密码作为命令的一部分传递,例如检查用户是否是root用户,

我想用我的密码作为参数运行sudo,这样我就可以将它用于脚本。我试过了

sudo -S mypassword execute_command

但是没有成功。有什么建议吗?

S开关使sudo从STDIN读取密码。这意味着你能做到

echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo mypassword | sudo -S command
将密码传递给sudo


但是,其他人的建议不涉及将密码作为命令的一部分传递,例如检查用户是否是root用户,出于安全原因,这些建议可能是更好的主意

您可以为脚本设置
s
位,这样它就不需要
sudo
并以root用户身份运行(您不需要在脚本中写入根密码):


一个选项是对sudo使用-A标志。这将运行一个程序来询问密码。您可以使用一个脚本来吐出密码,这样程序就可以继续运行。

您只需检查脚本是否由“root”运行即可.回显密码是不好的,它会在历史记录中找到…最好正确配置
sudo
,它不会为某些程序/用户/组请求密码,以避免此类肮脏的黑客行为。+1.这是更好的方式(而且更安全)与其他方法相比,粘性位是一种不好的做法不?@kbdjockey-
+s
是setuid位。
+t
是粘性位。@Rob-谢谢你澄清注意,大多数操作系统对解释的脚本文件忽略此标志。这在二进制文件上很好地工作。这很有效,非常感谢!!挽救了我的一天,非常感谢!!!puttin怎么样g将它放在一个专用文件夹中,同时授予它和文件夹仅执行权限:
sudo chmod-R 0100 myScriptFolder
?这不会解决安全问题吗(前提是除了您之外没有人将您的计算机用作root用户)?或者,在某些情况下,本地网络之外的黑客是否可以在执行脚本时以某种方式看到脚本文本?这对我的OSX盒来说非常有效!非常感谢分享解决方案!当我有命令参数时,这不起作用。例如。
echo-e“yourspassword\n”| sudo-s“run-x”
。上面写着
sudo:run-x:command-not found
。你知道怎么解决这个问题吗?@Bhathiya只是不使用“引号”,例如:echo-e“yourspassword\n”| sudo-S ls-l/rootThis没有回答OP的问题。
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi