Linux
基础知识
01搭建Centos7系统
02软件管理仓库
03Shell
04查看帮助命令
05系统工作命令
06系统状态检测命令
07工作目录切换命令
08文本文件编辑命令
09文件目录管理
10打包压缩与搜索命令
11输入输出重定向
12管道符与通配符
13Vim编辑器
14Shell脚本
15shell流程控制语句
16用户管理操作
17文件权限与归属
18文件隐藏属性
19文件访问控制列表
20su与sudo
21存储结构
22物理设备命名规则
23文件系统
24挂载硬件设备
25虚拟机添加硬盘设备
26系统中操作添加硬盘设备
27添加交换分区
28磁盘容器配额
29软硬方式链接
30RAID
31LVM
32程序安装与管理
33计划任务
34日志文件分析
35测试网络联通性
36FTP服务
37操作系统基本符号
38操作系统三剑客
39shell基础
40shell语法
41DNS
42Apache概述
43Nginx概述
44集群概述
Vmware安装Ubuntu
更换源
-
+
首页
20su与sudo
## su su 命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从 root 管理员切换至普通用户:  注意:如果使用了减号,即su - username,这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。 当从 root 管理员切换到普通用户时是不需要密码验证的,而从普通用户切换成 root管理员就需要进行密码验证了;  ## sudo 使用 su 命令后,普通用户可以完全切换到 root 管理员身份来完成相应工作,但这将暴露 root 管理员的密码,从而增大了系统密码被黑客获取的几率。 sudo 命令把特定命令的执行权限赋予给指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露 root 管理员密码。 合理配置 sudo 服务,以便兼顾系统的安全性和用户的便捷性。sudo 服务的配置原则也很简单—在保证普通用户完成相应工作的前提下,尽可能少地赋予额外的权限。 sudo 命令用于给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务。 格式:`sudo [参数] 命令名称` 常用参数 | 参数 | 作用 | | ---------------- | ------------------------------------------------------ | | -h | 列出帮助信息 | | -l | 列出当前用户可执行的命令 | | -u 用户名或UID值 | 以指定的用户身份执行命令 | | -k | 清空密码的有效时间,下次执行sudo时需要再次进行密码验证 | | -b | 在后台执行指定的命令 | | -p | 更该询问密码的提示语 | sudo的功能如下: - 限制用户执行指定的命令; - 记录用户执行的每一条命令; - 配置文件(etc/suduers)提供集中的用户管理、权限与主机等参数; - 验证密码的后五分钟(默认值)无需再让用户再次验证密码。 注意:如果担心直接修改配置文件会出现问题,则可以使用 sudo 命令提供的 visudo 命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改 sudoers 配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。   > 关闭sudo的密码验证 每次执行 sudo 命令后都会要求验证一下密码。虽然这个密码就是当前登录用户的密码,但是每次执行 sudo 命令都要输入一次密码其实也挺麻烦的,这时可以添加 NOPASSWD 参数,使得用户执行 sudo 命令时不再需要密码验证。 **ALL=NOPASSWD: /usr/sbin/poweroff**  > 赋予有限的权限 考虑到生产环境中不允许某个普通用户拥有整个系统中所有命令的最高执行权(这也不符合前文提到的权限赋予原则,即尽可能少地赋予权限),因此 ALL 参数就有些不合适了。因此只能赋予普通用户具体的命令以满足工作需求,这也受到了必要的权限约束。如果需要让某个用户只能使用 root 管理员的身份执行指定的命令,切记一定要给出该命令的绝对路径,否则系统会识别不出来。  
毛林
2025年9月12日 20:44
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码