小胖学Linux day16~17:用户组管理及用户提权

Posted 城南花已开。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小胖学Linux day16~17:用户组管理及用户提权相关的知识,希望对你有一定的参考价值。

用户组管理及用户提权

今日思维导图:

小胖学Linux

用户组管理

## 相关文件:
[root@03:46:14wudidesangege <sub>]\\ cat /etc/group
root:x:0:wykwd
bin:x:1:
# 1.组名字
# 2.组密码占位符
# 3.GID
# 4.显示该组的附加成员

[root@03:47:38wudidesangege </sub>]\\ cat /etc/gshadow
root:::wykwd
bin:::
# 1.组名字
# 2.组密码(空和!是没有密码)
# 3.组管理员
# 4.显示该组的附加成员

## 相关命令
# 增
groupadd [选项] 组名
例↓
[root@03:54:03wudidesangege <sub>]\\ groupadd wyk888
[root@03:54:23wudidesangege </sub>]\\ id wyk888
id: wyk888: no such user

## 选项
-g:指定组的gid
例↓
[root@03:57:16wudidesangege <sub>]\\ groupadd wyk999 -g 10086
[root@03:57:55wudidesangege </sub>]\\ tail -1 /etc/group
wyk999:x:10086:

-r:指定gid范围201-999之间的系统组
例↓
[root@03:58:18wudidesangege <sub>]\\ groupadd wyk777 -r
[root@03:58:57wudidesangege </sub>]\\ tail -1 /etc/group
wyk777:x:664:

# 删
groupdel 组名
[root@03:59:01wudidesangege <sub>]\\ groupdel wyk777

# 改
groupmod [选项] 用户名
## 选项
-g:修改组的gid
例↓
[root@03:59:27wudidesangege </sub>]\\ groupmod -g 10000 wyk888
[root@04:02:39wudidesangege <sub>]\\ tail -2 /etc/group
wyk888:x:10000:
wyk999:x:10086:

-n:修改组名字
例↓
[root@04:02:48wudidesangege </sub>]\\ groupmod -n wyk666 wyk888
[root@04:03:45wudidesangege <sub>]\\ tail -2 /etc/group
wyk999:x:10086:
wyk666:x:10000:

[root@04:04:51wudidesangege </sub>]\\ groupmod wyk666 -n wyk555
[root@04:04:58wudidesangege <sub>]\\ tail -2 /etc/group
wyk999:x:10086:
wyk555:x:10000:

# 查
[root@03:59:01wudidesangege </sub>]\\ cat /etc/group

用户身份切换

Linux系统中,有时候普通用户有些事情是没办法操作,除非是root管理员用户才能做到。这时就需要临时切换到

root管理员身份来做事了。那么在学习如何切换用户之前,我们先来了解下用户工作环境。

如何在普通用户的情况下,完成日常工作?

1:su 切换用户,使用普通用户登录,然后使用su命令切换到root。

优点:简单,方便

缺点:需要知道root密码,不安全,切换到root没有日志审计功能

2:sudo 提权,当需要使用root权限时,进行提权,而无需切换至root用户。

优点:安全,方便

缺点:复杂

su命令前戏

shell的种类:

  • 交互式shell
  • 非交互式shell
  • 登录shell
  • 需要输入用户名和密码,才可以登录
  • 非登陆shell
  • 不需要输入用户名和密码,就可以登录

系统的环境变量文件

## 局部环境变量:切换用户用户需要重新配置
<sub>/.bashrc
</sub>/.bash_profile

## 全局环境变量:所有用户都生效
/etc/profile
/etc/profile.d/*.sh #需要写的变量最好放在/etc/profile.d/ 方便删减
/etc/bashrc

## 5个文件变量文件的加载顺序
[root@04:04:51wudidesangege <sub>]\\ vim </sub>/.bashrc
1 # .bashrc
2 echo "第4加载了<sub>/.bashrc "

[root@04:04:51wudidesangege </sub>]\\ vim <sub>/.bash_profile
1 # .bash_profile
2 echo "第3加载了</sub>/.bash_profile"

[root@04:04:51wudidesangege <sub>]\\ vim /etc/profile
1 # /etc/profile
2 echo "第1加载了/etc/profile"

[root@04:04:51wudidesangege </sub>]\\ vim /etc/profile.d/zls.sh
1 echo "第2加载了/etc/profile.d/*.sh"

[root@04:04:51wudidesangege <sub>]\\ vim /etc/bashrc
1 # /etc/bashrc
2 echo "第5加载了/etc/bashrc"

#断开重连↓
Connecting to 10.0.0.101:22...
Connection established.
To escape to local shell, press Ctrl+Alt+].

Last login: Sun Apr 10 04:25:45 2022 from 10.0.0.1
第1加载了/etc/profile
第2加载了/etc/profile.d/*.sh
第3加载了</sub>/.bash_profile
第4加载了<sub>/.bashrc
第5加载了/etc/bashrc
[root@04:26:05wudidesangege </sub>]\\

# 正确顺序↓
/etc/profile
/etc/profile.d/*.sh
<sub>/.bash_profile
</sub>/.bashrc
/etc/bashrc

用户身份提权

什么是sudo

sudo就是普通用户可以提权,执行root用户可以执行的命令

为什么要用到sudo

如果在公司中,入职后,领导给运维的用户是普通用户,但是有些命令只能root执行

sudo如何使用

# 1.系统的超级管理员(root)需要做sudo的配置(发一个兵符给指定的普通用户)
# 2.普通用户只需要在,执行的命令之前,加上sudo即可

sudo的配置(root发兵符的过程)

小胖学Linux

# 没有sudo命令,则需要安装
[root@localhost <sub>]# yum install -y sudo

# sudo的配置文件:
[root@02:36:40wudidesangege </sub>]\\ vim /etc/sudoers
# 用户名 所有主机=(所有角色) 所有命令的执行权限
root ALL=(ALL) ALL
wyk ALL=(ALL) /bin/cp

# 普通用户也不需要输入自己的密码了
wyk ALL=(ALL) NOPASSWD:ALL

## 推荐修改sudo的方式
[root@localhost <sub>]$ visudo
-c:检查sudoers文件的语法
例↓
[root@02:49:38wudidesangege </sub>]\\ visudo -c
/etc/sudoers: parsed OK # OK说明sudo文件中都是正确的语法

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

#su - 默认切换root用户
[wykwyk@wudidesangege root]$ su -

## 免密切换到root用户,就算不免密,也是输入zls用户的密码,切换到root用户
[wykwyk@wudidesangege root]$ sudo su -

## 普通用户以root身份执行命令
[wykwyk@wudidesangege root]$ mkdir /root/wyk_sudo
mkdir: cannot create directory ‘/root/wyk_sudo’: Permission denied

[wykwyk@wudidesangege root]$ ls -l /root/
ls: cannot open directory /root/: Permission denied

[wykwyk@wudidesangege root]$ sudo ls -l /root/
total 25060
-rw-r--r--. 1 root root 4361 Apr 10 03:20 !
-rw-r--r--. 1 root root 0 Mar 30 01:27 1001

[wykwyk@wudidesangege root]$ sudo mkdir /root/wyk_sudo
[wykwyk@wudidesangege root]$ sudo ls -l /root/
total 25060
drwxr-xr-x. 2 root root 6 Apr 10 03:32 wyk_sudo

## 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:角色别名

## 给组发兵符
%wyk ALL=(ALL) NOPASSWD:ALL
# % 代表组

usermod 用户名 -G 提权组
例↓
[root@03:45:08wudidesangege ~]\\ usermod wyk1 -G wyk

# 1.会修改visudo,添加用户提权
# 2.给用户免密执行sudo的权限
# 3.自定义用户的可执行命令,和不可执行命令
# 4.给组分配提权的权限
# 5.提权不用修改visudo,只需要加入wheel组,即可

注意:除非企业中有要求,哪些命令需要用,哪些不能使用


以上是关于小胖学Linux day16~17:用户组管理及用户提权的主要内容,如果未能解决你的问题,请参考以下文章

小胖学Linux day14:用户管理

小胖学Linux day42~43:NFS共享存储

小胖学Linux day10:文件管理命令4

小胖学Linux day26~27:yum管理工具

小胖学LInux day28:自制YUM仓库

小胖学Linux day11:文件的属性及类型