一、Linux用户与权限
1. 用户和权限的基本概念
1.1、基本概念
用户 是Linux系统工作中重要的一环, 用户管理包括 用户 与 组 管理
在Linux系统中, 不论是由本级或是远程登录系统, 每个系统都必须拥有一个账号 , 并且对于不同的系统资源拥有不同的使用权限
对 文件 / 目录 的权限包括:
权限 | 英文 | 缩写 | 数字序号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | execute | x | 1 |
无权限 | - | 0 |
在 Linux中 ,可以指定 每一个用户 针对 不同的文件或者目录 的 不同权限
1.2、组
为了方便用户管理, 提出了 组 的概念, 如下图所示
1.3、ls -l扩展
ls -l 可以查看文件夹下文件的详细信息, 从左到右 依次是:
权限 , 第一个字符如果是 d 表示目录
硬链接数 , 通俗的讲就是有多少种方式, 可以访问当前目录和文件
拥有者 , 家目录下 文件 / 木兰路 的拥有者通常都是 当前用户
组 , 在linux中, 很多时候, 会出现组名 和 用户名 相同的情况, 后续会讲
大小
时间
名称
2. 终端命令:组管理
本质: 给 同一类型用户 分配权限
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp 组名 文件/目录名 | 修改文件/目录的所属组 —R递归 |
提示:
- 组信息保存在 /etc/group 文件中
我们以root❌0:root,linuxsir 为例: 用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户。
在实际应用中, 可以预先针对 组 设置好权限, 然后 将不同的用户添加到对应的组中 , 从而不用依次为每一个用户设置权限
演练目标:
1、在 指定目录下 创建 aaa 目录
2、新建 dev 组
3、将 aaa 目录的组修改为 dev
chgrp dev aaa
3. 终端命令:用户管理
3.1 创建用户 、 设置密码 、删除用户
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组 新建用户名 | 添加新用户 | -m 自动建立用户家目录 -g 指定用户所在的组, 否则会建立一个和同名的组 |
passwd 用户名 | 设置用户密码 | 如果是普通用户, 直接用 passwd可以修改自己的账号密码 |
userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
cat /etc/passwd | grep 用户名 | 确认用户信息 |
提示:
-
创建用户时, 默认会创建一个和用户名 同名的组名
-
用户信息保存在 /etc/passwd 文件中
/etc/passwd 文件存放的是用户的信息, 由6个分好组成的7个信息, 分别是
-
用户名
-
密码 (x, 表示加密的密码)
-
UID (用户标志)
-
GID(组标志)
-
用户全名或本地账号
-
家目录
-
登录使用的Shell, 就是登录之后, 使用的终端命令
3.2 查看用户信息
命令 | 作用 |
---|---|
id [用户名] | 查看用户UID 和 GID 信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
3.3 su切换用户
- 因为 普通用户 不能使用某些权限, 所以需要 切换用户
命令 | 作用 | 说明 |
---|---|---|
su - 用户名 | 切换用户, 并且企划目录 | -可以切换到用户家目录, 否则保持位置不变 |
exit | 退出当前登录用户 |
-
su 不接用户名, 可以切换到 root , 但是不推荐使用, 因为不安全
-
exit 示意图如下:
3.4 sudo
-
虽然 通过 su -u root 可以切换到 root用户 , 但是 存在严重的 安全隐患
-
linux系统中的 root 账号通常 用于系统的维护和管理 , 对操作系统的所有资源 具有访问权限
-
如果不小心使用 rm -rf … … , 就可能将系统搞瘫痪
-
在大多数版本的linux中, 都不推荐 直接只用 root 账号登录系统
-
sudo 命令用来以其他身份来执行命令, 预设的身份为 root
-
用户使用 sudo 时, 必须先输入密码, 之后5分钟的有效期限 , 超过期限则必须重新输入密码
提示: 若其未经授权的用户企图使用 sudo, 则会发出警告邮件给管理员
3.4.1 给指定用户授予权限
- 本质: 通知 服务器 给 特定用户 分配 临时管理员权限
# 默认存在: root 用户 具备所有的权限
root ALL=(ALL) ALL
# 授予 zhangsan 用户 所有的权限
zhangsan ALL=(ALL) ALL
3.4.2 使用 用户 zhangsan 登录, 操作管理员命令
- 本质: 使用临时管理员权限
# 不切换 root 用户, 也可以完成 添加用户的功能
sudo useradd -m -g dev zhaoliu
4. 修改用户权限
命令 | 作用 |
---|---|
chmod | 修改权限 |
准备工作: 使用root用户操作
# 清空目录中的内容
rm -rf /root/test_tar/*
# 创建测试目录
mkdir -p /root/test_tar/aaa/
# 创