3DAY 用户管理

Posted hsl520

tags:

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

0xff001用户/组管理

1、描述

用户和组:

  • 系统上的每一个进程(运行程序)都是作为一个特定的用户运行的

  • 每个文件都由特定的用户拥有

  • 对文件和目录的访问受到用户的限制

  • 与正在运行的进程相关联的用户决定该进程可访问的文件和目录

2、查看当前用户信息

[[email protected] ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

3、查看文件的owner


[[email protected] ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 4月 30 11:21 1.txt
-rw-rw-rw-. 1 root root 0 4月 30 11:29 4.txt
drwxr-xr-x. 2 root root 6 4月 30 11:21 dir
drwxrwxrwx. 2 root root 6 4月 30 11:29 dir1

4、查完运行的进程username


[[email protected] ~]# ps aux
USER       PID %CPU %MEM   VSZ   RSS TTY     STAT START   TIME COMMAND
root         1 0.0 0.4 128092 4000 ?       Ss   11:13   0:01 /usr/lib/systemd/systemd --swi

5、用户组信息存储的文件

  • 用户基本信息文件/etc/passwd

  • 用户密码信息文件/etc/shadow

  • 用户组信息文件/etc/group

    ?

0xff002用户管理

1、创建用户

[[email protected] ~]# useradd user01 
. 未指定该用户的主组
. 未指定该用户的附加组
. 未指定用户的HOME
. 未指定用户的SHELL
. 未指定用户的UID...
[[email protected] ~]# grep ‘user01‘ /etc/passwd /etc/shadow /etc/group
/etc/passwd:user01:x:507:512::/home/user01:/bin/bash
/etc/shadow:user01:!!:16589:0:99999:7:::
/etc/group:user01:x:512:
?
[[email protected] ~]# id user01
uid=507(user01) gid=512(user01) groups=512(user01)
?
[[email protected] ~]# ls /var/spool/mail/user01
/var/spool/mail/user01
?
小结:
如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group.

[[email protected] ~]# useradd user02 -u 1503 //创建用户usr02,指定uid
[[email protected] ~]# useradd user03 -d /aaa //创建用户user03 指定家目录
[[email protected] ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell
[[email protected] ~]# useradd user07 -G hr,it,fd //创建用户,指定附加组
[[email protected] ~]# useradd user10 -u 4000 -s /sbin/nologin

2、删除用户


[[email protected] ~]# userdel user10
//删除用户user10,但不删除用户家目录和mail spool
[[email protected] ~]# ll -d /home/user10/
drwx------ 3 506 510 4096 09-01 21:14 /home/user10/
[[email protected] ~]# ll /var/spool/mail/user10
-rw-rw---- 1 506 mail 0 09-01 21:14 /var/spool/mail/user10
?
[[email protected] ~]# userdel -r user2
//删除用户user2,同时删除用户家目录和mail spool

3、用户密码


方法一:root修改其他用户(alice)密码
[[email protected] ~]# passwd alice
方法二:用户(zhuzhu)登录,自己修改密码。
[[email protected] ~]$ passwd

4、组成员管理


注意:只针对已存在的用户     -G 组名 组名 ... 用户名
[[email protected] ~]# usermod -G hr niuniu2 //覆盖原有的附加组
[[email protected] ~]# usermod -G fd,it niuniu2
[[email protected] ~]# usermod -aG hr niuniu2 //增加新的附加组

5、其他选项管理


[[email protected] ~]# usermod -s /sbin/nologin niuniu2
修改登录SHELL

 

0xff003组管理

1、创建、删除组


[[email protected] ~]# groupadd hr
[[email protected] ~]# groupadd net01 -g 2000
//添加组net01,并指定gid 2000
[[email protected] ~]# grep ‘net01‘ /etc/group
//查看/etc/group中组net01信息
[[email protected] ~]# groupdel net01
//删除组net01

0xff004提权

1、永久提权


[[email protected] ~]$ useradd u1
-bash: /usr/sbin/useradd: 权限不够
[[email protected] ~]$ su - root
password:
[[email protected] ~]# useradd u1
成功

2、临时提权


以root身份授权普通用户xulei
[[email protected] ~]# vim /etc/sudoers
%wheel ALL=(ALL) NOPASSWD: ALL
允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
?
[[email protected] ~]# useradd xulei -G wheel
[[email protected] ~]# id xulei
uid=504(xulei) gid=504(xulei) 组=504(xulei),10(wheel)
?
# passwd xulei
切换用户xulei登陆
?
[[email protected] ~]$ useradd gougou10
-bash: /usr/sbin/useradd: 权限不够
[[email protected] ~]$ sudo useradd gougou10
[[email protected] ~]$ id gougou10
uid=505(gougou10) gid=505(gougou10) 组=505(gougou10)

 

 

 

0xff004案例

1、案例


1 useradd是创建用户的命令。
2 usermod是修改用户的命令。
3 groupadd是创建组的命令。
4 -u 制定用户的UID。
5 -g 制定用户的基本组。
6 -G 制定用户的附加组。
7 /etc/passwd 可以查看的是用户的基本组。
8 /etc/group 可以查看用户的附加组。
?
?
?
一、创建用户AAA,同时生成基本组AAA
[[email protected] ~]# useradd AAA
[[email protected] ~]# grep AAA /etc/passwd
AAA:x:6001:6001::/home/AAA:/bin/bash
?
二、创建用户BBB,同时生成基本组BBB
[[email protected] ~]# useradd BBB
[[email protected] ~]# grep BBB /etc/passwd
BBB:x:6002:6002::/home/BBB:/bin/bash
?
三、创建组CCC
[[email protected] ~]# groupadd CCC
[[email protected] ~]# grep CCC /etc/group
CCC:x:7001:
?
四、修改用户AAA的基本组为CCC.
五、查看passwd中,用户AAA的基本组是CCC。
[[email protected] ~]# usermod AAA   -g CCC
[[email protected] ~]# grep AAA /etc/passwd
AAA:x:6001:7001::/home/AAA:/bin/bash
?
六、修改用户BBB的附加组为CCC.
七、查看group中,用户BBB的附加组是CCC。
[[email protected] ~]# usermod BBB   -G CCC
[[email protected] ~]# grep CCC /etc/group
CCC:x:7001:BBB

0xff05扩展知识

1、用户创建时的默认设置能否改变呢?(比如SHELL是禁止登陆)


[[email protected] ~]# vim /etc/default/useradd
SHELL=/sbin/nologin
尝试新建用户吧。

2、用户密码策略能否设置


1.设置用户密码最小天数(-m),最大天数(-M),提醒天数(-W),不活跃天数(-l)
chage -m 0 -M 90 -W 7 -I 14 username
2.设置用户下次登录立刻更改密码。
chage -d 0 username
3.列出用户密码策略信息。
chage -l username
4.设置用户密码过期日期。
chage -E YYYY-MM-DD username

3、用户密码策略能否设置?(比如密码有效期只有14天)

  • 描述


/etc/login.defs是设置用户帐号密码限制的文件。该文件里的配置对root用户无效
  • 示例


[[email protected] ~]# vim /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 30
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
CREATE_HOME yes
ENCRYPT_METHOD SHA512
  • MAN手册


man login.defs
?
/etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。
?
如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。
?
# *REQUIRED* required
# Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory. If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR     Maildir
MAIL_DIR       /var/spool/mail
#创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
#MAIL_FILE     .mail
?
# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN   Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999
#密码最大有效期
PASS_MIN_DAYS   0
#两次修改密码的最小间隔时间
PASS_MIN_LEN   5
#密码最小长度,对于root无效
PASS_WARN_AGE   7
#密码过期前多少天开始提示
#
# Min/max values for automatic uid selection in useradd
#创建用户时不指定UID的话自动UID的范围
UID_MIN                   500
#用户ID的最小值
UID_MAX                 60000
#用户ID的最大值
#
# Min/max values for automatic gid selection in groupadd
#自动组ID的范围
GID_MIN                   500
#组ID的最小值
GID_MAX                 60000
#组ID的最大值
?
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD   /usr/sbin/userdel_local
#当删除用户的时候执行的脚本
?
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME     yes
#使用useradd的时候是够创建用户目录
?
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK           077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
#用MD5加密密码

4、如何将多个用户加入到指定的组

  • 描述


usemod -G 改写用户的组之后,用户的组信息是覆盖,也就是说usermod使用户只能存在于一个组。那么如何使用户同时属于多个组呢? gpasswd -a试试吧
  • 案例


[[email protected] ~]# useradd user1
[[email protected] ~]# useradd user2
[[email protected] ~]# useradd user3
[[email protected] ~]# groupadd group1
[[email protected] ~]# gpasswd -a user1 group1
正在将用户“user1”加入到“group1”组中
[[email protected] ~]# gpasswd -a user2 group1
[[email protected] ~]# cat /etc/group
group1:x:1011:user1,user2

5.如何替换某个组的所有成员呢?


[[email protected] ~]# gpasswd -M user2,user3 group1
[[email protected] ~]# cat /etc/group
group1:x:1011:user2,user3

6.如何删除某个组的某个成员


原组中有三个用户,删除其中一个用户。
[[email protected] ~]# grep group1 /etc/group
group1:x:1011:user3,user1,user2
[[email protected] ~]# gpasswd -d user1 group1
正在将用户“user1”从“group1”组中删除
[[email protected] ~]# grep group1 /etc/group
group1:x:1011:user3,user2

 

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

Python3.X全栈-Day08-RPM软件包以及常见网络服务

3day_C基础

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

在每个用户的Rails中使用片段缓存

3Day—查增删

Python之路3Day