linux读用户密码,linux用户/用户密码和用户组管理

用户配置文件:/etc/passwd

cat /etc/passwd查看linux用户配置文件:

ebd15f45d9da103cfe5aa8c13c9d06a1.png

*用户配置文件的内容一共分为7段,通过 :划分,

第一段代表用户名

第二段x代表密码,保存在/etc/shadow文件中

第三段代表uid(用户编号),

第四段代表gid(用户组编号

第五段代表注释(通常为空或描述用户相关注释)

第六段代表用户家目录

第七段代表用户的shell(通常为/bin/bash,系统创建用户有/sbin/nologin等,nologin表示不能登录)

密码配置文件:/etc/shadow

05574694e0846616ce7977f9014ac068.png

*密码配置文件与/etc/passwd用户配置文件对应,分为9段,通过 :划分,

第一段代表用户名,

第二段代表加密后的密码(两个用户密码相同,加密后的值也不同)

第三段代表上次更改密码的日期(单位:天,从1970/01/01计算到上次修改密码那天过了多少天的天数)

第四段代表两次修改密码中间所需的最小天数

第五段代表密码保持有效的最大天数

第六段代表密码失效前多少天开始提示用户

第七段代表用户在没有登录的情况下账号保持有效的最大天数

第八段代表用户账号的失效时间

第九段暂无意义,保留域

系统备份文件

15f9ceb9c7f31722fd17facdda6ac15a.png

*在/etc目录下出现的一些文件名后面加 - 符号的文件是系统自动备份文件,用于误删重要文件时恢复数据

用户组管理

1.增加用户组:groupadd groupname

创建好用户组之后查看用户组配置文件,显示已经创建成功,gid(用户组编号)为1004*

13490e626e98867d928a2b2d24a8181c.png

2.创建用户组时指定gid(用户组编号),-g参数

*指定gid时选择1000以上未被使用的数字,1000以下为系统保留gid

f5fab47be9d92a8ae72082c982072ed7.png

3.删除用户组:groupdel groupname删除用户组时,如组内有用户则不能删除*

dc57acc5bb277487421a0308f237682c.png

用户管理

1.创建用户: useradd username

新增用户时如不指定用户组,会创建一个与username相同的组*

65a2e90f0461747a80036d5285606f92.png

2.创建用户时指定用户组: -g 参数

*如下图:创建用户usertest2时,指定用户组为grouptest,创建完成后查看用户配置文件gid为用户组grouptest的gid:1001

1847d46bdd5f879299a47790ac491311.png

**补充:

-u参数:指定用户uid(用户编号)

-d参数:指定用户家目录

-s参数:指定用户shell(/bin/bash、nologin等)

-M参数:在创建用户时,不创建家目录

创建用户命令还可以是:adduser username*

3.删除用户:userdel username

*需要注意在使用该命令删除用户后,不会删除用户家目录,ls /home发现usertest2用户目录还在

2ef85168eab475b9a7b66e8f3eac86fc.png

4.删除用户的同时删除用户家目录:-r 参数

df007f4748ccf34990c551e14ffcea5e.png

5.usermod命令:更改用户信息

修改用户uid:usermod -u uid username

修改用户gid:usermod -g gid username

修改用户家目录:usermod -d 目录路径 username

修改用户shell:usermod -s shell路径 username

锁定用户:usermod -L username

解锁用户:usermod -U username

修改用户拓展组:usermod -G groupname username查看用户拓展组信息:id username,linux中用户可以属于多个组,如下图第三列显示的就是用户拓展组*

6c39a3c5419e33731fa5278dd7a329fe.png

给linux01用户添加用户组linux02:

a2fec8abe04963dc78c09529af2d96d0.png

给linux01用户添加多个组(linux02、linux03):

*需要给用户添加多个拓展组时,需要写上所有要添加的组用","分隔开,如果第一次添加linux02组,第二次再添加linux03组,那么linux03组会覆盖linux02组,linux01用户的拓展组就只有linux03

8152266427306dc2962c9fbb9f95ba93.png

用户密码管理

1.更改密码:

root用户更改密码命令:passwd

提示密码难度不够时,再次输入即可更改成功*

346295a5f22c6d53adfe99f8ffd6286a.png

普通用户更改密码命令:passwd username

*提示密码长度不够时,再次输入即可更改成功

b0f6494cd8f55dbe1da14798e8f6c429.png

密码更改成功后查看密码配置文件/etc/shadow中linux01的第二列已经是加密内容:第二列显示"!!"代表用户未设置密码,不能登录*

4dcb41194a75315ad19341e9936400e9.png

当第二列显示 "*"号时代表密码被锁定,也是无法登陆的用户*

f499dd6a642687503f8447638873a0be.png

2.锁定与解锁用户密码:

锁定密码:passwd -l username

*将刚才创建好密码的用户linux01锁定后查看密码配置文件/etc/shadow第二列密码加密内容前面显示"!!",代表用户密码已被锁定

62bc59abf7f0c45c234918defd47d037.png

解锁密码:passwd -u username解锁用户linux01的密码后,查看密码配置文件显示正常*

ea3bc870d0b06326a34b4ea719f94f5a.png

**锁定与解锁用户密码还可以使用上文所说的usermod命令,-L 参数:锁定密码,-U 参数:解锁密码3.stdin参数:给用户设置密码时,使用stdin参数,可以直接修改无须二次验证,常用语编写shell脚本中

2fe6a9dd4161fa8e77886354cf74e6f6.png

4.一次性修改密码:(在不使用stdin参数时,也可以无需二次验证修改密码)使用echo -e一次性修改密码,echo命令加上-e参数时,\n可以解析为换行( \t → tab),组合管道符"|"使用可以直接修改密码,无需二次验证*

a7284d2b44f4bcf25d20aaf91fb2fb74.png

密码生成工具:mkpasswd

1.安装expect包:yum -y install expect

9f86c274082ca1275209179e7ed922f7.png

2.生成随机密码:

*输入mkpasswd即可生成随机密码,-l 参数:指定生成密码的长度,-s 参数:指定生成的随机密码包含几个特殊字符

d9a3f9c9f1a4f579b58e64c688473205.png

su命令:

*su命令有两种用法:1.切换用户,2.以某个用户的身份执行一条命令

1.切换用户:su - username

[root@localhost ~]# su - linux01 # - 切换用户的同时切换用户环境变量

上一次登录:二 9月 3 19:02:22 CST 2019pts/0 上

[linux01@localhost ~]$ pwd

/home/linux01 #切换完成后查看当前位置显示在用户家目录中

-------------------------------------------------------------------

[root@localhost ~]# su linux01

[linux01@localhost root]$ pwd

/root #不加 - 只切换用户不切换用户环境变量,当前位置还在/root目录中

[linux01@localhost root]$ ls

ls: 无法打开目录.: 权限不够

2.以某个用户的身份去执行命令: -c 参数

*以linux01用户的身份在/test目录下创建文件,查看文件属于linux01用户

[root@localhost ~]# su - -c "touch /test/linux01file.txt" linux01

[root@localhost ~]# ls -l /test/

总用量 0

-rw-rw-r-- 1 linux01 linux01 0 9月 3 19:21 linux01file.txt

sudo命令:

*让普通用户临时拥有root用户的权限

使用linux01用户查看root用户家目录:

[linux01@localhost ~]$ whoami

linux01

[linux01@localhost ~]$ ls /root/

ls: 无法打开目录/root/: 权限不够

给linux01用户添加sudo权限:

[root@localhost ~]# visudo #编辑sudo配置文件

找到配置文件用以root开始的行:

2d8b1b84c1671ff677ae3bb2bff8962a.png

添加如下内容,使linux01用户可以临时拥有root用户的ls、cat权限:

f5cbc9495706671f3efaa68444699fc1.png

切换linux01用户,使用sudo查看/root目录以及目录中的文件:

[root@localhost ~]# su - linux01

上一次登录:二 9月 3 21:20:21 CST 2019pts/0 上

[linux01@localhost ~]$ ls /root/

ls: 无法打开目录/root/: 权限不够

[linux01@localhost ~]$ sudo ls /root #在sudo配置文件中添加权限后即可查看

[sudo] linux01 的密码: #第一次执行需要验证用户密码

test.log

[linux01@localhost ~]$ sudo cat /root/test.log

ABCDEFG

如需在使用sudo时不验证密码,在配置文件中加上NOPASSWD: 即可:

9189022cd80ae0e30bab7ccf2632ee81.png

[root@localhost ~]# su - linux02

[linux02@localhost ~]$

[linux02@localhost ~]$ sudo ls /root/

test.log #修改配置文件后没有要求密码验证,直接显示结果

限制root远程登录:

*在某些情况下,为安全考虑可以限制root用户远程登录

[root@localhost ~]# vi /etc/ssh/sshd_config #编辑配置文件限制root远程登录

将此次配置项的注释符号"#"去掉,修改配置值为no

98944c3f25b771584badddaa96c8e1b2.png

[root@localhost ~]# systemctl restart sshd #重启ssh服务

远程登录提示SSH服务器拒绝了密码,限制远程登录成功

5162cf2fc572b208678c5cef3ad1c84c.png

在限制root用户使用远程登录后,有需要的普通用户可以使用su命令切换到root用户,但同时又不想让普通用户知道root密码,此时可以使用sudo免密码验证登录root用户:

编辑sudo配置文件:

5b860008776d68b7a9983c1efa4fc1e2.png

此时即可使用sudo免密码认证登录root用户:

[linux01@localhost ~]$ whoami

linux01

[linux01@localhost ~]$ sudo su - root

上一次登录:二 9月 3 22:44:47 CST 2019pts/0 上

[root@localhost ~]#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值