用户和组管理
原创
©著作权归作者所有:来自51CTO博客作者券券Boss的原创作品,谢绝转载,否则将追究法律责任
用户和组配置文件
1、用户:Linux基于用户身份对资源访问进行控制
- 命令 who am i 或whoami可查询当前用户
- 超级用户:管理员
root
- 程序用户:不需要登录系统,服务于应用程序,维护系统的运行
passwd
文件中最后是nologin
的,大都是程序用户
- 基本组(私有组):当用户创建文件和文件夹是,默认的属组,只能有一个
- 附加组(公共组):用户可以有多个附加组
2、用户相关配置文件
- 用户名
- 密码占位符
- UID
- GID
- 描述信息
- 家目录
- 登录shell
- $6开头的是用sha256加密算法进行加密的,也有md5加密。!!说明 该用户没密码。
- 上一次密码修改时间(单位是天,是距离1970年1月1日多少天)
- 密码最小生存周期(单位:天 0表示随时可以修改密码;n天表示n天内不能修改)
- 密码最大生存周期(单位:天,密码使用的最长时间)
- 密码到期前几天开始警告
- 密码过期之后到账户失效之前的时间限制,密码过期之后还可以用几天
- 账户过期时间
- 保留列
3、创建用户时有关的配置文件
- /etc/login.defs Shadow 密码套件配置
- login.defs是设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs
- /etc/default/useradd:账户创建的默认值
- /etc/skel/:包含默认文件的目录
- ~/.bash_profile :环境变量
- ~/.bashrc : 别名机制
- ~/.bash_logout : 注销管理
添加用户并设置密码
1、添加用户:useradd
- -u 指定用户的uid
- -g 指定用户的gid
- -G 指定附属组,可以有多个,但是这些附属组必须是系统内已经存在的
- -c 指定描述
- -d 指定家目录
- -M 不建立家目录
- -s 指定shell
- -e 指定用户过期时间,日期
- useradd -e $(date -d +180days +%Y-%m-%d) zhangsan设置账户过期时间
为180天后
2、给用户设置密码:passwd
- 超级用户:既可以修改自己的密码,又可以修改别人的密码,并且不需要提供当前密码
- 普通用户:只能修改自己的密码,要求严格,并且需要提供当前密码
- -l 锁定用户
- -u 解锁用户
- -S 查看用户锁定状态
- --stdin 指定可以从标准输入来读取密码,也可以是从管道
切换用户:
- su 用户名:不完全切换,环境变量不发生变化
- su - 用户名,完全切换,环境变量也切换成新用户名的,相当于注销一个再登录一下。
- 退出用户:exit
- shadow文件中密码部分为叹号的用户不能登录。
修改用户信息及组信息
1、修改用户信息:usermod
- 与useradd参数差不多,一个是在创建用户时设定,一个是用户创建好之后
- -u -g -G -d -s
- -L 锁定用户
- -U 解除锁定
- -l 改名
- -G 修改用户的扩展组,(跟原来的不一样,原来所属的扩展组都清除)
- -a 添加用户到组,结合-G使用(原来的组不受影响)
2、删除用户:userdel
3、查看和修改用户密码信息:chage,同时修改shadow文件
chage -d
0 用户名强制 用户下次登录必须更改密码chage -m
2 用户名 修改密码最少使用天数chage -M
50 用户名 修改密码最大使用天数(密码过期时间)chage -I
5 用户名 密码过期后到账户失效的天数(密码过期后账号还能使用的天数)chage -E
"2019-3-5" 用户名 修改的是账户的过期时间chage --help
可查看 各选项
4、添加组账号信息:groupadd ,组配置文件:/etc/group
5、添加删除组成员:gpasswd
- -a:向组内添加一个用户
- -d:从组内删除一个用户成员
- -M:定义组成员列表,以逗号分隔:不管原来组里有哪些成员,都变为我新定义的
6、删除组账号:groupdel
7、修改用户相关信息:chfn
8、查看用户信息命令
id
显示真实和有效的 UID 和 GIDwhoami
查询用户的用户名finger
查询用户帐号的详细信息users
、w
、who
命令 查询已登录到主机的用户信息groups
查看用户所属组信息