用户管理
-
Linux是一个多用户、多任务的操作系统,可以让多个用户同时使用系统
-
保证用户之间的独立性,允许用户保护自己的资源不受非法访问
-
为了使用户之间共享信息和文件,允许用户分组工作
-
Linux操作系统中存在三种用户:root用户,系统用户,普通用户
-
系统中的每个用户都有一个ID(UID),UID是区分用户的唯一标志。
- root用户的UID是0
- 系统用户的UID范围是1~999,大多数是不能登录的,因为他们的登录shell为/sbin/nologin
- 普通用户的UID范围是1000~6000
-
用户默认的配置信息是 /etc/login.defs
-
用户基本信息保存在/etc/passwd
-
用户密码等安全信息保存在/etc/shadow
用户管理常用命令
命令格式 | 功能 |
---|---|
useradd [选项] [用户账号] | 创建用户账号 |
passwd[选项] 用户账号 | 更改账号密码 |
userdel[-r] [用户账号] | 删除用户账号及其相关文件【如果不加参数只删除用户,而不删除用户的相关文件】 |
usermod[选项] 用户账号 | 修改用户信息 |
chage[选项] 用户账号 | 更改用户密码过期信息0 |
组管理
- Linux中每个用户都要属于一个或者多个组,有个用户组,就可以将用户添加到组中,方便管理员对用户的集中管理
- Linux操作系统中组分为root组,系统组,普通用户组
- 当一个用户属于多个组时,只能有一个组作为该用户的主属组,其他组就被称为此用户的次属组
- 组的基本信息在/etc/group文件中
- 组密码信息在/etc/gshadow文件中
- root用户可以直接修改/etc/group文件达到管理组的目的,也可以使用命令管理组
组管理常用命令
命令格式 | 功能 |
---|---|
groupadd [选项] 组名 | 创建一个新的组 |
groupdel[选项] 组名 | 删除组 |
groupmod[选项] 组名 | 更改组识别码或名称 |
gpasswd[选项] 组名 | 管理组 |
newgrp [组名] | 需要切换到其他用户组 |
用户查询
- /var/run/utmp 存放的是当前正在本系统中的用户信息[二进制文件]
- /var/log/wtmp 存放的是登录过本系统的用户信息[二进制文件]
用户查询常用命令
命令 | 作用 |
---|---|
who | 查询utmp文件并报告当前登录的每个用户 |
w | 查询utmp并显示当前系统中每个用户和它所运行的进程信息 |
id | 显示用户的UID,及其所属组的ID |
whoami | 显示当前终端上的用户名 |
last | 列出目前与过去登录系统用户的相关信息 |
lastlog | 报告所有用户的最近登录情况 或者指定用户的最近登录情况【登录信息是从/var/log/lastlog 读取 |
users | 显示当前登录的用户 |
groups | 查询用户所属组 |
su和sudo命令
-
su命令用于在不注销的情况下切换到系统中的另一个用户
-
su 语法格式:su [选项] [用户账号]
-
如没有指定的使用者账号,则系统默认值为超级用户root
-
普通用户使用这个命令时,必须拥有超级用户或者其他用户的口令
-
超级用户切换到普通用户,则不需要普通用户的口令
-
如果要离开当前用户的身份,可以执行exit命令
-
sudo命令可让用户以其他身份来执行指定的命令,默认身份为root
-
在/etc/sudoers中设置可执行sudo命令的用户
-
sudo语法格式:sudo [选项] 命令
-
用户使用sudo命令时,必须先输入密码,之后有5min的有效期限制
-
通过sudo命令,能把某些超级权限针对性地下放,并且不需要普通用户知道root密码
-
sudo命令也称为受限制的su命令
-
sudo执行命令的过程:当前用户切换到root(或其他指定切换到的用户),然后以root(或其他指定的切换到的用户)身份执行命令,完成后直接退回到当前用户
-
前提是要通过sudo的配置文件/etc/sudoers进行授权