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

    科技2025-05-26  30

    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的用户管理的权限等,建议在虚拟机中是,或真实环境中,一边练习,一边理解含义,知道有这个,在用的时候用,并在用之前合理规划用户管理

    Processed: 0.010, SQL: 8