在日常工作中,关于用户和组的管理非常多,这里介绍用户和组相关的增、删、改等方面的内容。
用户的分类
1、超级用户
超级用户即root,uid为0
2、普通用户
分为 系统用户 和 一般用户 。
系统用户uid:1-499
一般用户uid:500-60000
用户管理涉及的文件
/etc/login.defs / e t c / l o g i n . d e f s
定义新建用户的部分默认规则
/etc/default/useradd / e t c / d e f a u l t / u s e r a d d
存储新建用户的部分默认规则信息
GROUP=NUM //设置用户的默认组,当禁用用户私有组时有效
INACTIVE=数字 //口令过期后多少禁用账户
EXPIRE=日期 //设置用户默认有效期
SKEL=路径 //设置默认用户配置文件的位置
SHELL=路径 //指定用户的默认shell
/etc/default/useradd / e t c / d e f a u l t / u s e r a d d
文件格式:用户名:密码(x):uid:gid:描述:家目录:用户的shell
密码(x)只显示x,被转存到/etc/shadow
uid 唯一识别用户身份(相当于身份证号),默认>=500,<=60000
用户描述 可以不写,但必须有
uid是按顺序往下分配的,加入新创建了3个用户,uid分别为500,501,502, 由于需要删除了uid为501的用户,过了一段时间再添加 一个用户,他的uid不会是501,而是504。
添加用户
路径及格式
添加用户常使用命令useradd
命令路径:/usr/sbin/useradd
命令格式:useradd USERNAME
选项
-u uid USERNAME:创建时指定uid
-g gid/GROUPNAME USERNAME:创建时指定gid(gid是不存在的初始组)
-G gid/GROUPNAME USERNAME:创建时附加到其他组(可有多个逗号隔开)
-c 描述 USERNAME:创建时指定用户的描述内容
-d /path/to/dir USERNAME :创建时指定用户家目录位置
-s SHELL USERNAME:创建时指定新用户的shell
-M USERNAME:不创建家目录
-r USERNAME:添加一个系统用户(没有家目录,shell为默认shell)
删除用户
删除用户可以使用userdel USERNAME这条命令。这条命令并不能删除用户家目录。
选项:
-r:完全删除用户(包括家目录)
用户变量修改
修改用户变量可以使用命令usermod
选项
-u uid USERNAME:更改用户的uid(不存在的uid)
-g gid USERNAME:更改用户gid(存在的gid)
-c “说明” USERNAME:更改用户说明(用”“括起来)
-d /path/to/dir USERNAME:更改用户家目录(只更改了/etc/passwd中的信息)
-md /path/to/dir USERNAME:更改用户家目录(更改/etc/passwd和/etc/home中的信息)
-s SHELL USERNAME:更改用户的shell
-G gid USERNAME:将用户附加到另一组(原来所在附加组信息会消失)
-aG gid USERNAME:将用户多附加到一个组(原来所附加的信息不消失)
-l NEWNAME OLDNAME:更改用户名
-L USERNAME:锁定用户,用户将无法登陆(让密码失效,没让用户失效)
-U USERNAME:解锁用户
切换用户
切换用户常用命令su,常见用法如下
切换到指定用户身份:
su USERNAME
切换到超级用户
su -
切换到某一用户
su - USERNAME
su 与 su - 的区别:su 只切换用户身份,su - 切换用户身份和环境。
用户密码设定
基本用法
用户的密码设定可以使用命令passwd,用法如下
passwd
修改当前用户的密码
passwd USERNAME
修改指定用户的密码(只有root才可以)
选项
-L:锁定账户
-U:解锁账户
-d:删除用户密码(红帽禁止无密码用户登录)
–stdin:从标准输入(键盘)读取密码
例:
echo “hello” | passwd –stdin user1 //修改user1密码为hello
组管理涉及的文件
/etc/group:存放组信息的文件
文件格式:组名:组密码(x):gid:组员
组密码(x):转存到/etc/gshadow
组成员:可以为空,但必须有
组管理相关命令
添加组
命令:groupadd
用法:groupadd GROUPNAME
参数:
-g GID:指定gid
-r GROUPNAME:添加一个系统组
删除组
命令:groupdel
用法:groupdel GROUPNAME
修改组
命令:groupmod
用法:groupmod GROUPNAME
参数:
-g gid:设置组的gid
-n NEWNAME OLDNAME:更改组名
组加密码
命令:gpasswd
用法:gpasswd GROUPNAME
一般组不登录系统,当需要切换到其他组时需要密码。
登陆到另一个组
命令:newgrp
用法:newgrp GROUPNAME
将当前用户临时切换到另一个组,退出输入exit
注意:切换到自己的附加组时不需要密码,只有切到其他无关组时需要密码。