用户的扩展知识

用户的扩展知识

用户的创建流程

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设置好密码后方可登录系统。

注意:

  1. 普通用户只能更改自己的密码(密码必须满足8位字符)
  2. 管理员用户能更改任何人的密码(密码长度无限制)
语法:
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来表示权限。

posted @ 2022-04-05 19:10  Gie  阅读(77)  评论(0编辑  收藏  举报