亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述用户组管理及用户提权相关的知识,希望能为你提供帮助。
用户组管理
## 相关文件
[root@Y ~]# cat /etc/group
root:x:0:
# 1.组名字
# 2.组密码占位符
# 3.GID
# 4.显示改组的附加成员
/etc/gshadow
root:::fujiachengyuan(附加成员)
# 1.组名字
# 2.组密码(空和!是没有密码)
# 3.组管理员
# 4.显示该组的附加成员
## 相关命令
# 增
groupadd [选项] 组名
## 选项
-g:指定组的gid
-r:指定gid范围201-999之间的系统组
## 举例
[root@Y ~]# groupadd yjt11(创建在group文件下)
[root@Y ~]# id yjt11
id: yjt11: no such user
[root@Y ~]# tail -l /etc/passwd
yjt01:x:1002:1002::/home/yjt01:/bin/bash
yjt02:x:1003:1003::/home/yjt02:/bin/bash
yjt03:x:1004:1004::/home/yjt03:/bin/bash
yjt04:x:1005:1005::/home/yjt04:/bin/bash
yjt05:x:1006:1006::/home/yjt05:/bin/bash
yjt06:x:1007:1007::/home/yjt06:/bin/bash
yjt07:x:1008:1008::/home/yjt07:/bin/bash
yjt08:x:1009:1009::/home/yjt08:/bin/bash
yjt09:x:1010:1010::/home/yjt09:/bin/bash
yjt10:x:1011:1011::/home/yjt10:/bin/bash
[root@Y ~]# tail -l /etc/group
yjt02:x:1003:
yjt03:x:1004:
yjt04:x:1005:
yjt05:x:1006:
yjt06:x:1007:
yjt07:x:1008:
yjt08:x:1009:
yjt09:x:1010:
yjt10:x:1011:
yjt11:x:1012:
# -g
[root@Y ~]# groupadd yjt200 -g 10000
[root@Y ~]# tail -1 /etc/group
yjt200:x:10000:
# -r
[root@Y ~]# tail -l /etc/group
yjt04:x:1005:
yjt05:x:1006:
yjt06:x:1007:
yjt07:x:1008:
yjt08:x:1009:
yjt09:x:1010:
yjt10:x:1011:
yjt11:x:1012:
yjt200:x:10000:
yjt300:x:996:
# 删
[root@Y ~]# groupdel yjt11
[root@Y ~]# groupdel yjt200
[root@Y ~]# groupdel yjt300
[root@Y ~]# groupdel yjt04
groupdel: cannot remove the primary group of user yjt04
(不能删除用户“yjt04”的主组)
# 改
groupmod
-g:修改组的gid
-n:修改组名字
[root@Y ~]# groupadd yjt -r
[root@Y ~]# tail -3 /etc/group
postfix:x:89:
test:x:1000:
yjt:x:996:
[root@Y ~]# groupmod -g 10086 yjt
[root@Y ~]# tail -3 /etc/group
postfix:x:89:
test:x:1000:
yjt:x:10086:
[root@Y ~]# groupmod -n yjt123 yjt
[root@Y ~]# tail -1 /etc/group
yjt123:x:10086:
[root@Y ~]# groupmod yjt123 -n yjt456(推荐使用,好理解)
[root@Y ~]# tail -1 /etc/group
yjt456:x:10086:
# 查
[root@Y ~]# cat /etc/group
用户身份切换
Linux系统中,有时候普通用户有些事情是没办法操作的,除非是root管理员用户才能做到。这时就需要临时切换到root管理员身份来做事情了。那么在学习如何切换用户之前,我们先来了解下用户工作环境。
如何在普通用户的情况下,完成日常工作?
1.su切换用户,使用普通用户登录,然后使用su命令切换到root。
优点:简单方便
缺点:需要知道root密码,不安全,切换到root没有日志审计功能
2.sudo提权,当需要使用root权限时,进行提权,而无需切换至root用户。
优点:安全,方便
缺点:复杂
## su命令前戏
shell的种类:
- 交互式shell
- 非交互式shell
- 登录shell
- 需要输入用户名和密码,才可以登录
- 非登录shell
- 不需要输入用户和密码,就可以登陆
## 系统的环境变量文件
# 局部环境变量
~/.bashrc
~/.bash_profile
## 全局环境变量
/etc/profile
/etc/profile.d/*.sh#(不会对profile产生错误操作导致的影响,会自己生成普通文件,修改的内容会出现在文件里,再生效)
/etc/bashrc
## 加载顺序
/etc/porfile
/etc/porfile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
sudo命令提取什么是sudo
sudo就是普通用户可以提权,执行root用户可以执行的命令
为什么要用到sudo
如果在公司中,入职后,领导给运维的用户是普通用户的话,有些命令只能root执行
sudo如何使用
# 1.系统的超级管理员(root)需要做sudo的配置(发一个兵符给指定的普通用户)
# 2.普通用户只需在,执行的命令之前,加上sudo即可
【用户组管理及用户提权】sudo的配置(root发兵符的过程)?
# 没有sudo命令,则需要安装
[root@Y ~]# yum install -y sudo
# sudo的配置文件:
[root@Y ~]# vim /etc/sudoers(不建议使用命令,修改错了没有提示)
# 用户名所有主机=(所有角色)所有命令的执行权限
rootALL=(ALL)ALL
testALL=(ALL)ALL
#普通用户也不需要输入自己的密码了
testALL=(ALL)NOPASSWD:ALL
## 推荐修改sudo的方式
[root@Y ~]# visudo(推荐使用)
-c:检查sudoers文件的语法
## 免密切换到root用户,就算不免密,也是输入test用户的密码,切换到root用户
[test@Y ~]$ sudo su -
Last login: Sat Apr9 21:19:00 CST 2022 on pts/0
[root@Y ~]#
## 报错
[test@Y ~]$ sudo ll
sudo: ll: command not found
原因:ll是别名,不是系统命令。sudo不走别名,只认识系统命令
## 普通用户以root身份执行命令
[test@Y ~]$ mkdir /root/yjt789#(错误示范)
mkdir: cannot create directory ‘/root/yjt789’: Permission denied
[test@Y ~]$ sudo mkdir /root/yjt789#(正确示范)
[test@Y ~]$ sudo ls -l /root
total 172
-rw-r--r--. 1 root root135 Mar 31 19:11 1.txt
-rw-r--r--. 1 root root 164034 Mar 26 13:35 blog.driverzeng.com_access.log
-rw-r--r--. 1 root root853 Mar 31 00:11 test.txt
drwxr-xr-x. 2 root root6 Apr9 21:32 yjt789
## sudoers 其他别名配置
Host_AliasFILESERVERS = localhost, web01
Cmnd_AliasZLSCMD= /bin/cp,/bin/mv
(不能出现
特殊符号)
Cmnd_Alias ZLSUNCMD =!/bin/rm,!/bin/su#(加感叹号不执行命令)
Cmnd_Alias:命令别名
Host_Alias:主机别名
User_Alias:角色别名
## 给组发兵符
%test666 ALL=(ALL) NOPASSWD:ALL
usermod 用户名-G 提权组
# 1.会修改visudo,添加用户提权
# 2.给用户免执行sudo的权限
# 3.自定义用户的可执行命令,和不可执行命令
# 4.给组分配提权的权限
# 5.提权不用修改visudo,只需要加入wheel组,即可
注意:除非企业中有要求,哪些命令需要用,哪些不能使用
推荐阅读
- N62-6
- 50-centos 安装jdk
- Jenkins Pipeline配置根据代码分支及自定义版本号构建打包
- #给定一个五位数,输出各个位置对应的数字,依次打印个十百千万位置
- 诺基亚猫棒G-010S-P刷机解决设备SN认证上网问题
- LINUX用户组管理及提权
- 百度信誉保障服务架构全解析
- 容器技术|Docker三剑客之docker-compose
- Linux 内核进程优先级与调度策略 ① ( SCHED_FIFO 调度策略 | SCHED_RR 调度策略 | 进程优先级 )