su命令可以解决切换用户身份的需求,强烈建议在切换用户身份时添加减号(-)。这个意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息。
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo \[参数\] 命令名称”
**sudo服务的参数及作用**
参数
作用
-h
列出帮助信息
-l
列出当前用户可执行的命令
-u用户名或UID值
以指定的用户身份执行命令
-k
清空密码的有效时间,下次执行sudo时需再次进行密码验证
-b
在后台执行指定的命令
-p
更改询问密码的提示语
总结来说,sudo命令具有如下功能:
- 限制用户执行指定的命令;
- 记录用户执行的每一条命令;
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
- 验证密码的后5分钟内(默认值)无须再让用户再次验证密码
如果担心直接修改配置文件出现问题,则用**visudo命令**来配置用户权限。这个命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。
注:只有root管理员才可以使用visudo命令编辑sudo服务的配置文件。
如:在第99行填信息
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
visudo
96 ##
97 ## Allow root to run any commands anywhere
98 root ALL=(ALL) ALL
99 linuxprobe ALL=(ALL) ALL
然后切换到普通用户,就可以sudo -l查看所有可执行的命令。
在实际生产中不允许某个普通用户拥有整个系统的所有命令最高执行权,因此上面的ALL参数就有些不适合了。
注:让某用户使用root管理员身份执行指定的命令,一定要给出该命令的绝对路径。
可以用whereis查看命令的绝对路径,比如cat,whereis cat
可以把上面99行改成:
99 linuxprobe ALL=(ALL) /usr/bin/cat
保存后,su – linuxprobe
cat /etc/shadow(结果是没有权限打开)
sudo cat /etc/shadow (可以看到里面的内容了)
注:上面每次sudo都要验证下密码,可以添加NOPASSWD参数,使得用户执行sudo命令时不再需要密码验证。linuxprobe ALL=NOPASSWD : /usr/sbin/poweroff
- 常用的RPM软件包命令
- 常见的Yum命令
- Linux开机过程
- Systemd初始化进程服务的劣势:
- system 与 system V init 的区别以及作用
- systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
- systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
- 主流 Linux 系统选择 Bash 解释器作为命令行终端主要有以下 4 项优势
- 常见执行Linux命令的格式:
- man命令中常用按键以及用途
- man命令帮助信息的接个欧以及意义
- 常用系统命令(10)
- 系统状态检测命令(8)
- 工作目录切换命令(3)
- 文本文件编辑命令(9)
- 文件目录管理命令(7)
- 打包压缩与搜索命令(3)
- 输入输出重定向
- 管道命令符
- 命令行的通配符
- 常用的转义字符
- 重要的环境变量
- Vim文本编辑器
- 编写Shell脚本
- 流程控制语句
- 计划任务服务程序
- 用户身份与文件权限
- 文件权限与归属
- 文件的隐藏属性
- 文件访问控制列表
- su命令与sudo服务
- 存储结构与磁盘划分
- 使用RAID与LVM磁盘阵列技术
- iptables与firewalld防火墙
- 使用SSH服务管理远程主机