用户和组存在的意义
- 系统上每一个进程都需要特定的用户运行
- 每一个文件都有特定的用户拥有
- 访问文件和目录受到用户的限制
- 进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关
配置文件
名称 | 路径 | 描述 |
---|---|---|
用户配置文件 | /etc/passwd | 记录每个用户的基本属性,每一行对应一个用户,所有用户可读 |
组配置文件 | /etc/group | 存放组信息,组名不能重复 |
用户密码信息 | /etc/shadow | 为了安全,只有root用户拥有读权限 |
组
- 基本组, 用户默认基本组, 只能属于一个基本组, 优先使用基本组
- 附加组, 基本组不能满足授权要求, 创建附加组, 用户可以属于多个附加组
- 私有组, 创建用户如果没有创建基本组, 系统会创建和用户同名的组
- 增
groupadd gname
参数:
-g 指定gid
-r 创建系统组
- 删
groupdel gname
- 改
# 修改组名
groupmod -n newname oldname
# 修改组ID
groupmod -g 1001 gname
- 查
cat /etc/group
# 组名:密码占位符(密码存在/etc/gshadow):组id:组成员(只显示附加成员, 基本成员不显示)
root:x:0:
bin:x:1:
daemon:x:2:
...
用户
- uid分类
0 : 超级管理员
1-200 : 系统用户, 由系统分配给系统进程使用
201-999 : 系统用户, 用来运行服务账号, 不需要登陆系统(动态分配)
1000+ : 常规用户
注: Centos7之前, uid的1-499分配给系统用户, 500+则用于普通用户
- 增
useradd username
-u 指定用户的uid, 不能与现有id冲突
-g 指定用户的默认基本组
-G 指定用户的附加组, 用逗号隔开多个附加组
-d 指定用户家目录
-c 指定用户注释信息
-M 不创建家目录
-s 指定用户默认shell, 将shell设置成 /sbin/nologin 就可以禁止用户登录。
-r 创建系统账户, 没有家目录
- 删
userdel uname
userdel -r uname # -r同时删除根目录
- 改
usermod
-u 修改用户的uid
-g 修改用户所属的基本组gid
-G 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的
-a 追加更多附加组, 必须和-G一块使用, -aG 追加附加组
-md 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新目录
-d 指定用户的家目录新位置
-c 修改用户的注释信息
-s 更改用户使用的shell
-l 更改用户登录名
-L 锁定用户
-U 解锁用户
- 查
# 所有用户
cat /etc/passwd
# 用户名:密码占位符:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
# 当前登陆的用户信息
[root@bogon ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon ~]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@bogon ~]# who
root tty1 2019-08-31 15:47
root pts/0 2019-08-31 15:48 (192.168.5.1)
[root@bogon ~]# whoami
root
[root@bogon ~]# w
18:11:32 up 2:25, 2 users, load average: 0.03, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 15:47 2:23m 0.29s 0.29s -bash
root pts/0 192.168.5.1 15:48 4.00s 0.18s 0.04s w
- 密码设置
- 创建账户后, 默认是没有设置密码, 所以无法登陆
- 使用passwd设置好密码后才可以登陆系统
- 普通用户自己修改自己的密码, root可以修改所有人的密码
passwd uname
# 生成随机字符串
# 系统内置
[root@bogon ~]# echo @RANDOM|md5sum|cut -c 1-10
f6287a7eb8
# mkpasswd密码生成工具
-l 密码长度, 默认7位
-d 数字
-c 小写字母
-C 大写字母
yum install -y expect
mkpasswd -l 10 -d 5 -c 3 -C 1
- 切换用户
su - uname
1. 不加-, 切换到root用户, 当前目录没有变化
2. 加-, 切换到root用户, 当前目录为root账户的家目录
3. root切换到普通用户, 加-, 不需要输入密码
- sudo提升权限
1. 默认只能root用户使用, 普通用户使用需要root预先设定好
2. 需要输入密码, 输入的是用户的密码而不是root的密码
3. Centos提权, usermod -G wheel username
配置文件
profile: 设定环境变量, 登陆前运行的脚本和命令
bashrc: 设定本地变量, 定义命令别名
- 个人配置文件
~/.bash_profile, ~/.bashrc
- 全局配置文件
/etc/profile, /etc/profile.d/*.sh, /etc/bashrc
- 配置文件加载顺序
登陆shell /etc/profile, /etc/profile.d/*.sh, ~/.bash_profile, ~/.bashrc, /etc/bashrc
非登陆shell ~/.bashrc, /etc/bashrc, /etc/profile.d/*sh
注: 全局和个人配置冲突, 以个人配置为准
网友评论