Linux用户的添加、修改和删除以及相关配置文件:useradd、passwd、usermod、userdel、相关配置文件

目录

账户的创建(useradd)

第一步:创建账号

第二步:创建密码

useradd参考文件

CROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

UID/GID密码参数参考:/etc/login.defs

密码参数显示命令:chage

账号调整命令:usermod

删除用户命令:userdel


 

账户的创建(useradd)

我们在登录系统时会输入账号与密码,所以建立一个可用的账号同样需要这两个数据

账号可以使用useradd来新建

密码则使用passwd这个命令设置

第一步:创建账号

useradd【-u UID】【-g 初始用户组】【-G 次要用户组】【-mM】【-c 说明栏】【-d 家目录绝对路径】【-s shell】 使用者账号名

选项与参数:

-u:后面接的是UID,是一组数字,直接指定一个特定的UID给这个账号

-g:后面接的用户组就是初始用户组,该用户组的GID会被放到/etc/passwd的第四个栏位内

-G:后面接的用户组是该账号还可以加入的用户组,这个选项与参数会修改/etc/group内相关内容

-M:强制,不要建立使用者家目录

-m:强制,要建立使用者家目录(一般账号默认值)

-c:这个就是/etc/passwd的第五栏的说明内容,可以随便我们设置

-d:指定某个目录成为家目录,而不要使用默认值,务必使用绝对路径

-r:建立一个系统的账号,这个账号的UID会有限制(参考/etc/login.defs)

-s:后面接一个shell,若没有指定则默认是/bin/bash

-e:后面接一个日期,格式为[YYYY-MM-DD]可写入shadow第八栏位,账号失效日的设置选项

-f:后面接shadow的第七栏位选项,指定密码是否会失效,0为立即失效,-1为永不失效(密码只会过期而强制与登录时重新设置而已)

adc6f9730cbc4ee5a4f49496740c8524.png

使用useradd命令后,我们会发现系统其实已经帮我们规定好了很多的默认值:

  • 在/etc/passwd里面建立一行与账户相关的数据,包括建立UID/GID/家目录等
  • 在/etc/shadow里面将此账号的密码相关参数写入,但是尚未有密码
  • 在/etc/group里面加入一个与账号名称一模一样的组名
  • 在/home下面建立一个与账号同名的目录作为用户家目录,且权限为700

补充:我们可以在使用useradd命令时,可以加入-r选项用来创建系统账号,系统账号主要是用来执行系统所需服务的权限设置,所以系统账号默认都不会主动建立家目录

使用useradd建立用户账号时,其实会修改不少地方,而我们需要知道下面几个文件:

  • 用户账号与密码参数方面的文件:/etc/passwd、/etc/shadow
  • 用户用户组相关方面的文件:/etc/group、/etc/gshadow
  • 用户的家目录:/home/账号名称

第二步:创建密码

使用useradd建立账号之后,在默认情况下,该账号是暂时被锁定的。也就是说,该账号是无法登录的,所以我们需要设置密码来激活账号

passwd 【--stdin】账号名称

passwd 【-l】【-u】【--stdin】【-S】【-n 日数】【-x 日数】【-w 日数】【-i 日期】账号

选项与参数:

--stdin:可以通过来自前一个管道的数据,作为密码输入,对shell脚本有帮助

-l:是Lock的意思,会将/etc/shadow第二栏最前面加上!使密码失效

-u:与-l相对,是Unlock的意思

-S:列出密码相关参数,即shadow文件内的大部分信息

-n:后面接天数,shadow的第四栏位,多久不可修改密码天数

-x:后面接天数,shadow的第五栏位,多久内必须要修改密码

-w:后面接天数,shadow的第六栏位,密码过期前的警告日期

-i:后面接日期,shadow的第七栏位,密码失效日期

d59206aa657a4459a66c9c4793002bba.png

stdin使用范例

084d403edc5149a7ab64f61e407fc56d.png

理论上,密码最好符合如下要求:

  • 密码不能与账号相同
  • 密码尽量不要选用字典里面会出现的字符串
  • 密码需要超过8个字符
  • 密码不要使用个人信息,如身份证、手机号码等
  • 密码不要使用简单的关系式,如1+1=2等
  • 密码尽量使用大小写字符、数字、特殊字符的组合

密码上锁,使之无法登录:

742ca1be9fc54bc59fb8519683c29ac9.png

c7db71a04c0d4116a3c79b15836bb1d2.png

密码开锁:

627839a5ea40486ea03d0e6fcd89a876.png

查看密码参数:

38d5bed556a54e739fdcea2860ab357e.png

useradd参考文件

系统为什么会主动建立家目录?家目录内的数据来自于哪?为什么默认使用的shell是/bin/shell?为什么密码字段都已经规划好了?

因为这数据都来源于useradd参考文件

查看:

d00afb9ab3b64e05b09ac7f9c0fd40a9.png

上面这些设置选项所实现的目的分别是:

CROUP=100

解释:新建账号的初始用户组使用GID为100,但我们发现我们的系统上并不是这样的,这是因为针对用户组的角度有两种不同的机制:私有用户组机制公共用户组机制

私有用户机制:系统会建立一个与账号一样的用户组给用户作为初始用户组。这种用户组的设置机制会比较有保密性,这是因为用户都有自己的用户组,而且家目录权限将会设置为700(仅有自己可进入自己的家目录)。使用这种机制将不会参考GROUP=100这个设置值,发行版有RHEL、Fedora、CentOS等

共有用户组机制:就是以GROUP=100这个设置值作为新建账号的初始用户组,因此每个账号都属于users这个用户组,且默认家目录通常的权限都是drwxr-xr-x,由于每个账号都属于users用户组,因此大家都可以互相共享家目录内的数据,代表的发行版如SUSE等

HOME=/home

解释:用户家目录的基准目录

INACTIVE=-1

解释:密码过期后是否会失效的设置值

EXPIRE=

解释:账号失效的日期

SHELL=/bin/bash

解释:默认使用的shell程序文件名

SKEL=/etc/skel

解释:用户家目录参考基准目录 即用户家目录中的各项数据都是由此目录复制过去的

CREATE_MAIL_SPOOL=yes

解释:建立用户的mailbox(邮箱),邮箱目录在/var/spool/mail/下

UID/GID密码参数参考:/etc/login.defs

文件内容:

#使用者默认邮箱放置地址
MAIL_DIR          /var/spool/mail 
 
#权限掩码
UMASK             022 
 
#家目录权限
HOME_MODE         0700 
 
#密码需要重新修改的天数
PASS_MAX_DAYS     99999 
 
#密码不可被修改的天数
PASS_MIN_DAYS     0 
 
#密码需要修改期限前的警告天数
PASS_WARN_DAYS    7 
 
#可登录账号(普通账户)的UID范围
UID_MIN           1000
UID_MAX           60000
 
#系统账号UID的范围
SYS_UID_MIN       201
SYS_UID_MAX       999
 
#子UID的范围
SUB_UID_MIN       100000
SUB_UID_MAX       600100000
SUB_UID_OCUNT     65536
 
#组GID范围
GID_MIN           1000
GID_MAX           60000
 
#系统组GID范围
SYS_GID_MIN       201
SYS_GID_MAX       999
 
#子GID的范围
SUB_GID_MIN       100000
SUB_GID_MAX       600100000
SUB_GID_OCUNT     65536
 
#密码加密的机制使用的是SHA512
ENCRYPT_METHOD SHA512
 
#删除用户时(userdel)是否删除用户的初始用户组(基本组)
USERGROUPS_ENAB yes
 
#在不加-M或-m时,是否主动建立使用者家目录
CREATE_HOME yes
HMAC_CRYPTO_ALGO SHA512

密码参数显示命令:chage

chage 【-ldEImMW】账号名

选项与参数:

-l:列出该账号的详细密码参数

-d:后面接日期,修改shadow第三栏位(最近一次修改密码的日期),格式YYYY-MM-DD

-m:后面接天数,修改shadow第四栏位(密码最短保留天数)

-M:后面接天数,修改shadow第五栏位(密码多久需要修改)

-W:后面接天数,修改shadow第六栏位(密码过期前警告日期)

-I:后面接天数,修改shadow第七栏位(密码失效日期)

-E:后面接日期,修改shadow第八栏位(密码失效日),格式YYYY-MM-DD

71b349dab64649a6a56eec657392764a.png

账号调整命令:usermod

usermod 【-cdegGlsuLU】username

选项与参数:

-c:后面接账号的说明,即/etc/passwd第五栏的说明栏,可以加入一些账号的说明

-d:后面接账号的家目录,即修改/etc/passwd的第六栏

-e:后面接日期,格式是YYYY-MM-DD也就是在/etc/passwd内的第八个栏位的内容

-f:后面接天数,为shadow的第七栏位

-g:后面接初始用户组,修改/etc/passwd的第四个栏位,亦即是GID的栏位

-G:后面接次要用户组,修改这个使用者能够支持的用户组,修改的是/etc/group

-a:与-G合用,可增加次要用户组的支持而非设置

-l:后面接账号名称,亦即是修改账号名称,/etc/passwd的第一栏

-s:后面接shell的实际文件

-u:后面接UID数字,即/etc/passwd第三栏的数据

-L:暂时冻结密码,使之无法登录(修改了/etc/shadow的密码栏)

-U:将/etc/shadow密码栏的感叹号拿掉,解锁

删除用户命令:userdel

此命令的目的在删除用户的相关数据,而用户的数据有:

用户账号/密码相关参数:/etc/passwd、/etc/shadow

用户组相关参数:/etc/group、/etc/gshadow

用户个人文件数据:/home/username、/var/spool/mail/username

userdel 【-r】username

选项与参数:

-r:连同使用者的家目录也一起删除

使用userdel的时机通常是你确定不要让该用户在主机上面使用任何数据了,因为该账号只是暂时不启用的话,可以将/etc/shadow里面的账号失效日期设置为0就可以让该账号无法使用

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值