欢迎光临散文网 会员登陆 & 注册

【技巧】Ubuntu临时授予用户sudo权限,并在一定时间后自动撤销

2023-09-25 16:29 作者:小锋学长生活大爆炸  | 我要投稿

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

目录

背景说明

开始操作

at指令


背景说明

        有时候普通用户需要使用sudo来执行一些操作,作为服务器管理员,需要盯着该用户使用完后再给他撤销sudo权限。当用户多起来的时候,这项工作就很麻烦了。通过自动定时撤销sudo权限,当我们给完了sudo之后就可以不用管了,甚至还可以做一个sudo权限申请的脚步,做到自动申请自动撤销。


开始操作

        1、授予用户 sudo 权限: 添加用户到 /etc/sudoers 文件或 /etc/sudoers.d/ 目录下的文件。这可以通过 visudo 工具或直接编辑相应文件来完成。(不建议直接操作/etc/sudoers)

        例如,要为用户名为 username 的用户授予 sudo 权限,可以使用以下命令:

echo "username ALL=(ALL:ALL) ALL" | sudo tee -a /etc/sudoers.d/temporary_sudo


        2、设置一个计划任务来在 1 小时后撤销权限: 使用 at 命令可以很容易地设置这样的计划任务。首先,确保 at 被安装,还需要启动 at 守护进程:

sudo apt install at -y sudo systemctl enable --now atd


        接着,设置一个任务来在 1 小时后删除先前创建的文件(注意,普通任务不需要加sudo,但由于这里是要操作/etc目录,所以at前面需要加上sudo,不然会执行失败):

echo "sudo rm /etc/sudoers.d/temporary_sudo" | sudo at now + 1 hours

        这样,用户将立即获得 sudo 权限,然后在 1 小时后,计划任务会自动删除先前创建的文件,从而撤销该用户的 sudo 权限。

        请注意,当对 /etc/sudoers 文件或 /etc/sudoers.d/ 目录中的文件进行更改时,一定要小心,因为不正确的更改可能会导致系统不稳定或者失去 sudo 访问权限。


at指令

        at 命令的格式非常简单,基本格式如下:

at [选项] [时间]


        at 命令只要指定正确的时间,就可以输入需要在指定时间执行的命令。这个命令可以是系统命令,也可以是 Shell 脚本。

        使用 atq 命令用于查看当前等待运行的工作,atrm 命令后者用于删除指定的工作。

【技巧】Ubuntu临时授予用户sudo权限,并在一定时间后自动撤销的评论 (共 条)

分享到微博请遵守国家法律