每天一点Linux-06用户管理

  1. 用户管理
    1. 用户/组基本概念
    2. 给普通用户提权
    3. 用户/组管理
    4. 扩展知识

用户管理

用户/组基本概念

为什么要有用户和组(逻辑概念)

Users and groups:

  • Every process (running program) on the system runs as a particular user.
  • Every file is owned by a particular user.
  • Access to files and directories are restricted by user.
  • The user associated with a running process determines the files and directories accessible to that process.

查看当前登录的用户信息:

[yang@ecs-ea9d media]$ id
uid=1001(yang) gid=1001(yang) groups=1001(yang),10(wheel)

uid是用户在系统中的唯一标识;gid是用户所属组(主组)的id,ps:一个用户可以属于多个组,但必有一个主组。groups是用户的主组与附加组。

查看文件的owner:

[yang@ecs-ea9d media]$ ll /home/
total 4
drwxr-xr-x 7 yang yang 4096 Aug 12 11:03 yang

和用户相关的一些文件

  • /etc/passwd 所有用户信息(用户名:密码占位符:uid:gid:描述:home:shell )
  • /etc/shadow 用来存放密码(用户名:加密后的密码:密码最近修改时间(1970.01.01后的天数):密码最短修改时间:密码最长修改时间:密码过期预警天数:密码过期的宽恕时间:账号失效日期:保留)$id $salt $encrypted
  • /etc/group 用来存放组的信息(组名:组密码占位符:gid:组成员)

加密算法$id:
$1: MD5
$5: SHA-256
$6: SHA-512

[root@ecs-ea9d ~]# man 5 passwd
[root@ecs-ea9d ~]# man 5 shadow
[root@ecs-ea9d ~]# man 5 group
[root@ecs-ea9d ~]# man 3 crypt

系统约定(不是不可变的): RHEL6
uid: 0 特权用户
uid: 1~499 系统用户
uid: 500+ 普通用户

The root user

  • uid is 0
  • all power
  • This user has the power to override normal privileges on the file system
  • installing or removing software and to manage system files and directorie
  • Most devices can only be controlled by root

给普通用户提权

  1. 切换用户

    [yang@ecs-ea9d ~]$ su
    Password:

  2. 以root身份授权普通用户

    [root@ecs-ea9d ~]# vim /etc/sudoers
    %wheel ALL=(ALL) NOPASSWD: ALL 取消注释

    [yang@ecs-ea9d ~]$ sudo useradd gougou10 -G wheel
    [yang@ecs-ea9d ~]$ id gougou10
    uid=505(gougou10) gid=505(gougou10) 组=505(gougou10)

用户/组管理

​ groupadd:创建组

​ groupdel:删除组

​ useradd:创建用户

​ userdel:删除用户

​ usermod:修改用户

​ passwd:设置/修改密码

​ chage:修改用户密码有效期限

用户组:
[root@ecs-ea9d ~]# groupadd hr
[root@ecs-ea9d ~]# groupadd sale
[root@ecs-ea9d ~]# groupadd it
[root@ecs-ea9d ~]# groupadd fd
[root@ecs-ea9d ~]# groupadd market
[root@ecs-ea9d ~]# groupadd net01 -g 2000 //添加组net01,并指定gid 2000
[root@ecs-ea9d ~]# grep ‘net01’ /etc/group //查看/etc/group中组net01信息
[root@ecs-ea9d ~]# groupdel net01 //删除组net01

用户:
useradd creates users
==创建用户 未指定选项==
[root@ecs-ea9d ~]# useradd user01
. 未指定该用户的主组
. 未指定该用户的附加组
. 未指定用户的HOME
. 未指定用户的SHELL
. 未指定用户的UID…

[root@ecs-ea9d ~]# id user01
uid=507(user01) gid=512(user01) groups=512(user01)

[root@ecs-ea9d ~]# ls /var/spool/mail/user01
/var/spool/mail/user01

小结:
如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group.

==创建用户 指定选项==
[root@ecs-ea9d ~]# useradd user02 -u 503 //创建用户usr02,指定uid
[root@ecs-ea9d ~]# useradd user03 -d /aaa //创建用户user03 指定家目录
[root@ecs-ea9d ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell
[root@ecs-ea9d ~]# useradd user07 -G hr,it,fd //创建用户,指定附加组
[root@ecs-ea9d ~]# useradd user10 -u 4000 -s /sbin/nologin

userdel deletes users
==删除用户==
[root@ecs-ea9d ~]# userdel user10 //删除用户user10,但不删除用户家目录和mail spool
[root@ecs-ea9d ~]# ll -d /home/user10/
drwx—— 3 506 510 4096 09-01 21:14 /home/user10/
[root@ecs-ea9d ~]# ll /var/spool/mail/user10
-rw-rw—- 1 506 mail 0 09-01 21:14 /var/spool/mail/user10

[root@ecs-ea9d ~]# userdel -r user2 //删除用户user2,同时删除用户家目录和mail spool

==用户密码==
[root@ecs-ea9d ~]# passwd alice
[zhuzhu@ecs-ea9d ~]$ passwd

usermod modifies existing users
==组成员管理==
注意:只针对已存在的用户
[root@ecs-ea9d ~]# usermod -G hr niuniu2 //覆盖原有的附加组
[root@ecs-ea9d ~]# usermod -G fd,it niuniu2
[root@ecs-ea9d ~]# usermod -aG hr niuniu2 //增加新的附加组

==其它选项管理==
[root@ecs-ea9d ~]# usermod -s /sbin/nologin niuniu2

扩展知识

useradd创建用户时,参照的文件…
[root@ecs-ea9d ~]# 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

[root@ecs-ea9d ~]# vim /etc/default/useradd
SHELL=/sbin/nologin

Password aging

chage -m 0 -M 90 -W 7 -I 14 username

chage -d 0 username will force a password update on next login.
chage -l username will list a username’s current settings.
chage -E YYYY-MM-DD will expire an account on a specific day.

手动创建用户示例:
[root@ecs-ea9d~]# useradd maomao100
[root@ecs-ea9d~]# echo 123456 |passwd –stdin maomao100
[root@ecs-ea9d~]# chage -d 0 maomao100 //强制用户在下一次登录时修改密码

将多个用户加入到指定的组:
[root@ecs-ea9d~]# gpasswd -a jack wheel //usermod -aG hr zhuzhu
[root@ecs-ea9d~]# gpasswd -M zhuzhu,maomao100 hr
[root@ecs-ea9d~]# gpasswd -d zhuzhu hr


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com

文章标题:每天一点Linux-06用户管理

本文作者:DROBP

发布时间:2019-08-14, 19:08:44

最后更新:2019-08-14, 19:17:18

原始链接:https://DROBP.github.io/2019/08/14/每天一点Linux-06用户管理/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏