首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在每次不输入密码的情况下打开"root“文件?

如何在每次不输入密码的情况下打开"root“文件?
EN

Stack Overflow用户
提问于 2018-04-04 15:24:25
回答 3查看 1.1K关注 0票数 2

我读过这个非常有趣的帖子,它非常接近我所需要的,但并不完全,他们将它用于shell脚本,而我需要的是相同的解决方案,主要用于内置的Python函数。

长话短说:

代码语言:javascript
代码运行次数:0
运行
复制
open("/dev/input/event3", "rb")

这是不可能的,因为为了打开event3,我每次执行脚本时都需要键入密码,因为权限提升了。我能做什么,这样我就不必每次输入我的密码,也不必在我的脚本中用平面文本写我的密码。我喜欢我在上面链接的文章中提供的解决方案,但这不起作用,因为这意味着我在这个打开的文件上获得的-sort会话句柄将位于另一个作用域/python脚本中。

有什么解决办法吗?

谢谢

编辑

我尝试修改整个Python脚本的权限,这样我就不需要输入密码了,但这两种方法都没有用。我试过的是:

1)修改访问权

代码语言:javascript
代码运行次数:0
运行
复制
sudo chown root:root /home/username/myscript.py
sudo chmod 700 /home/username/myscript.py

2)修改visudo

代码语言:javascript
代码运行次数:0
运行
复制
myusername  ALL=(ALL) NOPASSWD:  /home/username/myscript.py

3)尝试执行我的python脚本现在失败了,尽管它显然是存在的。

代码语言:javascript
代码运行次数:0
运行
复制
myusername$ ./myscript
bash: ./myscript: No such file or directory
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-04 16:38:23

我突然想到,你可能是在倒退地处理这个问题。目前,您在询问如何提高python脚本的权限,而无需每次输入密码,而您应该问:“为什么我需要输入密码呢?”

只要文件不是安全问题,那么脚本和文件都应该由输入组中的非根用户拥有。拥有python脚本的用户可以在没有根权限的情况下执行它,从而访问不需要它们的文件。

票数 2
EN

Stack Overflow用户

发布于 2018-04-05 05:25:05

阅读了有关 塞图德的更多信息。这很棘手(所以我甚至不会在这里解释),它是sudosulogin等身份验证相关程序的基础。参见海胆(2)塞图德(2)execve(2)全权证书(7)chmod(1)

一本好的Unix编程书(如碱性磷酸酶或其他更新的东西)应该用系统调用 (在系统(2)中列出)来解释setuid。

setuid可执行文件不能是脚本(使用谢邦;它们应该是二进制小精灵可执行文件(参见精灵(5))。但是,您可以用C编写一些setuid包装程序(或者大多数其他编译语言,例如Rust、Ocaml、C++、Go、.)运行Python脚本。小心点,因为一个错误可能会打开一个巨大的安全孔。但是有了这样一个setuid可执行文件,您就不必键入任何密码。

您还可以让一些特定的用户或组拥有/dev/input/event3 (因此,通过udevsystemd对系统进行适当的配置.)并有一个setuid或setgid程序。

顺便说一下,您可以配置sudo (请参阅sudoers(5))以避免输入任何密码。当然,这会削弱整个系统的安全性(但选择是你的)。

票数 1
EN

Stack Overflow用户

发布于 2018-04-04 18:11:35

您可以使用以下语法在同一行中传递sudo密码:

代码语言:javascript
代码运行次数:0
运行
复制
echo password | sudo -S your_command

这样,在命令执行之前,不会提示您输入sudo密码--听起来这就是您要找的。

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

https://stackoverflow.com/questions/49654856

复制
相关文章

相似问题

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