gpt4 book ai didi

bash - Shell 脚本 - Sudo 权限随时间丢失

转载 作者:行者123 更新时间:2023-11-29 08:55:44 25 4
gpt4 key购买 nike

我制作了一个简单的 bash 脚本,需要在整个脚本中保持 super 用户权限。不幸的是,但可以理解的是,当 sleep 发生时,脚本会失去其 sudo 提升的权限。对我不好:

sudo echo "I am sudo!" # Asks for passwords
sleep(60)
sudo echo "I am sudo!" # Need to enter password again.

我考虑过用一个让 sudo 保持事件状态的 while 循环替换 sleep,但我很确定有更好的选择可以使 sudo -permissions留在整个脚本中?

谢谢

最佳答案

sudo 的灵 active 被广泛低估了。这会导致非常糟糕的做法(例如 sudo su - canon-ball surgery method)。

更好的方法是专门允许您打算允许的命令无需使用密码:

phill = NOPASSWD: /bin/ls, /usr/bin/lprm

您可以有选择地为来自以特定管理员用户运行的特定主机的特定用户执行此操作。您甚至可以阻止用户将 shell 转义作为参数传递。你可以让 sudo 阻止启动的程序动态地执行更多的应用程序等等。你会想要 read the man-page for sudoers (and be sure to read the procedures for editing this special file!) .

这里是一些小东西,( from here ):

User_Alias     OPERATORS = joe, mike, jude
Runas_Alias OP = root, operator
Host_Alias OFNET = 10.1.2.0/255.255.255.0
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm

OPERATORS ALL=ALL
#The users in the OPERATORS group can run any command from any terminal.

linus ALL=(OP) ALL
# The user linus can run any command from any terminal as any user in the OP group (root or operator).

user2 OFNET=(ALL) ALL
# user user2 may run any command from any machine in the OFNET network, as any user.

user3 ALL= PRINTING
# user user3 may run lpc and lprm from any machine.

go2linux ALL=(ALL) ALL
# user go2linux may run any command from any machine acting as any user. (like Ubuntu)

If you want not to be asked for a password use this form
go2linux ALL=(ALL) ALL NO PASSWD: ALL

关于bash - Shell 脚本 - Sudo 权限随时间丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com