linux-sudo

一、sudo简介

sudo表示“superuser do”,它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或root用户。我们经常用sudo来提升自己的权限去执行命令。

sudo命令与安全策略配合使用,默认安全策略是sudoers,可以通过编辑 /etc/sudoers 来配置。

二、配置sudo

1、/etc/sudoers 配置文件

/etc/sudoers 这个文件记录着谁可以用sudo命令来提升权限,添加普通用户为 sudo用户。

添加记录的格式为:

who where=(whom:group) command

其实就是“哪个用户在哪个主机以某个组谁的身份执行什么命令”。这里的主机是指通过哪台机器ssh上来的;group可以省略,表示不限制组。

例如,在 /etc/sudoers 中对于root用户的记录为:

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

root:表示root用户。如果这个参数前带有百分号,则代表这个用户组。如 %admin,表示amdin组的用户。

ALL:表示从任何主机上都可以执行

ALL:表示可以以任何人的身份执行

ALL:表示任何命令

解释为:用户root可以在任何主机以任何人的身份执行所有命令。

例如配置普通用户hao可以使用root身份执行mkdir命令:

hao ALL=(ALL) /usr/bin/mkdir

2、通过将普通用户添加到sudo组来提升用户权限

编辑配置文件 /etc/sudoers 给用户添加 sudo 权限,不过还有一种更加简单的方法,就是将用户添加到 sudo 或者 admin用户组(需要将这sudo组在sudoers文件中配置权限)。下面使用命令

#创建sudo组
groupadd sudo

#将用户hao添加至sudo 组
usermod -G sudo hao

#在/etc/sudoers 中配置 sudo 组权限
vi /etc/sudoers

#添加记录:
%sudo ALL=(ALL) ALL

然后就将普通用户hao添加至sudo组,sudo组在/etc/sudoers 中赋予了权限。

 

注意:

1、(ALL)和(ALL:ALL)的区别。test1:test2表示test2组的test1用户。如果仅仅使用(ALL),那么sudo无法使用 -g 来指定用户组运行程序。

2、root    ALL=(ALL,!root)  ALL,其中“!root”,表示允许以除root以外的用户的身份执行命令。

3、不允许执行某个命令,也使用感叹号“!”去排除。

4、为用户定义可以运行的命令时,必须使用完整的命令路径。这样做是完全出于安全的考虑,如果我们给出的命令只是简单的userad 而非 /usr/sbin/useradd,那么用户有可能创建一个他自己的脚本,也叫做userad,然后放在它的本地路径中,如此一来他就能够通过这个名为 useradd的本地脚本,作为root来执行任何他想要的命令了。

三、sudo免密配置

略过。

四、sudo命令及参数

-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

具体实例和讲解可参考:

https://wangchujiang.com/linux-command/c/sudo.html

五、sudo与su

在Linux/GNU中,有两种方式可以用来提升权限运行命令:sudo 和 su 

su 表示 “swich user”。使用 su 命令,我们可以切换到root用户并执行命令。但这种方式有一些缺点:

①需要与别人共享root密码;②无法审查用户执行的命令;③对于root用户,不能授予有限的权限。

sudo以独特的方式解决了这些问题,

①不需要共享root密码,普通用户可以使用自己的密码提升权限执行命令;②sudo操作的记录都会被记录下来,管理员可随时审查用户的操作;③可控的sudo用户访问,可以限制普通用户只能执行哪些命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值