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 的密码:
*/

posted @ 2019-12-25 01:09  ritchy  阅读(1231)  评论(0)    收藏  举报