unix – 以另一个用户身份运行命令
发布时间:2020-12-15 17:01:30 所属栏目:安全 来源:网络整理
导读:我是Unix的新手.我试图以另一个用户身份运行 shell脚本和命令. 例如: 我以user1身份登录,并希望以user2身份执行脚本.我不想要密码提示,我希望它能自动输入.我知道公钥认证,但我试图找到是否有类似的东西: sudo -u user2 script.sh 我想尝试这个,所以我不想
我是Unix的新手.我试图以另一个用户身份运行
shell脚本和命令.
例如: sudo -u user2 script.sh 我想尝试这个,所以我不想要密码提示.我希望它在sudo命令本身中处理. 请帮忙
您可以将NOPASSWD选项添加到/ etc / sudoers文件中.
但出于安全考虑,可能对您不利. user user2 = NOPASSWD: /usr/local/bin/script.sh 你有另一个选择:使用sudo,但不是直接从某个脚本运行它,而是使用pexpect或expect,它将为你输入密码.从安全角度来看,这也可能并不理想,因为您需要在脚本中保存密码. 期待您可以做以下事情: #!/usr/bin/expect set password "megapassword" spawn /bin/sudo -u user1 /usr/local/bin/script.sh expect "password for user:" send "$passwordr" expect eof 不要忘记在该文件上设置500权限. 使用pexpect(这是一个python模块),它将如下所示: import pexpect password = "megapassword" p = pexpect.spawn("sudo -u user1 /usr/local/bin/script.sh") i = p.expect([".ssword:*",pexpect.EOF]) p.sendline(password) 如果在cron中运行该命令并且可以将命令添加到user1的crontab,则也可以执行此操作.这可能是最好的解决方案. user1$crontab -e (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |