用户配置文件:/etc/passwd
cat /etc/passwd查看linux用户配置文件:
*用户配置文件的内容一共分为7段,通过 :划分,
第一段代表用户名
第二段x代表密码,保存在/etc/shadow文件中
第三段代表uid(用户编号),
第四段代表gid(用户组编号
第五段代表注释(通常为空或描述用户相关注释)
第六段代表用户家目录
第七段代表用户的shell(通常为/bin/bash,系统创建用户有/sbin/nologin等,nologin表示不能登录)
密码配置文件:/etc/shadow
*密码配置文件与/etc/passwd用户配置文件对应,分为9段,通过 :划分,
第一段代表用户名,
第二段代表加密后的密码(两个用户密码相同,加密后的值也不同)
第三段代表上次更改密码的日期(单位:天,从1970/01/01计算到上次修改密码那天过了多少天的天数)
第四段代表两次修改密码中间所需的最小天数
第五段代表密码保持有效的最大天数
第六段代表密码失效前多少天开始提示用户
第七段代表用户在没有登录的情况下账号保持有效的最大天数
第八段代表用户账号的失效时间
第九段暂无意义,保留域
系统备份文件
*在/etc目录下出现的一些文件名后面加 - 符号的文件是系统自动备份文件,用于误删重要文件时恢复数据
用户组管理
1.增加用户组:groupadd groupname
创建好用户组之后查看用户组配置文件,显示已经创建成功,gid(用户组编号)为1004*
2.创建用户组时指定gid(用户组编号),-g参数
*指定gid时选择1000以上未被使用的数字,1000以下为系统保留gid
3.删除用户组:groupdel groupname
删除用户组时,如组内有用户则不能删除*
用户管理
1.创建用户: useradd username
新增用户时如不指定用户组,会创建一个与username相同的组*
2.创建用户时指定用户组: -g 参数
*如下图:创建用户usertest2时,指定用户组为grouptest,创建完成后查看用户配置文件gid为用户组grouptest的gid:1001
**补充:
-u参数:指定用户uid(用户编号)
-d参数:指定用户家目录
-s参数:指定用户shell(/bin/bash、nologin等)
-M参数:在创建用户时,不创建家目录
创建用户命令还可以是:adduser username*
3.删除用户:userdel username
*需要注意在使用该命令删除用户后,不会删除用户家目录,ls /home发现usertest2用户目录还在
4.删除用户的同时删除用户家目录:-r 参数
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中用户可以属于多个组,如下图第三列显示的就是用户拓展组*
给linux01用户添加用户组linux02:
给linux01用户添加多个组(linux02、linux03):
*需要给用户添加多个拓展组时,需要写上所有要添加的组用","分隔开,如果第一次添加linux02组,第二次再添加linux03组,那么linux03组会覆盖linux02组,linux01用户的拓展组就只有linux03
用户密码管理
1.更改密码:
root用户更改密码命令:passwd
提示密码难度不够时,再次输入即可更改成功*
普通用户更改密码命令:passwd username
*提示密码长度不够时,再次输入即可更改成功
密码更改成功后查看密码配置文件/etc/shadow中linux01的第二列已经是加密内容:
第二列显示"!!"代表用户未设置密码,不能登录*
当第二列显示 "*"号时代表密码被锁定,也是无法登陆的用户*
2.锁定与解锁用户密码:
锁定密码:passwd -l username
*将刚才创建好密码的用户linux01锁定后查看密码配置文件/etc/shadow第二列密码加密内容前面显示"!!",代表用户密码已被锁定
解锁密码:passwd -u username
解锁用户linux01的密码后,查看密码配置文件显示正常*
**锁定与解锁用户密码还可以使用上文所说的usermod命令,-L 参数:锁定密码,-U 参数:解锁密码
3.stdin参数:
给用户设置密码时,使用stdin参数,可以直接修改无须二次验证,常用语编写shell脚本中
4.一次性修改密码:(在不使用stdin参数时,也可以无需二次验证修改密码)
使用echo -e一次性修改密码,echo命令加上-e参数时,\n可以解析为换行( \t → tab),组合管道符"|"使用可以直接修改密码,无需二次验证*
密码生成工具:mkpasswd
1.安装expect包:yum -y install expect
2.生成随机密码:
*输入mkpasswd即可生成随机密码,-l 参数:指定生成密码的长度,-s 参数:指定生成的随机密码包含几个特殊字符
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开始的行:
添加如下内容,使linux01用户可以临时拥有root用户的ls、cat权限:
切换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: 即可:
[root@localhost ~]# su - linux02
[linux02@localhost ~]$
[linux02@localhost ~]$ sudo ls /root/
test.log #修改配置文件后没有要求密码验证,直接显示结果
限制root远程登录:
*在某些情况下,为安全考虑可以限制root用户远程登录
[root@localhost ~]# vi /etc/ssh/sshd_config #编辑配置文件限制root远程登录
将此次配置项的注释符号"#"去掉,修改配置值为no
[root@localhost ~]# systemctl restart sshd #重启ssh服务
远程登录提示SSH服务器拒绝了密码,限制远程登录成功
在限制root用户使用远程登录后,有需要的普通用户可以使用su命令切换到root用户,但同时又不想让普通用户知道root密码,此时可以使用sudo免密码验证登录root用户:
编辑sudo配置文件:
此时即可使用sudo免密码认证登录root用户:
[linux01@localhost ~]$ whoami
linux01
[linux01@localhost ~]$ sudo su - root
上一次登录:二 9月 3 22:44:47 CST 2019pts/0 上
[root@localhost ~]#
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。