用户管理
1、用户管理配置文件
用户数据文件:/etc/passwd
[root@CentOS-Test software]# grep test /etc/passwd
test:x:500:500:test:/home/test:/bin/bash
用户账号包含的信息:
test:用户名,用户登录时使用的用户名 x:密码位 500:UID,用户标识号 500:缺省组标识号
test:注释性描述,例如存放用户全名等信息
/home/test:用户的宿主目录
/bin/bash:用户使用的shell,默认为bash
linux用户账号的分类:
分为三种:超级用户(root,UID=0) 具有一切操作权限
普通用户(UID500-65536) 操作权限受到限制
伪用户(缺省用户):(UID 1-499)假用户或虚拟用户
注意:用户的UID的取值,除0外,其它值不允许用户取相同的值,伪用户与系统和程序服务相关:bin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户,伪用户没有登录密码和宿主目录
每个用户都至少属于一个用户组,每个用户组可以包括多个用户,同一用户组的用户享有该组共有的权限
用户口令文件:/etc/shadow
保存了用户口令等重要信息,该文件只有root用户可以读写
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
用户配置文件:/etc/login.defs /etc/default/useradd
新用户信息文件:/etc/skel
登录信息:/etc/motd
2、用户账号维护命令
创建用户(到指定组)并设定密码:
[root@CentOS-Test ~]# useradd -g operator user3 //创建user3用户,并将其加入到operator组
[root@CentOS-Test ~]# passwd user3 //设定user3的密码
更改用户 user3 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
显示useradd命令的默认值:当我们使用useradd命令添加用户时,若未指定参数将使用useradd的默认值,此默认值文件在/etc/default/useradd中,可以编辑此文件来修改useradd命令的默认参数;用命令显示为useradd -D
usermod用于设置已有账号的登录属性,包括用户的宿主目录、私有组、登录的shell等内容
改变用户账号名:user -l newname oldname
//此命令是修改用户的登录名称,但是宿主目录并未更新,还需要修改新的宿主目录
[root@CentOS-Test ~]# usermod -l user5 user1
修改宿主目录
[root@CentOS-Test ~]# usermod -d /home/user5 user5
修改用户的所属组信息
[root@CentOS-Test home]# usermod -g operator ciscoserver
锁定用户账号及接触锁定
[root@CentOS-Test ~]# usermod -L user8 锁定的是密码
[root@CentOS-Test ~]# passwd -l user8 锁定的是密码
[root@CentOS-Test ~]# usermod -U user8 解锁的是密码
[root@CentOS-Test ~]# passwd -u user8 解锁的是密码
删除用户账号
[root@CentOS-Test ~]# userdel user3 删除用户user3 但是其宿主目录并没有删除 /home/user3仍然存在
[root@CentOS-Test ~]# userdel -r user3 将user3用户删除后其宿主目录也一起删除
删除用户口令
[root@CentOS-Test default]# passwd -d yangweiwei 删除的只是用的口令,如若恢复需使用passwd username重新设定密码
清除用户的密码 yangweiwei。
passwd: 操作成功
设定用户的finger信息
[root@CentOS-Test default]# chfn fangguo
Changing finger information for fangguo.
Name []: 张搜索
Office []: 销售部
Office Phone []: 025689
Home Phone []: 15455155
3、组账号维护命令
创建组:groupadd 组名 用于在系统中添加组账号,该组账号的GID大于500
[root@CentOS-Test home]# groupadd ZBS
删除组:groupdel 组名 用于删除组,删除组之前必须先删除该组下的用户,即不能删除含有用户的组
[root@CentOS-Test ~]# groupdel operator
组重命名:groupmod -n newgroupname oldgroupname 此组下面由用户的话,修改后用户也隶属于新的组名下
[root@CentOS-Test default]# groupmod -n yizhidui ZHBA
添加用户到组:gpasswd -a 用户账号名 组账号名 此用户账号名必须先存在
[root@CentOS-Test default]# useradd sunzhaohui
[root@CentOS-Test default]# gpasswd -a sunzhaohui yizhidui
Adding user sunzhaohui to group yizhidui
当然此上述两条命令可以直接用useradd命令完成 useradd -g yizhidui sunzhaohui 前提是组账号必须存在,且创建的用户只属于yizhidui,而是用useradd sunzhaohui创建的用户还属于自己的私有组
从组中删除用户:gpasswd -d 用户账号名 组账号名
设置用户为组管理员:gpasswd -A 用户名 所属组
[root@CentOS-Test default]# gpasswd -A sunzhaohui yizhidui
4、维护命令
显示系统可用的shell
[root@CentOS-Test default]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
设置用户登录的shell
[root@CentOS-Test default]# chsh -s /bin/bash root
5、用户和组状态命令
id:用于显示当前用户所属的uid、gid、和用户所属的组列表
[root@CentOS-Test default]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
显示当前用户的名称
[root@CentOS-Test default]# whoami
root
将当前用户转换为其它用户 su 用户名
[root@CentOS-Test default]# su sunzhaohui
如果转换为root用户:su - root
用于显示指定用户所属组信息:groups 用户名
[root@CentOS-Test ~]# groups sunzhaohui
sunzhaohui : yizhidui
使用RedHat用户管理器来管理用户:system-config-users