用户管理及用户提权

少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述用户管理及用户提权相关的知识,希望能为你提供帮助。
目录:
用户管理及用户提权
用户组管理
用户身份切换
SU命令前戏
系统的环境变量文件
用户身份提权
sudo命令提权
sudo的配置(root发兵符的过程)
——————————————————————————————?
用户组管理
##组相关文件:/etc/group
0 ? 22:22:49 root@jinnan,10.0.0.101:~ # cat /etc/group
root:x:0:jinnan
bin:x:1:
#1:组名
#2:组密码站位
#3:GID
#4:显示该组的附加成员

/eyc/gshadow
22:26:35 root@jinnan,10.0.0.101:~ # cat /etc/gshadow
root:::jinnan
bin:::
#1:组名
#2:组密码(空和!是没有密码)
#3:组管理员
#4:显示该组的附加成员

##组的相关命令
#增
groupadd 选项   组名

##选项
-g:指定组的gid
-r:指定gid的范围201-999之间的系统组

##举例
22:32:49 root@jinnan,10.0.0.101:~ # groupadd jin100
22:33:01 root@jinnan,10.0.0.101:~ # tail -1 /etc/group
jin100:x:1033:

#-g
22:36:36 root@jinnan,10.0.0.101:~ # groupadd jin200 -g 6666
  0 ? 22:37:00 root@jinnan,10.0.0.101:~ # tail -1 /etc/group
jin200:x:6666:
#-r
0 ? 22:37:18 root@jinnan,10.0.0.101:~ # groupadd jin300 -r
  0 ? 22:38:01 root@jinnan,10.0.0.101:~ # tail -1 /etc/group
jin300:x:664:

#删除组
groupdel

0 ? 22:38:42 root@jinnan,10.0.0.101:~ # groupdel jin300

#更改组
groupmod
-g:修改组的gid
-n:修改组的名字

##举例
jin200:x:6666:
  0 ? 22:39:00 root@jinnan,10.0.0.101:~ # groupmod jin200 -g 3333
  0 ? 22:41:01 root@jinnan,10.0.0.101:~ # tail -1 /etc/group
jin200:x:3333:
0 ? 22:41:17 root@jinnan,10.0.0.101:~ # groupmod jin200 -n nan200
  0 ? 22:41:47 root@jinnan,10.0.0.101:~ # tail -1 /etc/group
nan200:x:3333:

#查看组文件信息
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
/etc/bashrc

## 加载顺序
#:/etc/profile----/etc/profile.d/*.sh----~/.bash_profile----~/.bashrc---
-/etc/bashrc
___________________________________________________________________________
用户身份提权
sudo命令提权
什么是sudo
sudo就是普通用户可以提权,执行root用户可以执行的命令
为什么要用到sudo
如果在公司中,入职后,领导给运维的用户时普通用户,但是有些命令只能root执行
sudo如何使用
#1.系统的超级管理员(root)需要做sudo的配置(发一个兵符给指定的普通用户)
#2.普通用户只需要在执行的命令前面,加上sudo即可
sudo的配置(root发兵符的过程)


# 没有sudo命令,则需要安装:yum install -y sudo
#sudo的配置文件:
0 ? 17:17:32 root@jinnan,10.0.0.101:~ # vim /etc/sudoers

# 用户名   所有主机=(所有角色) 所有命令的执行权限
root         ALL=(ALL)           ALL
#                             普通用户也不需要输入自己的密码了
tangli       ALL=(ALL)             NOPASSWD:ALL
#推荐修改sudo配置文件的方式:
0 ? 17:30:44 root@jinnan,10.0.0.101:~ # visudo
  -c:检查sudoers文件的语法是否正确
 
## 免密切换到root用户,就算不免密,也是输入zls用户的密码,切换到root用户
[tangli@jinnan ~]$ sudo su -
Last login: Sun Apr 10 17:17:32 CST 2022 from 10.0.0.1 on pts/0
  0 ? 17:33:20 root@jinnan,10.0.0.101:~ #

#报错
[tangli@jinnan ~]$ sudo ll
sudo: ll: command not found
原因:ll是别名,不是系统命令,sudo不走别名,只认识系统命令

##普通用户执行root命令
[tangli@jinnan ~]$ mkdir /root/jin4

mkdir: cannot create directory ‘/root/jin4’: Permission denied
翻译: (mkdir:不能创建目录 /root/jin :权限被拒绝 )
[tangli@jinnan ~]$ sudo mkdir /root/jin4

##sudoers其他别名配置
Host_Alias FILESERVERS = localhost, web01
Cmnd_Alias ZLSCMD = /bin/cp,/bin/mv
Cmnd_Alias ZLSUNCMD =!/bin/rm,!/bin/su #!:不可以使用该命令
Cmnd_Alias:命令别名
Host_Alias:主机别名
User_Alias:角色别名

## 给组发兵符
%wheel   ALL=(ALL)       ALL
usermod 用户名 -G 提权组
# 1.会修改visudo,添加用户提权
# 2.给用户免密执行sudo的权限
# 3.自定义用户的可执行命令,和不可执行命令
# 4.给组分配提权的权限
# 5.提权不用修改visudo,只需要加入wheel组,即可
注意:除非企业中有要求,哪些命令需要用,哪些不能使用

















    推荐阅读