用户的扩展知识
用户的扩展知识
用户的创建流程
1./etc/login.defs 是设置用户帐号限制的文件。该文件里的配置对root用户无效。/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。
2.需要注意的是,该文件的用户默认配置对 root 用户无效。并且,当此文件中的配置与 /etc/passwd 和 /etc/shadow 文件中的用户信息有冲突时,系统会以/etc/passwd 和 /etc/shadow 为准。
3.如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs
查看配置文件
[root@localhost ~]# less /etc/login.defs
拓展:
过滤空行: # grep -Ev '^#|^$' /etc/login.d
设置项 | 含义 |
---|---|
MAIL_DIR/var/spool/mai | 指定创建用户时,默认邮件文件位置 |
PASS_MAX_DAYS 99999 | 创建用户默认密码最大使用天数 |
PASS_MIN_DAYS 0 | 创建用户默认密码最少使用天数(0代表无限) |
PASS_MIN_LEN 5 | 密码最短位数 |
PASS_WARN_AGE 7 | 密码过期前七天警告 |
UID_MIN 1000 | 普通用户最小UID是1000 |
UID_MAX 60000 | 普通用户最大UID是60000 |
SYS_UID_MIN 201 | 系统用户最小UID是201 |
SYS_UID_MAX 999 | 系统用户最大UID是999 |
GID_MIN 1000 | 普通用户最小GID是1000 |
GID_MAX 60000 | 普通用户最大GID是60000 |
SYS_GID_MIN 201 | 系统用户,最小GID是201 |
SYS_GID_MAX 999 | 系统用户,最大GID是999 |
CREATE_HOME yes | 默认创建用户的家目录 |
UMASK 077 | UMASK 077 指定用户创建家目录的默认权限 |
USERGROUPS_ENAB yes | 创建用户时,如果不用-g指定组,那么会默认创建出该用户的同名组 |
ENCRYPT_METHOD SHA5 | 用户密码的加密方式 SHA51 |
查看useradd配置文件
# cat /etc/default/usera
如果login.defs文件中的USERGROUPS_ENAB yes是no,该行配置才会生效
如果创建用户不创建同名组,默认会将该用户加入GID为100的系统组中(users)GROUP=100
# 指定用户默认创建家目录的位置
HOME=/home
# 用户账户停权 -1永远不过期
INACTIVE=-1
# 账号终止时间的设置,不设置不终止
EXPIRE=
# 用户默认创建登录
shellSHELL=/bin/bash
# 该目录下存放的是,用户的环境变量初始配置文件
SKEL=/etc/skel
# 创建用户的同时,创建该用户的邮箱文件
CREATE_MAIL_SPOOL=yes
用户的环境变量初始配置文件
当使用useradd创建用户时,创建的用户家目录下会存在.bash_*环境变量相关的文件,这些环境变量默认文件在/etc/skel目录中拷贝。这个默认拷贝环境变量位置是由/etc/defaults/useradd配置文件中定义
案例:
#在当前用户的家目录下,想要删除所有文件,执行了如下命令
[root@db04 ~]# rm -fr .*
#结果再次登录时
-bash-4.1#
#解决办法
-bash-4.1# cp /etc/skel/.bash* .
#再次登录 即可恢复
[root@db04 ~]#
用户密码管理
创建完账户后,默认是没有设置密码的,所以该账户是没有办法登陆操作系统。只有使用passwd设置好密码后方可登录系统。
注意:
- 普通用户只能更改自己的密码(密码必须满足8位字符)
- 管理员用户能更改任何人的密码(密码长度无限制)
语法:
passwd [用户名]
如果不加用户名,则修改当前登录用户的密码,只有root用户能在passwd命令后加用户名
## 免交互方式
stdin:标准输入
stdout:标准输出
stderr:错误输出
[root@localhost ~]# echo '123@qqdianCOM'|passwd --stdin zls1001Changing password for user zls1001.passwd: all authentication tokens updated successf
随机密码生成
tee:管道命令
-a:append 追加
[root@localhost ~]# echo $RANDOM|tee -a /tmp/pass.txt |passwd --stdin zls
Linux用户权限
为什么Linux目录默认权限755,而文件默认权限为644呢,这是因为Linux权限掩码umask导致。
每个Linux终端都拥有一个umask属性,umask熟悉可以用来确定新建文件、目录的默认权限,默认系统权限掩码为022。在系统中每创建一个文件或者目录,文件默认权限是666,而目录权限则为777,权限对外开放比较大,所以设置了权限掩码之后,默认的文件和目录权限减去umask值才是真实的文件和目录的权限。
对应目录权限为:777-022=755;
对应文件权限为:666-022=644;
执行umask命令可以查看当前默认的掩码,umask -S 023可以设置默认的权限掩码。
Linux权限可以将rwx用二进制来表示,其中有权限用1表示,没有权限用0表示;
Linux权限用二进制显示如下:
rwx=111
r-x=101
rw-=110
r--=100
依次类推,转化为十进制,对应十进制结果显示如下:
rwx=111=4+2+1=7
r-x=101=4+0+1=5
rw-=110=4+4+0=6
r--=100=4+0+0=4
得出结论,用r=4,w=2,x=1来表示权限。