Ubuntu 系统中的用户与用户组
Linux 是个多用户多任务的分时操作系统,所有想要调用系统资源的用户都必须先向系统管理员申请一个账号,然后通过这个账号进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,控制他们对系统资源的访问;另一方面也能帮助用户组织文件,为用户提供安全性保护。每个账号都拥有一个唯一的用户名和用户密码。用户在登录时键入正确的用户名和密码后,才能进入系统和自己的主目录。
用户与用户组间的联系:一对一
:一个用户可以存在于一个用户组中,也可以是组中的唯一成员。一对多
:一个用户可以存在于多个用户组中,那么此用户具有多个组的共同权限。多对一
:多个用户可以存在于一个用户组中,这些用户具有和组相同的权限。多对多
:多个用户可以存在于多个用户组中,其实就是上面三个对应关系的扩展。
一、用户管理
1、查看用户信息
mcdx@ubuntu:~$ cat /etc/passwd # 用户信息在此文件中
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
... ...
mcdx:x:1000:1000:ubuntu,,,:/home/mcdx:/bin/bash
mysql:x:121:129:MySQL Server,,,:/nonexistent:/bin/false
mongodb:x:122:65534::/home/mongodb:/bin/false
redis:x:123:131::/var/lib/redis:/bin/false
文件中每行记录用冒号 :
分隔为 7 个字段,从左到右具体含义是:
用户名:密码占位符(x 表示用户需要密码登录):用户标识号(
UID
):
组标识号(GID
):注释性描述:主目录:登录的shell
2、查看密码文件,注意密码文件是 shadow 用户文件是 passwd
mcdx@ubuntu:~$ sudo cat /etc/shadow # 需要加 sudo
root:!:17686:0:99999:7:::
daemon:*:17379:0:99999:7:::
bin:*:17379:0:99999:7:::
... ...
文件中每行记录用冒号 :
分隔为 9 个字段,从左到右具体含义是:
用户名:加密口令:最后一次修改时间:最短有效天数:最长有效天数:
过期前的警告时间:不活动时间:用户失效时间:暂时保留未使用
3、useradd
创建用户
useradd -h
命令可查看帮助信息
选项 | 说明 |
| 指定一段注释性描述 |
| 指定用户主目录 |
| 如果指定的用户主目录不存在,则用此选项来创建目录并指定为主目录 |
| 指定用户所属的主用户组 |
| 指定用户所属的附加用户组 |
| 指定用户的登录 shell |
| 指定用户的用户号,若有 |
mcdx@ubuntu:~$ sudo useradd -md /home/haha -s /bin/bash -G mcdx haha
mcdx@ubuntu:~$ ls /home/ # 查看用户主目录
haha mcdx
mcdx@ubuntu:~$ tail -3 /etc/passwd # 查看用户信息
mongodb:x:122:65534::/home/mongodb:/bin/false
redis:x:123:131::/var/lib/redis:/bin/false
haha:x:1001:1001::/home/haha:/bin/bash
mcdx@ubuntu:~$ groups haha # 查看用户属于哪些组
haha : haha mcdx # 用户 : 主组 附加组
mcdx@ubuntu:~$ id haha # 也是查看用户信息
uid=1001(haha) gid=1001(haha) 组=1001(haha),1000(mcdx)
4、usermod
修改用户信息
常用的选项跟 useradd
差不多,参见 usermod -h
5、userdel
删除用户
-r
选项顺便删除主目录
sudo userdel haha
二、管理用户组
1、用户组文件是 /etc/group
mcdx@ubuntu:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,mcdx
... ...
文件中每行记录用冒号 :
分隔为 4 个字段,从左到右具体含义是:
组名 : 口令 : 组标识号(
GID
):组内用户列表(多用户可用逗号分隔开)
2、groupadd
增加新用户组
mcdx@ubuntu:~$ sudo groupadd -g 1234 haha
mcdx@ubuntu:~$ tail -1 /etc/group
haha:x:1234:
3、groupmod
修改用户组
举个例子,改名:
mcdx@ubuntu:~$ sudo groupmod -n xixi haha
mcdx@ubuntu:~$ tail -1 /etc/group
xixi:x:1234:
4、groupdel
删除用户组
mcdx@ubuntu:~$ sudo groupdel xixi
mcdx@ubuntu:~$ tail /etc/group
colord:x:123:
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
mcdx:x:1000:
sambashare:x:128:mcdx
mysql:x:129:
mongodb:x:130:mongodb
redis:x:131:
5、members
查看用户组内成员
mcdx@ubuntu:~$ members mcdx
mcdx