相对于使用 su 命令还需要新切换用户的密码,sudo 命令的运行只需要知道自己的密码即可,甚至于,我们可以通过手动修改 sudo 的配置文件,使其无需任何密码即可运行。
sudo 命令默认只有 root 用户可以运行,该命令的基本格式为:
sudo [选项] [-u 新使用者账号] 要执行的命令
常用的选项与参数:
-b :将后续的命令放到背景中让系统自行运行,不对当前的 shell 环境产生影响。
-u :后面可以接欲切换的用户名,若无此项则代表切换身份为 root 。
-l:此选项的用法为 sudo -l,用于显示当前用户可以用 sudo 执行那些命令。
SUDO 作用
sudo是linux系统权限管理,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。换句话说通过此命令可以让非root的用户运行只有root才有权限执行的命令。
这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。
SUDO 原理
是不是每一个新创建的用户都可以使用sudo提升命令的权限呢?如果不是那么哪些用户可以使用此命令呢?
要想使一个用户具有使用sudo的能力,需要让root用户将其名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息注册到/etc/sudoers文件中,即完成对该用户的授权(此时该用户称为“sudoer”)才可以。
当一般用户执行特殊权限时,在命令前加上 sudo,此时系统会让你输入密码以确认终端机前操作的是你本人,确认后系统会将该命令的进程以超级用户的权限运行。
在一定的时间段内,再次执行sudo的命令时不再询问密码,超出此时间段(一般为5分钟)后需要再次输入密码。
具体使用
此处假设公司的服务使用的是Ubuntu 18.04
操作系统
实习妹子牛翠花到”圣女果科技”公司实习报到时,组长王二狗需要给她创建一个可以使用sudo命令的账号该怎么做呢?
第一步:二狗首先登陆root账号,使用如下命令创建一个账号:cuiHuaNiu。
adduser cuiHuaNiu
在创建过程中需要指定cuiHuaNiu 账号的密码,以及其他个人信息,例如电话号码等,二狗还可以乘机要到妹子的电话。
第二步: 授予cuiHuaNiu管理员权限,也就是将其注册到/etc/sudoers文件中
默认情况下,在Ubuntu 18.04上有一个sudo的组,属于此组的用户都可以使用sudo命令,所以二狗只需要把cuiHuaNiu 加到sudo组里面即可。
usermod -aG sudo cuiHuaNiu
-a 参数表示附加,只和 -G 参数一同使用,表示将用户增加到组中。
第三步: 牛翠花就可以使用cuiHuaNiu 登录服务器,然后使用sudo来执行管理者才能执行的命令了。当然如果翠花有root权限也可以使用sudo -i 切换用户身份到root.
ssh cuiHuaNiu@sng.com
优势
sudo能够限制用户只在某台主机上运行某些命令。
sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。
《Linux视频教学》