用户和用户组管理
1. 理解用户和组的意义
Linux的一大特性: 多用户、多任务。 所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响。
假设现在有三个用户:root、xiaoming、xiaowang,三个用户同一时间登录了同一个系统,root去修改配置文件了,xiaoming去创建目录了,xiaowang去访问数据库了,每个用户互不干扰的独立执行自己的任务,并且每个用户不能够越线去访问其他用户正在操作的目录或执行其他用户下的任务,由此可见,不同的用户是拥有各自不同的权限的,Linux通过权限的划分和管理来实现多用户、多任务的运行机制。
2.Linux中的用户及其角色划分
超级用户(管理员):享有最高权限,具备系统中的所有权限(一般为root),UID为0
系统用户 :别称“伪用户”,无法登录系统,其主要作用是支撑系统运行,方便系统管理。uid号码小于1000。
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统。uid 大于1000,登陆shell是bin/bash。
任何一个账户在创建的同时都会在系统里面创建一个同名的组。
3. 用户概览
Users and groups:系统上的每个进程(运行的程序)都是作为特定用户运行的
Every file is owned by a particular user.每个文件是由一个特定的用户拥有 .
Access to files and directories are restricted by user.访问文件和目录受到用户的限制
4. 用户管理
4.1. 用户组group
命令 | 选项 | 含义 |
---|---|---|
groupadd groupname | 创建组 | |
groupadd -g gid groupname | -g | 创建并指定gid |
groupdel groupname | 删除组 |
用户组信息存放位置:/etc/group
4.2. 用户user
命令 | 选项 | 含义 |
---|---|---|
useradd username | 创建用户 | |
useradd -u uid username | -u | 创建并指定uid |
useradd username -s /sbin/nologin | -s | 创建组并指定登陆shell |
useradd username -G groupname | -G | 创建用户,并且指定附加组(存在) |
userdel username | 删除user | |
userdel -r username | -r | 删除user的同时删除家目录 |
usermod -u new_id username | -u | 修改uid |
usermod -s /sbin/nologin username | -s | 修改用户的登陆shell |
usermod -aG username groupname | -aG | 添加用户到附属组 |
- 创建用户时,还会创建一个同名的用户组,并且在/home下面创建一个同名的目录,这个目录就是用户的家目录
判断用户是否存在id $username
查看用户组信息:cat /etc/group
查看用户信息cat /etc/passwd
查看用户密码信息cat /etc/shadow
5.组成员管理
命令 | 选项 | 含义 |
---|---|---|
gpasswd -a username groupname | -a [add] | 给组添加账户(追加) |
gpasswd -M username1,username2 groupname | -M [members] | 同时添加多个用户到组(会覆盖) |
gpasswd -d username groupname | -d [delete] | 从组中删除用户 |