Linux环境下为普通用户添加sudo权限和使用期限
背景
sudo是Linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部root命令的一个工具。Linux系统下,为了安全,一般来说我们操作都是在普通用户下操作,但是有时候普通用户需要使用root权限,比如在安装软件的时候。这个时候如果我们切回root用户下效率就会比较低,所以用sudo命令就会很方便。
安装sudo
设置之前必须得安装sudo,安装方法
yum install sudo //这个安装包很小,不到1M
设置
(1)进入root用户,打开sudoers文件
su root //进入root用户
vim /etc/sudoers //打开sudo的配置文件
修改sudoers文件
先找到如下图所示的一行 (root ALL=(ALL)ALL)
然后给普通用户test添加sudo权限,在“root ALL=(ALL)ALL”这一行下面,加入如下图所示的一行(用户名 ALL=(ALL) ALL),并保存。
有些小伙伴可能会注意到sudoers文件只是一个只读文件,其实强制修改的话也没关系,但是如果你觉得不安全,可以在修改文件之前先赋予文件写权限(W),修改保存之后再收回写权限,操作如下
chmod u+w /etc/sudoers
//进行修改,修改完成之后:
chmod u-w /etc/sudoers
测试
现在已经给test用户sudo权限了,我们试着用一下sudo命令在test用户下创建安装一个gcc,现象如下:(完全可以安装)
---------------------------------------------------------------------------
--创建账户、sudo权限、密码使用期限和查询
--账户创建
useradd testsj
passwd testsj
--输入密码
[root@testdb ~]# ll /etc/sudoers
-r--r----- 1 root root 4.3K 9月 30 2020 /etc/sudoers
--授权写
[root@testdb ~]# chmod u+w /etc/sudoers
-rw-r----- 1 root root 4.3K 9月 30 2020 /etc/sudoers
--修改sudoers文件
vim /etc/sudoers
先找到如下图所示的一行 (root ALL=(ALL)ALL)
root ALL=(ALL) ALL
testsj ALL=(ALL) NOPASSWD:ALL
--回收写权限
[root@testdb ~]# chmod u-w /etc/sudoers
--免密进入root用户
[testsj@testdb ~]\$ sudo -i
[root@testdb ~]#
testsj ALL=(ALL) ALL
--输密码
[testsj@testdb ~]\$ sudo -i
[sudo] testsj 的密码:
[root@testdb ~]#
--使用chage命令设置密码使用期限
--sudo chage -E `date -d "+1 days" +%Y-%m-%d` testsj
[root@testdb ~]# sudo chage -E `date -d "+60 days" +%Y-%m-%d` testsj
--查看用户密码过期信息
[root@testdb ~]# sudo chage -l testsj
最近一次密码修改时间 :2月 28, 2025
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :4月 29, 2025
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
/*
[testsj@testdb ~]\$ sudo -
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] testsj 的密码:
*/