用户组管理及用户提权

Posted 少年已不年少

tags:

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

一. 用户组管理

组账户信息保存在/etc/group和/etc/gshadow两个文件中。
1)相关文件

## 相关文件
/etc/group ## 用户组信息配置文件
/etc/gshadow ## 用户组密码存储文件
# /etc/group

# 举例:
[root@Quanyi ~]# cat /etc/group
root:x:0:
# 1.组名字
# 2.组密码占位符
# 3.GID
# 4.显示该组的附加成员
# /etc/gshadow

# 举例:
[root@Quanyi ~]# cat /etc/gshadow
anhu:!::shanghai9
# 1.组名字
# 2.组密码(空和!是没有密码)
# 3.组管理员
# 4.显示该组的附加成员

2)相关命令

# 增
groupadd [选项] 组名

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

## 举例:
[root@Quanyi <sub>]# groupadd jiangsu2
[root@Quanyi </sub>]# id jiangsu2
id: jiangsu2: no such user
[root@Quanyi <sub>]# tail -1 /etc/passwd
shanghai1:x:1019:1019::/home/shanghai1:/bin/bash
[root@Quanyi </sub>]# tail -1 /etc/group
jiangsu2:x:1020:

# -g
举例:
[root@Quanyi <sub>]# groupadd jiangsu3 -g 11123
[root@Quanyi </sub>]# tail -1 /etc/group
jiangsu3:x:11123:

# -r
举例:
[root@Quanyi <sub>]# groupadd jiangsu4 -r
[root@Quanyi </sub>]# tail -1 /etc/group
jiangsu4:x:775:

# 删
举例:
[root@Quanyi <sub>]# groupdel jiangsu2
[root@Quanyi </sub>]# tail -5 /etc/group
jiangsu:x:1017:
jiangsu1:x:1018:
shanghai1:x:1019:
jiangsu3:x:11123:
jiangsu4:x:775:

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

# -g
举例:
[root@Quanyi <sub>]# groupmod -g 10011 jiangsu3
[root@Quanyi </sub>]# tail -2 /etc/group
jiangsu3:x:10011:
jiangsu4:x:775:

# -n
举例:
[root@Quanyi <sub>]# groupmod jiangsu4 -n huangpu
[root@Quanyi </sub>]# tail -3 /etc/group
shanghai1:x:1019:
jiangsu3:x:10011:
huangpu:x:775:

# 查
[root@Quanyi ~]# cat /etc/group

3)使用​​gpasswd​​设置组密码 [了解即可]


[root@zls <sub>]# groupadd devops
[root@zls </sub>]# gpasswd devops
Changing the password for group devops
New Password:
Re-enter new password:

4)使用​​newgrp​​命令切换基本组身份 [了解即可]


//检查账户信息
[root@docker <sub>]# useradd zls
[root@docker </sub>]# id zls
uid=1069(zls) gid=5005(zls) groups=5005(zls)

//切换普通用户
[root@docker <sub>]# su - zls

//创建新文件,并验证权限
[zls@docker </sub>]$ touch file_roots
[zls@docker <sub>]$ ll
-rw-rw-r-- 1 zls zls 0 Jun 13 10:06 file_roots

//切换组信息
[zls@docker </sub>]$ newgrp devops
Password:

//建立文件,检查权限
[zls@docker <sub>]$ touch file_test
[zls@docker </sub>]$ ll
total 0
-rw-rw-r-- 1 zls zls 0 Jun 13 10:06 file_roots
-rw-r--r-- 1 zls devops 0 Jun 13 10:08 file_test

二. 用户身份切换

Linux系统中,有时候普通用户有些事情是没办法操作,除非是root管理员用户才能做到。这时就需要临时切换到
root管理员身份来做事了。那么在学习如何切换用户之前,我们先来了解下用户工作环境。
如何在普通用户的情况下,完成日常工作?
1)su 切换用户,使用普通用户登录,然后使用su命令切换到root。
优点:简单,方便
缺点:需要知道root密码,不安全,切换到root没有日志审计功能
2)sudo 提权,当需要使用root权限时,进行提权,而无需切换至root用户。
优点:安全,方便
缺点:复杂

su命令前戏

1)shell的种类


  • 交互式shell
  • 非交互式shell
  • 登录shell

需要输入用户名和密码,才可以登录

  • 非登录shell

不需要输入用户名和密码,就可以登录
2)bash shell 系统的环境变量文件

## 局部环境变量
<sub>/.bashrc
</sub>/.bash_profile

## 全局环境变量
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc

## 加载顺序
[Thu Apr 07 - zls root@localhost <sub>]$ vim </sub>/.bashrc
[Thu Apr 07 - zls root@localhost <sub>]$ vim </sub>/.bash_profile
[Thu Apr 07 - zls root@localhost <sub>]$ vim /etc/profile
[Thu Apr 07 - zls root@localhost </sub>]$ vim /etc/profile.d/zls.sh
[Thu Apr 07 - zls root@localhost <sub>]$ vim /etc/bashrc

# 加载顺序 (重点要记住)
/etc/profile
/etc/profile.d/*.sh
</sub>/.bash_profile
~/.bashrc
/etc/bashrc

三. 用户身份提权

1)sudo命令提权什么是sudo

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

为什么要用到sudo

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

sudo如何使用

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

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

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

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

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

## 推荐修改sudo的方式:
[root@Quanyi <sub>]# visudo
-c:检查sudoers文件的语法

## 免密切换到root用户,就算不免密,也是输入jiangsu1用户的密码,切换到root用户
[jiangsu1@Quanyi </sub>]$ sudo su -

## 报错:
[root@Quanyi <sub>]# sudo 11
sudo: 11: command not found

原因:ll是别名,不是系统命令,sudo不走别名,只认识系统命令

## 普通用户以root身份执行命令
# 举例:
[jiangsu1@Quanyi </sub>]$ mkdir /root/1234
mkdir: cannot create directory ‘/root/1234’: Permission denied

[jiangsu1@Quanyi <sub>]$ ls -l /root
ls: cannot open directory /root: Permission denied

[jiangsu1@Quanyi </sub>]$ sudo mkdir /root/1234
[jiangsu1@Quanyi ~]$ sudo ls -l /root
total 332
-rw-r--r--. 1 root root 0 Mar 26 20:29 “
drwxr-xr-x. 2 root root 6 Apr 8 18:51 1234
-rw-r--r--. 1 root root 0 Apr 5 19:08 a.sh

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

## 给组发兵符
%test666 ALL=(ALL)     NOPASSWD:ALL

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

sudo执行流程

用户组管理及用户提权_docker

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

用户组管理及用户提权

用户组管理及用户提权

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

用户组管理及提权

Linux 添加用户及提权

用户身份切换及提权