linux安全优化之用户管理【2】

前言

在上一篇博客中我们大概了解了用户管理中部分配置文件的作用。这篇博客让我们来实际操作一下,也是对上篇博客的一个验证。

用户信息的查看

  • id #查看指定用户id信息
    -u #查看用户的uid
    -g #查看用户的gid
    -G #查看用户所在的所有组的id
    -n #显示名字而不显示id数字
    示例:

    [root@workstation ~]# id
    uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    [root@workstation ~]# id -u
    0
    [root@workstation ~]# id -g
    0
    [root@workstation ~]# id -G
    0
    [root@workstation ~]# id -nu
    root
    注意:-n不能单独使用
    

用户身份的切换方式及环境变量

  • 图形中的注销命令,在shell中输入以下命令就可注销当前用户,不用鼠标去点击
    gnome-session-quit --force ##注销当前用户

  • su 和 su -
    su 只切换用户身份,不切换用户环境
    例如:

    [root@workstation Desktop]# useradd new
    [root@workstation Desktop]# su new
    
    (process:8443): dconf-CRITICAL **: 00:33:40.752: unable to create directory '/run/user/0/dconf': Permission denied.  dconf will not work properly.
    (process:8443): dconf-CRITICAL **: 00:33:40.753: unable to create directory '/run/user/0/dconf': Permission denied.  dconf will not work properly.
    (process:8443): dconf-WARNING **: 00:33:40.759: failed to commit changes to dconf: Could not connect: Permission denied
    [new@workstation Desktop]$ pwd
    /root/Desktop
    虽然切换进了new可当前环境还在/root/Desktop中
    

    su - 切换用户身份及用户环境

    [root@workstation Desktop]# su - new
    Last login: Wed Jan  8 00:33:40 EST 2020 on pts/0
    [new@workstation ~]$ pwd
    /home/new
    此时可以看到,路径已经切换到了用户的家目录
    

    注意:
    每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户
    执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要
    平级用户切换切换也需要

用户及用户组的建立及删除

useradd 建立用户的,建立用户时,读取/etc/login.defs 文件内容确定规则(可参考上篇博客)
在使用该命令前,请先设置一个监控台来对新添加的用户进行实时监控
命令如下:

[root@workstation Desktop]# watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo "= =>home message<= ="; ls -l /home/' 
该命令会每隔一秒对上述文件进行更新显示。对我们新加或修改的参数实时更新。
Every 1.0s: tail -n ...  workstation.lab.example.com: Wed Jan  8 00:52:56 2020
==> /etc/passwd <==
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
==> /etc/group <==
dip:x:40:
==>home message<==
total 0
drwx------. 4 student student 110 Jan  8 00:10 student
  • useradd的常用参数:
    -u #指定用户的 uid

    [root@workstation Desktop]# useradd -u 1005 haizhizhuer
    

    监控台实时更新:

    haizhizhuer:x:1005:1005::/home/haizhizhuer:/bin/bash
    haizhizhuer:x:1005:
    drwx------. 4 haizhizhuer haizhizhuer  93 Jan  8 01:02 haizhizhuer
    

    剩下的命令也一样:
    -g #指定用户的 gid
    -G #指定用户的附加组
    (组与附加组是不同的,进行组设置的时候,只能设置一个,即进了A组就不可以去B组。但附加组就可以重复加入。如下:)

    [root@workstation Desktop]# useradd -G 40 haizhizhuer
    ==> /etc/group <= =
    slocate:x:21:
    dip:x:40:haizhizhuer
    haizhizhuer:x:1001:
    

    -c #指定用户的说明
    -d #指定用户的家目录 , 默认为 /home/username
    -s #指定用户的默认shell
    注意:在每次进行配置时,要还原当时的环境就需要用到userdel命令。

  • userdel
    删除已建立用户,如下:

    [root@workstation Desktop]# userdel -r haizhizhuer
    

    (注意:一定要加-r参数,否则只是删除haizhizhuer所在的目录,而这个用户信息依然存在。)

  • groupadd 和 groupdel
    新建组与删除组
    新建组如下所示:

    [root@workstation Desktop]# groupadd hi
    监控台
    ==> /etc/group <= =
    hi:x:1002:
    

    也可通过帮助文档查看其他的建立组的方案
    删除组如下所示:

    [root@workstation Desktop]# groupdel hi
    

    注意:
    如当前组为某用户的指定组,那么不能被直接删除,可加-f参数对其强制删除。但是此时用户就没有指定组了。

用户及用户组的信息管理

  • groupmod -g
    如下:

    [root@workstation Desktop]# groupmod -n haizhizhu hii
    修改组名,可查看help文档去修改组的其它参数。
    
  • usermod
    -l 修改用户名称
    -u 修改用户的 uid
    -g 修改用户的 gid
    -aG 指定用户的附加组
    -c 修改用户的说明
    -md 修改用户的家目录 , 默认为 /home/username
    -s 修改用户的 shell 类型
    注意:
    -d 只更改/etc/passwd文件中目录的名字,并没有实际的更改目录
    -md 修改用户的家目录 , 默认为 /home/username,既更改名字,也更改目录
    -G 不能附加,只能修改用户的附加组
    -aG 指定用户的附加组
    如下示例-d:

    [root@workstation Desktop]# usermod -d /home/hi haizhizhu
    

    监控:

    ==> /etc/passwd <==
    gnome-initial-setup:x:976:976::/run/gnome-initial-setup/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    haizhizhu:x:1001:1001::/home/hi:/bin/bash
    
    ==> /etc/group <==
    slocate:x:21:
    dip:x:40:
    haizhizhu:x:1001:
    ==> /home/ message <==
    total 0
    drwx------. 4 haizhizhu haizhizhu 93 Jan  8 02:15 haizhizhu
    drwx------. 4 student   student   89 May 21  2019 student
    

    如下示例-md:

    [root@workstation Desktop]# usermod -md /home/hi haizhizhu
    

    监控

    ==> /etc/passwd <==
    gnome-initial-setup:x:976:976::/run/gnome-initial-setup/:/sbin/nologin
    avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    haizhizhu:x:1001:1001::/home/hi:/bin/bash
    
    ==> /etc/group <==
    slocate:x:21:
    dip:x:40:
    haizhizhu:x:1001:
    ==> /home/ message <==
    total 0
    drwx------. 4 haizhizhu haizhizhu 93 Jan  8 02:15 hi
    drwx------. 4 student   student   89 May 21  2019 student
    

    注意:细心观察实验结果的不同之处,改路径的时候一定要改到/home/这个路径之下,否则监控无法体现。

用户认证管理

  • passwd
    查看其help文件,如下所示:

    [root@workstation Desktop]# passwd --help
    Usage: passwd [OPTION...] <accountName>
    -k, --keep-tokens       keep non-expired authentication tokens
    -d, --delete            delete the password for the named account (root
                       only); also removes password lock if any
    -l, --lock              lock the password for the named account (root only)
    -u, --unlock            unlock the password for the named account (root only)
    -e, --expire            expire the password for the named account (root only)
    -f, --force             force operation
    -x, --maximum=DAYS      maximum password lifetime (root only)
    -n, --minimum=DAYS      minimum password lifetime (root only)
    -w, --warning=DAYS      number of days warning users receives before
                       password expiration (root only)
    -i, --inactive=DAYS     number of days after password expiration when an
                       account becomes disabled (root only)
    -S, --status            report password status on the named account (root
                       only)
    --stdin             read new tokens from stdin (root only)
    

    -l #锁定
    -u #解锁
    -S #显示当前状态
    -n #最少需要多少天才可更改密码
    -w #警告
    -i #密码到期后还可使用几天

  • chage

    [root@workstation Desktop]# chage --help
    Usage: chage [options] LOGIN
    
    Options:
    -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
    -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
    -h, --help                    display this help message and exit
    -I, --inactive INACTIVE       set password inactive after expiration
                              to INACTIVE
    -l, --list                    show account aging information
    -m, --mindays MIN_DAYS        set minimum number of days before password
                              change to MIN_DAYS
    -M, --maxdays MAX_DAYS        set maximum number of days before password
                              change to MAX_DAYS
    -R, --root CHROOT_DIR         directory to chroot into
    -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS
    

    -l #密码到期后还可使用几天
    -d #最近改密码的日期
    -E #将当前用户密码过期
    (注意:当前用户密码过期时,若用系统用户身份进入不需重新设置密码,但是普通用户进入时需要重新设置密码)
    -m #最短多山天能改密码
    -M #最长多山天内必须更改一次密码
    -W #警告

    在此不作演示,具体效果可看监控中/etc/passwd内容的更改显示。

用户权力的下放

sudo 能把某些超级权限针对性的下放 , 并且不需要普通用户知道 root 密码 , 所以 sudo 相对于权限无限制性的 su 来说 , 还是比较安全的sudo 执行命令的流程是当前用户切换到 root,然后以 root 身份执行命令 , 执行完成后 , 直接退回到当前用户
而这些的前提是要通过sudo 的配置文件 /etc/sudoers 来进行授权

例如,只有root用户可以添加新的用户,普通用户并不可以有此项权限,当我们执行时会出现报错。此时,我们可以去修改sudoers文件,让我当前的普通用户也可以进行添加删除用户的权限。
权限不够,被拒绝:

[haizhizhu@workstation ~]$ useradd hiii
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.

修改sudoer文件:

在101行加入
haizhizhu   workstation.lab.example.com=(root)  NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
在这里只是设置给haizhizhu了创建删除免密的权限。
workstation.lab.example.com因人而异,hostname命令来查看自己的主机名。

修改完成后切换到haizhizhu这个系统中去进行免密添加用户:

[root@workstation Desktop]# su - haizhizhu
Last login: Wed Jan  8 02:50:01 EST 2020 on pts/0
[haizhizhu@workstation ~]$ sudo useradd luu
监控:
==> /etc/passwd <==
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
haizhizhu:x:1001:1001::/home/haizhizhu:/bin/bash
luu:x:1002:1002::/home/luu:/bin/bash

==> /etc/group <==
dip:x:40:
haizhizhu:x:1001:
luu:x:1002:
==> /home/ message <==
total 0
drwx------. 4 haizhizhu haizhizhu 130 Jan  8 02:50 haizhizhu
drwx------. 4 luu	luu        93 Jan  8 02:52 luu
drwx------. 4 student   student    89 May 21  2019 student
添加成功!

后记

到此,用户管理的基本操作就基本上都涉及到了。然而还有很多不同的权限还没见到,也没实际操作过。经验的积累还基本为0,但是掌握大方向是我们解决不同新问题的基础,所以需要十分熟悉目前简单的管理流程,为今后的学习工作打下基础。

发布了7 篇原创文章 · 获赞 8 · 访问量 1262

猜你喜欢

转载自blog.csdn.net/Thorne_lu/article/details/103889494