DAY12用户管理,用户提权,用户流程

[root@oldboy ~]# grep -E -v "^#|^$" /etc/login.defs

MAIL_DIR /var/spool/mail

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_MIN_LEN 5

PASS_WARN_AGE 7

UID_MIN                  1000

UID_MAX                60000

SYS_UID_MIN              201

SYS_UID_MAX              999

GID_MIN                  1000

GID_MAX                60000

SYS_GID_MIN              201

SYS_GID_MAX              999

CREATE_HOME yes

UMASK          077

USERGROUPS_ENAB yes

ENCRYPT_METHOD SHA512

[root@oldboy ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

在我们创建一个用户时,如果创建时指定了参数,以指定参数为准,如果没有指定参数,那么就以系统中默认的两个配置文件(/etc/login.defs  /etc/default/useradd)作为参照.

组的概念:

组就是一个逻辑概念。逻辑上将多个用户捆绑成一个组,当我们操作组的时候就相当于在操作组下的所有用户。

组的分类:

基本组:创建时指定组,就叫基本组 (只能有1个)

私有组:创建时没有指定组,默认创建与用户同名的组 (只有有1个)

附加组:对于用户来说,可以有N多个。 (有多个)

注意:

1.首先得有组。

2.在进行加入。

组的信息存放在那里?

/etc/group

/etc/gshadow

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)

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

/etc/profile.d/1.sh

/etc/profile

/etc/bashrc

/root/.bashrc

/root/.bash_profile

[root@oldboy ~]# bash

/etc/profile.d/1.sh

/etc/bashrc

/root/.bashrc

su - username属于登陆式shell,su username属于非登陆式shell,区别在于加载的环境变量不一样。

#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 ~'

#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

#4.使用sudo提权,需要输入普通用户的密码。

[xuliangwei@xuliangwei ~]$ sudo rm -rf /opt

方式一:

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

#编辑sudo配置

[root@bgx ~]# visudo

# 1.使用sudo定义分组,这个系统group没什么关系

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 验证权限

方式二:针对系统中真实的组来进行操作

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,并不能完全的解决所有的权限问题,仅仅是相对的。  (需要有一个操作审计平台,来监督每个人的操作。  jumpserver )

你可能感兴趣的:(DAY12用户管理,用户提权,用户流程)