Linux用户管理
1 用户管理
linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。
1.1 用户的分类
在Linux下,用户被分为三类
1 超级用户(root,UID=0):用户在系统上有完全权限:可以修改和删除任何文件;可以运行任何命令,通常使用/root作为主目录
2 普通用户(UID>1000):普通用户是使用系统的真实用户人群。一般情况下,普通用户只在自己的主目录和系统范围内的临时目录里(如/tmp和/var/tmp)创建文件。普通用户通常把/bin/bash作为登录Shell和/home的子目录作为主目录。
3 系统用户(伪用户,UID>1&&UID<999):系统用户不代表人,而代表系统的组成部分,是用于服务,进程运行使用的用户。系统用户通常没有登录Shell,因为它们不代表实际登录的用户。系统用户的主目录很少在/home中,而通常在属于相关应用的系统目录中。
1.2 用户管理的配置文件
1 保存用户信息的文件:/etc/passwd
2 保存密码的文件:/etc/shadow
3 保存用户组的文件:/etc/group
4 保存用户组密码的文件:/etc/gshadow
5 用户配置文件:/etc/default/useradd
1.3 储存用户信息文件 /etc/passwd
字段 | 含义 |
---|---|
用户名 | 用户登陆系统的用户名 |
密码 | 密码位 |
UID | 用户标示号 |
GID | 默认组标示号 |
描述信息 | 存放用户的描述信息 |
宿主目录 | 用户登陆系统的默认目录,默认是在/home/下 |
命令解释器 | 用户使用的Shell,默认是bash |
1.4 密码配置文件 /etc/shadow格式
字段 | 含义 |
---|---|
用户名 | 登陆系统的用户名 |
密码 | 加密密码 |
最后一次修改时间 | 用户最后一次修改密码距现在的天数,从1970-1-1起 |
最小时间间隔 | 两次修改密码之间的最小天数 |
最大时间间隔 | 密码有效天数 |
警告时间 | 从系统警告到密码失效的天数 |
账号闲置时间 | 账号闲置时间 |
失效时间 | 密码失效的天数 |
标志 | 标志 |
1.5 用户的组
1 每个用户至少属于一个用户组
2 如果创建用户,没有指定组,此用户指定跟用户名同名组
3 每个用户组可以包含多个用户
4 同一个用户组的用户享有该组共有的权限
名称 | 含义 |
---|---|
组名 | 用的所在的组 |
组密码 | 密码位,一般不使用 |
GID | 主标识号 |
组内用户列表 | 属于改组的用户列表 |
2 用户和组管理命令
2.1 用户管理命令
1 useradd:添加用户
- -u 指定组ID(uid)
- -g 指定所属的组名(gid)
- -G 指定多个组,用逗号“,”分开(Groups)
- -c 用户描述(comment)
- -e 失效时间(expire date)
[root@a4 etc]# useradd jack
[root@a4 etc]# usermod -g users jack
[root@a4 etc]# usermod -c "Hello jack" jack
2 usermod:修改用户
- -l 修改用户名 (login)usermod -l a b(b改为a)
- -g 添加组 usermod -g sys tom-G添加多个组 usermod
- -G sys,root tom–L 锁定用户账号密码(Lock)
- –U 解锁用户账号(Unlock)
[root@a4 etc]# groups jack
jack : users
[root@a4 etc]# usermod -G sys,root jack
[root@a4 etc]# groups jack
jack : users root sys
[root@a4 etc]#
3 userdel:删除用户
- -r 删除账号时同时删除目录(remove)
2.2 组管理命令
1 添加组:groupadd
- -g 指定gid
2 修改组:groupmod - -n 更改组名(new group)
3 删除组:groupdel
4 groups 显示用户所属组
[root@a4 etc]# groupadd cs
[root@a4 etc]# usermod -G cs jack
[root@a4 etc]# groups jack
jack : users cs
[root@a4 etc]# groupmod -n csgo cs
[root@a4 etc]# groups jack
jack : users csgo
[root@a4 etc]# groupdel csgo
[root@a4 etc]# groups jack
jack : users
[root@a4 etc]#