Linux 用户管理知识与应用实践(五:visudo 和 sudo)

📅 2026/7/10 1:55:03
Linux 用户管理知识与应用实践(五:visudo 和 sudo)
Linux 用户管理知识与应用实践本章将深入讲解用户管理的知识并带领小伙伴们实践 Linux 运维中有关用户管理的工作。十三、visudo编辑 sudoers 文件的工具1、visudo 命令介绍visudo 命令是专门用来编辑 /etc/sudoers 这个文件的同时它还提供了语法检查等功能。其中/etc/sudoers 文件是 sudo 命令的配置文件。visudo [option] visudo [选项]表 14-16 visudo 命令的参数选项及说明参数选项解释说明-c手动执行语法检查2、visudo 命令范例范例14-22执行 visudo 对普通用户 oldgirl 授权的例子。执行如下 visudo 命令即可打开 sudo 的配置文件进行编辑[rootshy ~]# visudo # 相当于直接执行vim /etc/sudoers编辑但使用命令方式更安全推荐此种方式。 ## Sudoers allows particular users to run various commands as ## the root user, without needing the root password. ## ## Examples are provided at the bottom of the file for collections ## of related commands, which can then be delegated out to particular ## users or groups. ## ## This file must be edited with the visudo command. ## Host Aliases ## Groups of machines. You may prefer to use hostnames (perhaps using ## wildcards for entire domains) or IP addresses instead. # Host_Alias FILESERVERS fs1, fs2 # Host_Alias MAILSERVERS smtp, smtp2 ## User Aliases ## These arent often necessary, as you can use regular groups ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname ## rather than USERALIAS # User_Alias ADMINS jsmith, mikem ... ... ... ## Allow root to run any commands anywhere root ALL(ALL) ALL oldgirl ALL(ALL) ALL # 添加次行授权oldgirl使其可以以root身份添加和删除用户权限 ... ... ... /etc/sudoers.tmp 120L, 4328C表 14-17 sudo 提权配置说明待授权的用户或组机器 授权角色可以执行的命令userMACHINECOMMANDSoldgirlALLALLusr/sbin/useradd, /usr/sbin/userdel如果是针对用户组则对应的授权命令如下%用户组 机器授权使用哪个角色的权限 /usr/sbin/useradd通过 sudo 命令进行系统的授权管理的目的是既能让运维人员正常工作又不会威胁到系统的安全还可以审计用户使用 sudo 的提权操作命令默认的用户是无法获得 root 权限的。为了管理方便工作中可以为 oldgirl 授权 ALL 权限oldgirl 既可管理整个系统平时也可以使用 oldgirl 用户处理工作而不使用 root 用户。十四、以另一个用户身份执行命令sudo1、sudo 命令介绍sudo 命令可以让普通用户在执行指定的命令或程序时拥有超级用户也可以是其他用户的权限并且可以有针对性地精细将不同命令或程序授予指定的普通用户同时普通用户不需要知道 root 密码就可以得到授权这个授权可以使用 visudo 配置管理。sudo [option] sudo [选项]表 14-18 sudo 命令的参数选项及说明2、sudo 命令范例范例14-24查看用户被 visudo 授权后拥有的权限。[oldgirlshy ~]$ ls /root # oldgirl 用户是无法直接访问/root 家目录的 ls: 无法打开目录/root: 权限不够 [oldgirlshy ~]$ sudo ls /root # 如果授权配置中含有 NOPASSWD则执行时将不提示密码否则会要求输入当前用户的密码。 我们信任您已经从系统管理员那里了解了日常注意事项。 总结起来无外乎这三点 #1) 尊重别人的隐私。 #2) 输入前要先考虑(后果和风险)。 #3) 权力越大责任越大。 [sudo] oldgirl 的密码 \ data file1.txt oldboy2 oldboy.txt test02.txt test.sh alex.txt data1 hello.txt oldboy.log server test1.txt test.txt anaconda-ks.cfg dir1 log oldboy.loh test test2.txt user.txt cron.sh dir2 oldboy oldboy_new.txt test01.txt test3.txt xx说明通过 sudo 授权管理后所有用户执行授权的特殊权限格式为 “sudo 命令”。如果需要切换到 root 执行相关操作则可以通过 “sudo su -” 命令注意此命令提示的密码为当前用户的密码而不是 root 的密码。执行 “sudo -l” 命令可以查看当前用户被授予的 sudo 权限集合。生产环境中通常会禁止 root 远程登录不过系统会为每个运维人员建立一个普通账号然后根据运维人员的需求通过 sudo 控制登录系统的权限事实证明这是一个不错的权限管理方式。3、sudo 拓展知识a. 时间戳文件位置[rootshy ~]# ll /var/run/sudo/ 总用量 0 drwx------ 2 root root 60 7月 8 16:52 ts待用户执行 sudo 并且输入密码后用户会获得一张默认存活期为 5 分钟的 “入场券”默认值可以在编译的时候改变。但超时以后 用户就必须重新输入密码了。 可以使用 sudo 的 -k 或 -K 参数清空 sudo 用户的时间戳这样还会提示输入密码但是如果配置授权对应的用户时加入了 NOPASSWD 选项 那么执行 sudo 命令时就永久不会提示输入密码了。b. sudo 的配置文件 /etc/sudoers[rootshy ~]# ll /etc/sudoers # 查看 sudo 的配置文件 /etc/sudoers 的内容。 -r--r----- 1 root root 4356 7月 8 16:36 /etc/sudoers建议使用 visudo 编辑这个文件因为该命令带有语法检查否则一旦出错了普通用户就会无法使用 sudo 了。直接在命令行执行 visudo 即可自动打开 /etc/sudoers 文件。如果是通过 vi 来编辑 /etc/sudoers则在保存时要使用 “wq” 强制保存否则会提示只读不能保存的错误而且最后还要用 visudo -c 做语法检查这样做比较麻烦无特殊要求时建议都使用 visudo 编辑 sudo 的配置文件。