「Linux-基础」CentOS 8.0 用户管理与权限

Linux系列-用户管理与权限

目录

  • Linux系列-用户管理与权限
  • 前言
  • 用户相关文件
    • /etc/passwd 用户信息文件
    • /etc/shadow 影子文件
    • /etc/group 组信息文件
    • /etc/gshadow 组密码文件
    • /var/spool/mail 邮箱目录
    • /home/user1 家目录
    • /etc/ske1/ 用户模板目录
  • 用户管理命令
    • 手工添加用户
    • useradd 命令
      • useradd的默认值
    • passwd 设置密码
    • userdel 删除用户
    • su 切换用户
  • 组管理命令
    • groupadd 添加用户组
    • groupdel 删除组
    • gpasswd 把用户添加进组或从组中删除
  • 总结


前言

在Linux中一切皆文件,所以用户管理也是文件,在windows中我们有多用户,也能创建用户删除用户,在Linux也有这些功能,所以这里我会详细介绍在Linux中,这些文件在哪里是什么,怎么用,以及他的创建,删除,添加等等


用户相关文件

添加用户的时候 前六个文件目录都会出现相应的用户目录

/etc/passwd 用户信息文件

root:x:0:0:root:/root:/bin/bash            //管理员账号
user1:x:1000:1000::/home/user1:/bin/bash   //普通用户

第一列:用户名

第二列:密码位

第三列:用户ID

  • 0 超级用户UID,代表是管理员账号,若想把普通用户升级为管理员账号,就只需要把UID修改为O即可
  • 1-499 系统用户(伪用户)UID。是系统保留的,用来运行系统或服务的。1-99是系统保留账号 100-499是预留给用户创建的系统账号
  • 500-60000 普通用户UID。建立普通用户是从500开始,如上

第四列:组ID 添加用户时,如果不指定用户所属的初始组,会建立和用户名相同的组

第五列:用户说明

第六列:用户家目录

第七列:登录sheel /bin/bash

/etc/shadow 影子文件

user1:$6$LS9vux8L$R.kvmJONhNHMkTOwSpAm/cRqmKPnXhoFxKow9GgKVBZW4GmIOUBGRh81znzj1sU7pJhwGBcYxeT1uP5mFeluA.:18509:0:99999:7:::

第一列:用户名

第二列:加密密码

  • 若想让用户失效登录 可在前面加 “!”

第三列:密码最近更改时间 1970年1月1日 为标准时间

  • 时间戳转日期()
[root@iZbp10cdilkxcswm4l893lZ ~]# date -d "1970-01-01 18507 days"
20200902日 星期三 00:00:00 CST
  • 日期转时间戳
[root@iZbp10cdilkxcswm4l893lZ ~]# echo $(($(date --date="20200907" +%s)/86400+1))
18512

第四列:两次密码的修改间隔时间(和第三段比)

第五列:密码有效期(和第三段比)

第六列:密码修改到期前的警告天数(和第五段比)

第七列:密码过期后的宽限天数(和第5字段相比)

第八列:密码失效时间 (和时间戳有关)

第九列:保留

/etc/group 组信息文件

root:x:0:

第一列:组名

第二列:组密码位

第三列:GID(用户组ID)

第四列:此组中支持的其他用户,附加组是此组的用户

  • 初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为初始组
  • 附加组:每个用户可以属于多个附加组,要把用户加入组,都是加入附加组

/etc/gshadow 组密码文件

user1:!::

第一列:组名

第二列:组密码

第三列:组管理员用户名

第四列:组中的附件用户

/var/spool/mail 邮箱目录

[root@iZbp10cdilkxcswm4l893lZ skel]# cd /var/spool/mail/
[root@iZbp10cdilkxcswm4l893lZ mail]# ls
user1

/home/user1 家目录

之前六个目录创建新用户的时候都会出现,相应的用户名字 家用户目录模板不会出现

/etc/ske1/ 用户模板目录

[root@iZbp10cdilkxcswm4l893lZ ~]# cd /etc/skel/   //在创建型的用户时其他页面以此为例 创建相同的目录
[root@iZbp10cdilkxcswm4l893lZ skel]# ls -a 
.  ..  .bash_logout  .bash_profile  .bashrc

用户管理命令

手工添加用户

就是之上的六个文件夹 ,删除也是一样的

useradd 命令

[root@iZbp10cdilkxcswm4l893lZ ~]# useradd 名字

[root@iZbp10cdilkxcswm4l893lZ ~]# useradd -G test user      // -G 是指定附加组  将test 添加到user组
test:x:1001:user 
user:x:1002:         

useradd的默认值

添加用户时参考的默认值文件主要有两个 /etc/default/useradd/etc/login.defs

/etc/default/useradd
[root@iZbp10cdilkxcswm4l893lZ ~]# vim /etc/default/useradd        
# useradd defaults file
GROUP=100                                  //这个选项是建立用户的默认组
HOME=/home                                 //家目录的默认位置
INACTIVE=-1                                //密码过期后的宽限天数 和/etc/shadow 第7个字段 对等
EXPIRE=                                    //密码失效时间 和/etc/shadow 第八个字段对等
SHELL=/bin/bash                            //用户默认Shell  	/bin/bash 是Linux的标志shell
SKEL=/etc/skel						       //定义用户模板目录的位置
CREATE_MAIL_SPOOL=yes                      //是否给新用户建立邮箱 
/etc/login.defs
[root@iZbp10cdilkxcswm4l893lZ ~]# vim /etc/login.defs 
 15 MAIL_DIR        /var/spool/mail         //新建用户默认邮箱位置

 25 PASS_MAX_DAYS   99999                   //指定密码的有效期  对等/etc/shadow文件的第五段     
 26 PASS_MIN_DAYS   0                       //这行指定的两次修改间隔时间   /etc/shadow文件的第四段
 27 PASS_MIN_LEN    5                       //密码最小长度 默认不小于5位
 28 PASS_WARN_AGE   7                       //代表修改到期前的警告天数,/etc/shadow 文件的第六段

 33 UID_MIN                  1000           //最小UID的范围
 34 UID_MAX                 60000           //最大UID的范围

 42 GID_MIN                  1000
 43 GID_MAX                 60000

 60 CREATE_HOME     yes                     //建立用户时是否自动创建用户的家目录

 64 UMASK           077                     //用户家目录的默认权限
 68 USERGROUPS_ENAB yes			            //userdel删除用户时,是否删除用户的初始组
 71 ENCRYPT_METHOD SHA512                   //指定Linux用户的密码使用SHA512散列模式加密

passwd 设置密码

  • 设置用户密码
[root@iZbp10cdilkxcswm4l893lZ ~]# useradd test1      //创建test1用户
[root@iZbp10cdilkxcswm4l893lZ ~]# passwd test1      //设置test1 用户密码
更改用户 test1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:

选项
  -l       //锁定用户,就是在/etc/shadow 文件前加一个! 表示锁定用户
  -u       //解除锁定用户
  --stdin  //配合管道符使用,可以用来批量指定用户的密码,如下

--stdin 
[root@iZbp10cdilkxcswm4l893lZ test1]# echo "test11" | passwd --stdin test1   //密码为test11  账号为test1修改密码
更改用户 test1 的密码 。
passwd:所有的身份验证令牌已经成功更新。

userdel 删除用户

[root@iZbp10cdilkxcswm4l893lZ ~]#  userdel -r test1     //test1 为用户名
-r 为删除用户及创建的目录

su 切换用户

[root@iZbp10cdilkxcswm4l893lZ ~]# su test1
[test1@iZbp10cdilkxcswm4l893lZ root]$ whoami
test1

 -  :- 是为了切换环境变量  env可以查看  
 [test1@iZbp10cdilkxcswm4l893lZ root]$ su - root 
Password: 
Last login: Mon Sep  7 15:56:21 CST 2020 on pts/0
[root@iZbp10cdilkxcswm4l893lZ ~]# env
HISTSIZE=1000
USER=root                  //修改这个   如果不加 - 这个就会是 test1 bash 没有切换过来

组管理命令

groupadd 添加用户组

[root@iZbp10cdilkxcswm4l893lZ ~]# groupadd t3
[root@iZbp10cdilkxcswm4l893lZ ~]# tail -2 /etc/group
t2:x:1006:
t3:x:1007:

groupdel 删除组

[root@iZbp10cdilkxcswm4l893lZ ~]# groupdel grouptest1       //前提是本用户组没有用户方可删除,附件组不算

gpasswd 把用户添加进组或从组中删除

[root@iZbp10cdilkxcswm4l893lZ ~]# gpasswd -a test1 grouptest            //test1 为用户   grouptest为组 -a 添加
Adding user test1 to group grouptest
[root@iZbp10cdilkxcswm4l893lZ ~]# tail -2 /etc/group
t2:x:1006:
grouptest:x:1007:test1
[root@iZbp10cdilkxcswm4l893lZ ~]# gpasswd -d test1 grouptest           //test1 为用户   grouptest为组 -d 删除
Removing user test1 from group grouptest

选项
-a  将用户 添加到组
-d  将用户 从组中删除

总结

本文介绍了关于Linux的用户管理的权限等,建议在虚拟机中是,或真实环境中,一边练习,一边理解含义,知道有这个,在用的时候用,并在用之前合理规划用户管理

你可能感兴趣的:(Linux,基础,centos,linux,运维)