首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python程序+ python结束后sudo关机(最好的方法是在上半场之后不提示呢?)

python程序+ python结束后sudo关机(最好的方法是在上半场之后不提示呢?)
EN

Unix & Linux用户
提问于 2020-05-23 16:04:18
回答 1查看 451关注 0票数 0

我很好奇执行python程序的最佳方法(最安全的方式),以及在关闭系统之后(在ssh会话中使用sudo )。

我最初要做的是:

nohup python py_name.py && sudo shutdown -h now &nohup python py_name.py ; sudo shutdown -h now &

(sudo是因为我在ssh会话中,没有它我不能关闭,nohup&是因为我想在执行之后离开系统)

问题是python程序大约有5-8小时长,在那之后我不想要shell提示符,(在执行第一个命令时,不知怎么可能提示?)我的系统是ubuntu18.04,所以我想“sudo”都不能工作,因为sudo的超时(15分钟?)。

一种选择是为命令或脚本编写它并执行sudo ./script进入超级用户模式,但考虑到它正在执行python程序,它是否安全?(这是一个简单的家庭PC安装,所以也许这不是一个问题)

还有其他我不知道的方式吗?

-编辑-编辑

我试着运行sudo sh -c 'python py_name.py && sudo shutdown -h now'sudo sh -c 'command'执行另一个shell来运行命令,它可以这样工作,因为所有的shell都在sudo中。问题是,我使用了python环境,而这个新的shell并没有被激活。

-解决

真正的解决方案是(通过解决方案),将sudoers文件sudo visudo更改为在运行sudo shutdown时不需要密码的列表中添加关机。每个sudoers文件是不同的,但在我的示例中,我需要添加my_username ALL=(ALL) NOPASSWD: /sbin/shutdown,其中第一个“空格”是选项卡,而/sbin/shutdown是要执行的命令的路径(您可以使用command -v shutdown检查路径)。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-05-23 16:20:10

您可以在/etc/sudoers文件中为该用户设置无密码sudo。例如,在ssh服务器上(当然也可以限制更多,即只允许关闭为无密码等):

youruser ALL = ( ALL ) NOPASSWD: ALL

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/588523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档