13linux之提权 ------1.使用groupadd命令新增组, 2.使用groupmod命令修改组 3.groupdel删除组。 2.切换用户身份、提权

学习用户权限管理,之前先了解组的概念:
组就是一个逻辑概念。逻辑上将多个用户捆绑成一个组,当我们操作组的时候就相当于在操作组下的所有用户。

 组的信息存放在那里?
/etc/group
/etc/gshadow

查看用户属于哪个组
groups username

**

一.组的使用,组的创建、删除、修改 groupadd groupdel groupmod

**

组的分类:
基本组:创建时指定组,就叫基本组 (只能有1个)
私有组:创建时没有指定组,默认创建与用户同名的组 (只有有1个)
附加组:对于用户来说,可以有N多个。 (可以多个)

     注意:
     1.首先得有组。
     2.再进行加入。

**

1.使用groupadd命令新增组,

**
     groupadd [-g GID] groupname


#创建基本组, 不指定gid
[root@bgx ~]# groupadd no_gid
#创建基本组, 指定gid为5555
[root@bgx ~]# groupadd -	g 5555 yes_gid
#创建系统组,gid从201-999
[root@bgx ~]# groupadd -r sys_gid

2.使用groupmod命令修改组

 # -g 修改组gid
[root@bgx ~]# groupmod -g 1111 no_gid
#-n 修改组名称
[root@oldboy ~]# groupmod yes_gid -n active_gid
----------------------------------------------------------------

3.groupdel删除组。

**
如果要删除基本组,需要先删除基本组中的用户才可以删除该组。

[root@oldboy ~]#  useradd ttboy -g active_gid
[root@oldboy ~]# useradd ggboy -G active_gid

[root@oldboy ~]# grep "active_gid" /etc/group
active_gid:x:12345:ggboy
[root@oldboy ~]# groupdel active_gid
groupdel:不能移除用户“ttboy”的主组

#移除主要的成员,就能删除该组
[root@oldboy ~]# userdel ttboy
[root@oldboy ~]# groupdel active_gid

[root@oldboy ~]# id ggboy
uid=6009(ggboy) gid=12346(ggboy)=12346(ggboy)
    就像拆迁一样,必须将主要人员都清理完毕,否则就不能拆房子 (强拆-->国家不允许)
	主要用户                   组         强拆-->系统不允许

       注意:删除一个组,必须确保该组的主要成员已经移除该组,就可以正常删除。
      (附加进来的成员无需考虑在内。)

二.切换用户身份、提权?都是什么东西? su sudo

  su - username属于登陆式shell,
  su username属于非登陆式shell, 区别在于加载的环境变量不一样。
(su -username 登录时加载的环境)
  /etc/profile.d/1.sh                                      
  /etc/profile
  /etc/bashrc
  /root/.bashrc
  /root/.bash_profile
 (su   username 登录时加载部分环境变量)
  [root@oldboy ~]# bash
  /etc/profile.d/1.sh
  /etc/bashrc
   /root/.bashrc
#1.普通用户使用su切换root
[xuliangwei@node1 ~]$ su
密码:         #输入root的密码
[root@node1 xuliangwei]# pwd
/home/xuliangwei
#2.普通用户使用su -切换到root,
会加载root的环境变量
[xuliangwei@node1 ~]$ su -
密码:
[root@node1 ~]# pwd
/root
#3.以某个用户的身份执行某个服务,使用命令su -c username
[root@bgx ~]# su - xuliangwei -c 'ifconfig'
[root@bgx ~]# su - xuliangwei -c ' ls ~ '
  面如果想要进行高与自己权限的操作是就需要切换高权限用户的账号,非常不安全
  那么,我们在生产环境中,如何利用普通用户的身份,获取权限呢? —————>>> sudo  (你必修在有权限的组里)


     1.快速配置sudo方式   [先体验一下]
      [root@node1 ~]# usermod bgx -G wheel
      [root@node1 ~]$ sudo tail -f /var/log/secure    #sudo审计日志
      —————>>> 思考:将用户提权后能干什么呢?

#1.切换普通用户
[root@bgx ~]# su - xuliangwei
#2.检查普通用户能提权的命令
[xuliangwei@xuliangwei ~]$ sudo -l
User xuliangwei may run the following commands on this host:
(ALL) ALL
#3.普通用户正常情况下是无法删除opt目录的
[xuliangwei@xuliangwei ~]$ rm -rf /opt/
rm: cannot remove `/opt: Permission denied
使用sudo提权,需要输入当前普通用户的密码确认操作。
[xuliangwei@xuliangwei ~]$ sudo rm -rf /opt
通过体验,我们先在开始给组陪住sudu

标题sudo配置方式一:

oldxu oldqiang = 运维
oldli oldguo = dba

1.需要真实创建这四个用户
[root@oldboy opt]# useradd oldxu
[root@oldboy opt]# useradd oldqiang
[root@oldboy opt]# useradd oldli
[root@oldboy opt]# useradd oldguo

#2,全程进入sudo 编辑配置
[root@bgx ~]# visudo

1.使用sudo定义分组

这个系统与group没什么关系(这是sudo的组,虚拟的组。写在sudo空白处就行)
User_Alias OPS = oldxu,oldqiang 定义虚拟组成员
User_Alias DBA = oldli,oldguo

2.定义可执行的命令组, 便于后续调用 复制粘贴就行

Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

3.使用sudo开始分配权限

OPS ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES
DBA ALL=(ALL) SOFTWARE,PROCESSES

#4.登陆对应的用户使用 sudo -l 验证权限


标题sudo配置方式二:针对系统中真实的组来进行操作

oldxu oldqiang = 运维
oldli oldguo = dba

#1.添加两个真实的系统组, OPS DBA

[root@www ~]# groupadd OPS
[root@www ~]# groupadd DBA

#2.添加两个用户, OPS(oldxu oldqiang) DBA(oldli oldguo)

[root@oldboy ~]# usermod  oldxu -G OPS
[root@oldboy ~]# usermod  oldqiang -G OPS
[root@oldboy ~]# usermod  oldguo -G DBA
[root@oldboy ~]# usermod  oldli -G DBA

#3.记得添加密码

[root@oldboy ~]# echo "1" | passwd --stdin oldxu
[root@oldboy ~]# echo "1" | passwd --stdin oldguo
[root@oldboy ~]# echo "1" | passwd --stdin oldli
[root@oldboy ~]# echo "1" | passwd --stdin oldqiang

#4.在sudo中配置规则
[root@www ~]# visudo

Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

%OPS ALL=(ALL) SOFTWARE
%DBA ALL=(ALL) SOFTWARE,PROCESSES

#5.检查sudo是否配置有错

[root@www ~]# visudo -c
/etc/sudoers: parsed OK

#6.检查oldxu,和oldguo的sudo权限

[oldguo@oldboy ~]$ sudo -l
[sudo] password for oldguo:

User oldguo may run the following commands on oldboy:
(ALL) /bin/rpm, /usr/bin/yum, /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

[oldxu@oldboy ~]$ sudo -l
[sudo] password for oldxu:

User oldxu may run the following commands on oldboy:
(ALL) /sbin/ifconfig, /bin/ping, /bin/rpm, /usr/bin/yum, /sbin/service, /usr/bin/systemctl start,
/bin/mount, /bin/umount, /bin/chown, /bin/chmod, /bin/chgrp, /bin/nice, /bin/kill,
/usr/bin/kill, /usr/bin/killall

  只要我们能使用sudo操作 VIm/ rm /su -  命令就能绕过root。
    所以sudo,并不能完全的解决所有的权限问题,仅仅是相对的。  
 (需要有一个操作审计平台,来监督每个人的操作。  jumpserver )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值