目录
前言
一、管理用户账号
1、Linux系统中用户账号类型
2、用户标识UID的分类
3、用户账号文件
4、用户账号的初始配置文件
5、用户账号的管理命令
5.1 useradd
5.2 usermod
5.3 passwd
5.4 userdel
二、管理组账号
1、Linux系统中组账号类型
2、组标识号GID的分类
3、组账号文件
4、组账号的管理命令
4.1 groupadd
4.2 gpasswd
4.3 groupdel
三、查询用户信息
1、finger
2、w
3、who
四、目录/文件的权限和归属
1、目录/文件的三种权限
2、访问人群(设置权限的对象)
3、修改目录/文件的权限和归属的命令
3.1 chmod
3.2 chown
3.3 umask
3.4 特殊权限
3.4.1 sticky
3.4.2 suid
3.4.3 guid
前言
Linux系统是一个多用户多任务的分时操作系统,即可通过不同的用户来管理操作系统。我们可以给不同的用户设置不同的权限,来实现不同的需求。而在企业中也是通过创建不同用户,分配不同的权限,这样企业中不同的职位就可根据自己用户权限的大小实现工作中的分工
一、管理用户账号
1、Linux系统中用户账号类型
- 普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限
- 超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的
- 程序用户: 在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等
2、用户标识UID的分类
- Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为用户标识号UID
- UID是操作系统区分用户的基本依据,原则上每个用户的UID号应该是唯一,但也可使用useradd的-o选项来允许使用重复的 UID 创建用户
用户标识号UID的分类:
操作系统版本 | 用户类型 | UID范围 |
CentOS 6 | 普通用户 | 1~499 |
超级用户 | 固定值为0 | |
程序用户 | 500~60000(可修改) | |
CentOS 7 | 普通用户 | 1000~60000(可修改) |
超级用户 | 固定值为0 | |
程序用户 | 1~999 |
3、用户账号文件
- /etc/passwd:存放保存用户名称、宿主目录、登录 Shell 等基本信息
共7段,用冒号“:”隔开
- /etc/shadow:存放用户密码,账号有效期等信息
共9段,用冒号“:”隔开
4、用户账号的初始配置文件
- 文件来源
新建用户帐号时,从 /etc/skel 目录中复制而来
cat /etc/default/useradd
- 主要的用户初始配置文件
~/.bash_profile:开机前先运行的命令文件
~/.bashrc:开机前先运行的命令文件
~/.bash_logout:关机前先运行的命令文件
5、用户账号的管理命令
5.1 useradd
- 新建用户账号
- 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件
- 原理:使用useradd命令新建用户其实是在/etc/passwd末尾增加一条该用户账号的记录 ,实际上useradd命令是修改了passwd文件内容
通式:useradd 选项 新用户名
选项 | 说明 |
---|---|
-u | 指定用户的 UID 号,要求该 UID 号码未被其他用户使用 |
-M | 不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录 |
-s | 指定用户的登录 Shell |
-e | 指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式 |
-d | 指定用户的宿主目录位置(当与-M 一起使用时,不生效) |
-c | 添加用户的备注信息 |
-g | 指定用户的基本组名(或使用 GID 号) |
-G | 指定用户的附加组名(或使用 GID 号) |
拓展:
useradd -u 1020 -M -s /sbin/nologin mimi
//指定用户mimi的UID号为1020并指定该用户为程序用户不允许登录
5.2 usermod
对已有用户账号的属性进行修改
通式:usermod 选项 已有用户名
5.3 passwd
为用户账号设置密码或修改密码
通式:passwd 选项 用户名
拓展:
如何生成12位随机密码?
cat /dev/random | tr -cd [a-zA-Z0-9] | head -c 12
echo "新密码" | passwd --stdin 用户名
//免交互修改密码
5.4 userdel
删除用户
通式:userdel 选项 用户名
选项 | 说明 |
---|---|
-r | 将宿主目录一起删除 |
二、管理组账号
1、Linux系统中组账号类型
- 基本组(私有组): 基本组账号只有一个,一般为创建用户时指定的组
- 附加组(公共组): 用户除了基本组以外,额外添加指定的组
2、组标识号GID的分类
用户标识号GID的分类:
操作系统版本 | 用户类型 | GID范围 |
CentOS 6 | 普通用户 | 1~499 |
超级用户 | 固定值为0 | |
程序用户 | 500~60000(可修改) | |
CentOS 7 | 普通用户 | 1000~60000(可修改) |
超级用户 | 固定值为0 | |
程序用户 | 1~999 |
3、组账号文件
- /etc/group:保存组帐号基本信息
- /etc/gshadow:保存组帐号的密码信息
4、组账号的管理命令
4.1 groupadd
添加组账号
通式:groupadd 选项 组账号名
选项 | 说明 |
---|---|
-g | 指定组账号的GID |
4.2 gpasswd
添加、设置、删除组成员
通式:gpasswd 选项 组账号名
选项 | 说明 |
---|---|
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
4.3 groupdel
删除组账号
通式:groupdel 组账号名
三、查询用户信息
1、finger
查询用户帐号的详细信息
通式:finger 用户名
2、w
查询已登录到主机的用户信息
通式:w 选项 组账号名
3、who
只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令
通式:who 选项 file
选项 | 说明 |
---|---|
-a | 列出所有信息,相当于所有选项。 |
-b | 列出系统最近启动的时间日期。 |
-l | 列出所有可登陆的终端信息。 |
-m | 仅列出关于当前终端的信息,who -m 命令等同于 who am i 。 |
-q | 列出在本地系统上的用户和用户数的清单。 |
-r | 显示当前系统的运行级别。 |
-s | 仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。 |
-u | 显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。 |
-T 或 -w | 显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。 |
四、目录/文件的权限和归属
1、目录/文件的三种权限
权限字符表示 | 权限数字表示 | 说明 | |
---|---|---|---|
目录 | r | 4 | 可查看目录下有哪些文件 |
w | 2 | 可修改目录下的文件 | |
x | 1 | 可执行(作为目录最小的权限) | |
文件 | r | 4 | 可读取文件内容 |
w | 2 | 可修改文件内容 | |
x | 1 | 可运行文件 |
拓展:
若一个文件可以被删除,那与它本身权限有关吗?
答:当前用户如果有该文件所在目录的wr权限,就可以实现删除操作
将/opt/test复制到/mnt,当前用户一定要有什么权限?
答:当前用户一定要有r权限
注:能不能操作目录和文件,和当前登录用户的权限有关系
2、访问人群(设置权限的对象)
对象 | 对象字符表示 |
---|---|
所属主 | u |
所属组 | g |
其他用户 | o |
所有用户 | a |
3、修改目录/文件的权限和归属的命令
3.1 chmod
对属主、属组,其他用户、所有用户进行修改文件权限的操作
用法:chmod u+rwx 文件名 或 chmod 777 文件名
//给文件的属主添加rwc权限
chmod g-w 文件名 或 chmod 757 文件名
//给文件的属组删除w权限
选项 | 说明 |
---|---|
-R | 递归 |
3.2 chown
修改目录/文件的属主、属组
通式:chown 用户名:组名 文件名
用法:
chown 用户名:组名 文件名 //目录/文件的属主、属组都修改
chown 用户名 文件名 //只修改目录/文件的属主
chown :组名 文件名 //只修改目录/文件的属组
3.3 umask
umask的值可以用来保留在创建新文件时的初始权限
- 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
- 新建目录的默认权限: 777-umask
- root的umask 默认是0022,即目录权限为755,文件权限为644
- 非特权用户umask默认是0002,即目录权限为,文件权限为
如当umask值为0321时,即目录权限为654,文件权限为644
3.4 特殊权限
3.4.1 sticky
- 在目录设置Sticky位,只有文件的所有者或root可以删除该文件,为阻止拥有w权限的其他用户删除该目录中的任何文件
- 只能设置在目录上
Sticky权限设定: chmod o+t 目录名 //添加Sticky权限
chmod o-t 目录名 //删除Sticky权限
3.4.2 suid
只能运用在可执行文件上,即开放文件所有者的权限给其他用户,当用户执行该执行文件时,会拥有该执行文件所有者的权限
suid权限设定:chmod o+s 文件名
如chmod u+s /usr/bin/vim
//给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
3.4.3 guid
- 可运用于文件或者目录
- 运用在文件的含义是开放文件所属组的权限给其他用户,即当用户执行该执行文件时,会拥有该执行文件所属组用户的权限
- 运用在目录上的含义是在该目录下所有用户创建的文件或者目录的所属组都和其一样guid权限设定:chmod g+s 文件名
sgid权限设定:chmod g+s 文件名
如chmod g+s /usr/bin/vim
//给vim加上sgid权限,代表所有用户可以使用vim所属组的权限