作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。但是我们之前所有的操作都是基于超级管理员root来操作的,从Linux设计来说,是不推荐的。因为root的权限太大,所以才需要普通用户来进行日常运维,那如果普通用户需要做的操作需要root权限的时候又怎么做的,我们将通过以下几个方面来讲解。
1.linux用户
2.linux用户组
3.Linux用户-su命令
4.Linux用户-sudo命令(本章节)
上一章,我们讲了使用su命令切换到root权限进行操作,本章节继续讲解sudo命令来临时提权。
sudo 是类 Unix 系统(如Linux、BSD等)中的一个命令,用于允许授权用户以另一个用户的身份执行命令。它的名称来源于"Superuser Do"(超级用户执行),用于执行需要超级用户权限(通常是 root 用户权限)的任务,而无需直接切换到 root 用户。
sudoers 文件详细控制哪些用户可以以哪些用户的身份执行哪些命令,以及在哪些主机上执行。sudo 的使用可以被记录和审计,管理员可以了解哪些用户在何时执行了哪些特权操作,有助于系统安全和问题追踪。sudo 允许更细粒度地控制用户对系统的访问权限,减少了误操作和滥用特权的风险。sudo command这会使用默认设置(通常是执行者的密码)尝试以 root 用户执行 command 命令。
sudo -u username command这会以 username 用户的身份执行 command 命令。
sudoedit file
sudo vi file //也可以这样这会使用默认编辑器(通常是 vi 或 nano)以超级用户权限编辑 file 文件。
sudo 的配置文件通常是 /etc/sudoers,第一次使用应该使用root用户来操作该文件,因为在没有配置的情况下,普通用户是没权限操作这个文件的。sudo yum updae这会使用 sudo 命令以 root 权限执行 yum update 命令,从而更新系统软件包列表。
sudoedit /etc/nginx/nginx.conf
sudo vi /etc/nginx/nginx.conf //也直接直接这样这会使用 sudoedit 命令以 root 权限编辑 Nginx 的配置文件。
sudo 会要求用户输入自己的密码来验证身份。sudoers 文件,确保只有可信用户可以执行特权操作,并限制执行的具体命令和参数。sudo 来执行需要特权的任务,以避免潜在的安全风险和操作失误。# Allow root to run any commands anywhere
root ALL=(ALL) ALL
#需要添加这行,user01才有使用sudo命令的权限
user01 ALL=(ALL) ALL 2.免密使用sudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
#修改成这样,就可以免密使用sudo命令
user01 ALL=(ALL) NOPASSWD:ALL总结
sudo visudo