1 用户与用户组管理
1.1 用户与用户组
//linux用户和用户组
Linux系统是一个多用户多任务的分时操作系统
使用系统资源的用户需要账号进入系统
账号是用户在系统上的标识,系统根据该标识分配不同的权限和资源
一个账号包含用户和用户组
//用户分类
超级管理员 UID为0 拥有系统一切权限 一般为root用户
系统用户(伪用户) UID 1-499 方便系统管理,用来运行系统和服务的用户
普通用户 UID从500开始 可以登入系统的用户 拥有系统部分权限
//用户组分类
初始组 用户刚登陆系统所在的组,用户必须有一个且只能有一个
附加组 除了初始组外加入的其他组,可以有0或多个
1.2 Linux 系统添加用户 useradd
`命令格式 useradd [选项] 用户名`
选项i
`-u 用户ID` 指定用户id,一般指定UID要大于500,不指定系统会自动分配
`-g 初始组名` 指定用户初始组 尽量不要指定 系统会创建和新增用户名相同的组为该用户的初始组
`-G 附加组名` 指定用户所属附加组 多个时用逗号隔开
`-c 说明文字` 备注文字 文字会保存到“/etc/passwd”文件第五列
`-d 家目录`指定用户家目录
`-s shell` 指定用户登陆后使用的shell程序vim /etc/passwd 查看添加的用户
vim /etc/shadow 查看用户密码
1.3 Linux修改用户密码 passwd
`命令格式 passwd [选项] 用户名`
选项
`-l 或 --lock` 临时锁住密码使密码失效
`-u 或 --unlock` 解锁
`-d 或 --delete` 删除现有用户的密码
`-n 天数`两次密码修改时间间隔 /etc/shadow第四列
`-x 天数`密码有效期/etc/shadow第五列
`-w 天数`密码到期前的警告天数/etc/shadow第六列
`-i 天数`密码到期后的宽限天数/etc/shadow第七列
`-S 或 --status` 显示用户密码状态
`--stdin` 从标准输入读取令牌 主要用在通过脚本批量添加用户,不需要交互的场景`用户名` 用户名省略 默认修改当前登陆用户的密码 一般修改自己的密码直接执行passwd就可以
只有管理员才有修改用户密码权限 普通用户只能改自己的密码
1.4 Linux 修改系统用户信息 usermod
`命令格式 usermod [选项] 用户名`
选项
`-u` 修改用户ID
`-d` 修改用户家目录
`-c` 修改用户说明
`-g` 修改用户初始组
`-G` 修改用户附加组
`-s` 修改用户登入后所使用的shell程序
`-e` 修改账号失效日期 格式“YYYY-MM—DD”
`-l` 修改用户名
`-L` 锁定账号 与 `passwd -l 用户名`作用一样
`-u` 解锁账号
1.5 Linux 删除用户 userdel
`命令格式 userdel [选项] 用户名`
选项
`-r` 同时删除用户家目录和用户邮件
1.6 Linux查看用户UID和GID id
`命令格式 id [选项] 用户名`
选项
一般不使用任何选项
`-g` 仅显示该用户当前有效的用户组ID
`-G` 显示该用户所有用户组ID
`-u` 仅显示该用户ID
1.7 Linux添加用户组 groupadd
`命令格式 groupadd [选项] 组名`
选项
`-g` 指定组ID
`-r` 创建系统用户组 系统用户组的组ID小于1000 与/etc/login.defs内的 GID_MIN有关
1.8 Linux修改用户组 groupmod
`命令格式 groupmod [选项] 组名`
选项
`-g` 修改组ID
`-n` 修改组名
1.9 Linux删除用户组 groupdel
`命令格式 groupdel 组名`
注 如果用户组是某个用户的初始组 必须先删除这个用户或修改用户的GID后才能删除该用户组
1.10 显示当前登陆用户名 whoami
1.11 显示当前已登陆用户信息 w /who
这两个指令查询的信息都来源于日志文件 /etc/run/utmp
`命令格式 w [选项] 用户名`
选项
`-h 不打印头信息`
`-s 使用短输出格式`
`命令格式 who [选项] 查询文件`
选项
`-H 显示各栏位的标题信息列`
`-q 只显示登入系统的账号名称和总人数`
`-w 显示用户的信息状态栏`
`-u 显示闲置时间 用户一分钟没有进行任何动作 标志“。”号 超过24小时标志"old"`
1.12 用户身份切换 su /sudo
普通用户登陆系统,需要执行某些操作权限不够时,可以切换到有权限的用户身份去执行
su可以进行任何身份的切换,root用户切换其他用户不需要密码 其他情况切换都需要输入对应的登陆密码
`命令格式 su [选项] 用户名`
选项
`-或 -l 或 --login` 切换身份时同时切换环境变量,如果不加该选项 用户切换后环境变量还是旧的
`-c` 只执行一次指令不切换身份注 不加用户名默认切换root
使用su指令需要知道root密码,这样容易导致密码流出很不安全,使用sudo来切换身份只需要知道用户自己的密码就可以,不是所有用户都能使用sudo指令,前提需要管理员给用户开发sudo权限。
`命令格式 sudo [-b] [-u 新使用者账号] 要执行的命令`
选项
`-b` 将后续的命令放到背景中让系统自行运行
`-u` 后面可以接切换的用户名 若无此项代表切换身份为root
`-l` 用法 sudo -l 显示sudo可以执行哪些命令