1-1. Linux入门基础

0 阅读26分钟

Linux 概述与安装

企业运行模式

铁三角 = 产品 + 研发 + 运维

流程走向: 产品设计 -> 项目研发 ->项目测试 -> 项目上线 ->系统运维

研发 = 前端 + 后端

运维: 产品上线 、后期的运行与维护工作都属于运维工程师范畴

远程连接工具

远程连接工具的作用是,通过远程连接工具远程连接到服务器上,方便操作!

常见的连接工具有:

XShell:一款 Windows 平台下的 SSH 客户端软件,支持 SSH1、SSH2、SFTP、TELNET、RLOGIN 等多种协议。只支持 Windows 平台。

**FinalShell:**一款一体化的服务器网络管理软件,不仅支持 ssh 客户端,还是功能强大的开发工具。

PuTTY:一款基于** SSH、Telnet、Rlogin 和串口连接**的远程终端连接软件,支持 Windows 和 Unix/Linux 系统。

SecureCRT:一款功能强大的终端仿真程序,支持 SSH、Telnet、Rlogin 和串口连接。价格较高,适用于商业用户。

**MobaXterm:**一款功能全面的远程网络工具,包括 SSH、X11、DRP、VNC、FTP、MOSH 等,以及 Unix 命令,登陆之后默认开启 sftp 模式。

WinSCP:一款 Windows 环境下的 SSH 的开源图形化 sftp 工具客户端,支持 scp 协议本地与远程计算机间安全第复制传输文件。

**NxShell:**一款开源的 linux 远程管理工具,支持 sftp,适合日常远程管理 linux 服务器。

Linux 基础命令

备份操作系统

  1. **快照:又称还原点,保存在拍照时系统的状态。**后期随时可以恢复。(注重短期备份或频繁备份)
  2. **克隆:**就是复制的意思,侧重长期备份。做克隆必须关闭虚拟机。

选中要克隆的虚拟机->虚拟机->管理->克隆

Linux 系统使用注意项

Linux 是严格区分大小写

Linux 文件扩展名

Linux 是通过权限位标识来确定文件类型,常见的文件有普通文件、目录、连接文件、块设备文件,在 Linux 中的一些特殊还是要求写“扩展名”的,Linux 不依赖扩展名识别文件类型,扩展名是为了帮助运维人员区分不同的文件类型。

文件扩展名种类

  1. 压缩包:Linux 压缩包常见扩展名:.gz .bz2 .zip .tar。
  2. 二进制软件包:Centos 中使用的二进制安装包是 RPM 包,所有 RPM 包都是.rpm 扩展名。
  3. 程序文件.sh .py; 网页文件.php .html 这些是网页服务器的要求,并不是 Linux 的要求。

Linux 中一切皆文件

所有内容都以文件形式保存。

普通文件,分为一般文件(黑色)可执行文件(绿色)

在 Linux 中所有存储设备必须在挂载后才能使用

Linux 系统的文件目录结构

Linux 系统不同于 Windows,所有文件都在根目录下(/)

路径的概念:

路径区分为绝对路径和相对路径。

绝对路径:不管当前路径在哪,目标路径都从“/”磁盘下开始。

相对路径:指的是一个相对物,一般就是当前的工作路径。

../: 表示上一级目录

./:表示当前目录

目录作用
/bin存放常用命令
/sbin存放超级管理员使用的系统管理程序
/boot存放 Linux 启动时的一些核心文件
/rootroot 用户家目录
/home普通用户家目录
/dev存放外部设备
/etc存放系统所有系统管理的配置文件和子目录
/lib存放系统最基本的动态连接共享库
/media自动识别的设备挂载目录
/mnt临时挂载目录,如光驱
/opt第三方程序安装目录
/proc存放当前内核运行状态的一些特殊文件,是虚拟的,是系统内存的映射,可直接访问获取系统信息
/srv存放一些服务启动后需要提取的数据
/sysLinux2.6 内核后,安装的一个文件系统 sysfs
/tmp存放临时文件
/usr存放用户的应用程序和文件
/var存放不断扩充的东西,常被修改的目录
/run是一个临时文件系统,存放系统启动以来的信息。

Linux 命令入门

终端提示符含义

命令与选项

  1. 什么是命令?

就是 Linux 终端(命令行界面)中输入的呢绒称之为命令

Linux 命令格式:

命令 (空格) 选项 [ 参数 ]

命令名: 执行命令的名字 如:ls、cd、mkdir、touch

空格:必须字符(最少一个)

选项:执行命令所需要的属性信息

参数:命令作用的对像

:::danger 注意:命令与选项之间要有空格,选项与选项之间要有空格,选项与参数之间要有空格是必不可少的一个字符,最少一个

:::

基础命令

  1. uname

查看系统信息

  • -a 列出所有系统信息
  1. ls

列出目录下信息

1. **ls**

含义:列出当前工作路径下的文件名称

2. **ls /home/linux**

含义:列出/home/linux 路径下的文件名称

3. ls linux/

含义:列出当前工作路径下,linux 目录下的文件名

4. ls 后面根参数选项、路径

含义:在列出指定路径下的文件/文件夹名称,并以指定的格式进行显示常见参数:

-a:a 代表 all,表示显示所有的文件/文件夹,而且包含隐藏文件/文件夹

-l:l 代表 list,表示以详细列表的形式进行展示

-d:只显示目录的信息

-h:以较高的可读性(文件大小)来展示

-R:递归显示所有的文件

  1. pwd 显示当前路径
  2. cd 切换目录
  3. clear 清除屏幕信息
  4. whoami 查看当前用户
  5. reboot 重启操作系统
  6. shutdown 关机命令

shutdown 系统在 60s 后关机

shutdown now 系统立即关机

shutdown -h 20 系统在 20 分钟后关机

shutdown -c 系统取消关机

扩展:poweroff 或 init 0 或 shutdown now 关机

  1. type 查看命令是内部命令还是外部命令
  2. history 列出最近输入的一千条信息
  3. hostnamectl 读取或设置操作服务器的主机名
    1. 同时设置静态或瞬态主机名

hostnamectl set-hostname 主机名

如: hostnamectl set-hostname aliyun.cloud

2. **配置灵活主机名**

hostnamectl --pretty set-hostname 主机名

如:hostnamectl --pretty set-hostname "aliyun's cloud"

3. **配置瞬态主机名**

hostnamectl --transient set-hostname 主机名

如:hostnamectl --transient set-hostname alibaba

命令帮助

  1. help 查看命令帮助
  • 区分内部/外部命令

如:type ls

先 type 查看命令是内部/外部命令

  • 外部命令查看帮助

命令名 --help

如:ls --help

  • 内部命令查看帮助

help 命令名

如:help cd

  1. man 手册查看命令帮助

不区分内外部命令

文件管理

文件命名规则

  1. 可使用哪些字符

除“/”字符,所有字符都可使用,但不建议使用特殊字符

正常文件命名规则:

1. 尽量都是用小写字母,因为 Linux 严格取反大小写
2. 如要对文件名进行分割,建议使用"_",zhaobao_2024_12_02

2. 文件名的长度

目录名或文件名长度不能超过 255 个字符

  1. 文件名大小写

Linux 严格区分大小写,所以不建议使用字符的大小写来区分。

建议文件名一律使用小写。

  1. Linux 文件的扩展名

Linux 中不以扩展民对文件类型进行区分,文件扩展名只是房版运维人员更好的区分不同的文件类型,文件类型是依权限位标识进行区分,还可通过文件颜色进行区分。

Linux 下的文件管理

创建目录

在实际应用中,与目录相关的操作就两个:创建和删除目录

  1. mkdir 创建目录
  2. mkdir -p 递归创建
  3. mkdir -v 或 --verbose,为每一个被创建的目录打印一条信息

删除目录(必须是空目录)

  1. rmdir (remove directory)移除空目录
  2. rmdir -p 递归删除空目录

touch 文件创建

文件删除

  1. rm 普通删除

选项:

  • -r:针对文件夹删除,-f 代表递归删除,先把目录下所有文件先删除,然后在删除文件夹。
  • -f:强制删除,不提示,直接删除。
  1. rm -rf /* 一定要慎重

cp(copy)复制操作

mv 剪切或重命名操作

打包压缩与解压缩

  1. 概念

打包在默认情况下,Linux 的压缩概念一次只能压缩一个文件。针对多文件或文件夹是无法直接进行压缩的,所以需要提前对多个文件或文件夹进行打包,这样才可以压缩操作。

通过 dd 命令可以创建指定大小文件

cd /tmp
rm -rf *
dd if=/dev/zero bs=1M count=5 of=a.txt
dd if=/dev/zero bs=1M count=10 of=b.txt
dd if=/dev/zero bs=1M count=15 of=c.txt
ls -lh
  1. 在 Linux 系统中使用打包

#tar [选项] 打包后的名称.tar 多个文件或文件夹

选项说明:

-c:打包

-f:filename,打包后的文件名称

-v:显示打包的进度

-u:update 缩写,更新原打包文件中的文件

-t:查看打包的文件内容

  1. tar -tf 以及 tar -uf

tar -tf 打包后的文件名称 # 查看 tar 中的文件信息

tar -uf 打包后的文件名称 更新 tar 中的内容

  1. 打包并压缩

tar [ 选项 ] 压缩后的压缩包名称 要压缩的文件或文件夹

选项:

-cf:对文件或文件夹进行打包

-v:显示压缩进度

-z:使用 gzip 压缩工具把打包后的文件压缩为.gz

-j:使用 bzip2 压缩为.bz2

-J:使用 xz 压缩为.xz

压缩速率:gzip > bzip2 > xz

压缩率:gzip < bzip2 < xz

压缩与解压缩

  1. zip 压缩

选项:

-r 递归压缩,主要针对文件夹

  1. unzip 解压缩

unzip 压缩包名称 # 解压到当前路径下

unzip 压缩包名称 -d 指定路径 # 解压到指定路径下

vim 编辑器

vi 编辑器

vi(visual editer)编辑器通常被简称为 vi,是 Linux 和 Unix 系统的上的最基本的文本编辑器,类似于 windows 系统下的 notepad(记事本)编辑器。

vim 编辑器

Vim(Vi improved)是 vi编辑器的加强版,比vi 更容易使用,vide 命令几乎全部都可以在 vim 上使用。

vim 编辑器的安装

CentOS7 图像化默认已经安装好了 vi 或 vim。

有些精简版未安装,在有网的前提下,可以使用 yum 工具对 vim 编辑器进行安装

yum intall vim -y

vim 的四种模式(重点)

  1. 命令模式

使用 vim 编辑器时,默认处于命令模式。在该模式下可以移动光标位置,可以通过快捷键对文件内容进行复制、粘贴、删除等操作。

  1. 编辑或输入模式

在命令模式下输入小写字母 a 或小写字母 i 即可进入编辑模式,在该模式下可以对文件的内容进行编辑。

  1. 末行模式

在命令模式下输入冒号:即可进入末行模式,可以在末行输入命令对文件进行查找、替换、保存、退出等操作

  1. 可视化模式(了解)

可以做一些选列操作(通过方向键选择某些列的内容)

vim 四种模式的关系

画板

vim 的使用

  1. 如果文件存在,直接打开
  2. 如果文件不存在,则自动在内存中创建一个新文件

vim 保存文件

在末行模式下,输入 wq,保存并退出

强制退出(不保存)

在末行模式下,输入 q!,强制退出。

命令模式可以进行的操作

  1. 如何进入命令模式

使用 vim 命令打开文件时,默认进入命令模式,其他模式下连续按两次或一次 esc 返回到命令模式。

  1. 命令模式可以进行哪些操作

移动光标、复制、粘贴、剪切、撤销、恢复撤销

  1. 移动光标到首行或末行
  • 移动光标到首行:gg
  • 移动光标到末行:G
  • 移动光标到行首:shift+^
  • 移动光标到行尾:shift+$
  1. 翻屏
  • 向上 翻全屏,按键:ctrl+b(before)或 PgUp
  • 向下 翻全屏,按键:ctrl+f(after)或 PgDn
  • 向上 翻半屏,按键:CTRL+u(up)
  • 向下 翻半屏,按键:CTRL+d(down)
  1. 快速定位光标到指定行

行号+G,如:将光标快速移动到 5 行

  1. 复制/粘贴
    1. 复制当前行

按键: yy

粘贴:在想要粘贴的地方按下 p 键,粘贴在光标所在行的下一行,想要粘贴在光标所在行之前,则使用 P 键。

2. 复制多行,从当前行开始复制指定的行数,如复制 6 行,6yy

粘贴:同上

3. 撤销:u

末行模式下的操作

  1. 进入末行模式

在命令模式下使用冒号:进入

  1. 末行模式有哪些操作

文件保存、退出、查找、替换、显示行号、paste 模式等

  1. 保存/退出

:w 代表对当前文件进行保存,不退出

:q 代表退出当前文件,如果编辑了文件内容,无法退出

:wq 保存并退出。

:q! 代表强制退出,不管是否编辑内容,直接退出,已编辑不保存。

  1. 查找/搜索

在命令模式下进入末行模式输入:或/

  • /搜索内容

如:/hello

搜多到内容,会以高亮显示,取消高亮/noh【no hight light】

  • :/搜索内容

案例:

:/help

取消高亮:

:noh

在一个文件中,搜索

文件内容的替换

需要在命令模式下使用冒号进入末行模式

  1. 只替换当前光标所在这一行的第一个满足条件的结果

: s/要替换的关键词/替换后的关键词/ + 回车

  1. 替换光标所在行中的所有满足条件结果

: s/要替换的关键词/替换后的关键词/g g=global 全局替换

如:

: s/c/3/g

  1. 针对整个文档中的所有行进行替换

:%s/要替换的关键词/替换后的关键词/g g=global 全局替换

如:

:%s/c/3/g

  1. 针对整个文档中的所有行进行替换。只替换每一行中满足条件的第一个结果

:%s/要替换的关键词/替换后的关键词 g=global 全局替换

如:

:%s/c/3

  1. 显示行号

:set nu

nu = number,行号

取消行号:

:set nonu

  1. set paste 模式(扩展)

在 vim 中粘贴代码时,会出现多余缩进的问题。最终会是代码变乱的粘贴代码或数据前,可以开启 paste 模式

:set paste

set nopaste

编辑模式

编辑模式的作用

编辑模式主要时实现对文件的内容进行编辑的一个模式

如何进入编辑模式

在命令模式下,使用小写字母 a 或小写字母 i,进入编辑模式

(扩展)进入编加模式

o 在光标下一行插入 O 在光标上一行插入

a 在光标之后插入 A 在光标所在行尾插入

命令模式+i:insert 缩写,代表在光标之前插入内容

命令模式+a:append 缩写,代表在光标之后插入内容

退出编辑模式

直接按 ESC 键退出

可视化模式

进入可视化模式

  1. 按 CTRL+v 进入可视块
  2. 按小写 v 是可视
  3. 按大写 V 是可视行。

在可视模式中,使用方向键上下左右箭头选中需要复制的区域,按 y 进行复制,按 p 进行粘贴

可视化模式操作

  1. 在命令模式下,按小写 v 进入可视化模式
  2. 移动方向键上下左右选择需要复制的内容,按 y 键进行复制
  3. 移动光标,停止需要粘贴的位置,按 p 进行粘贴操作

查看文件内容

cat 查看文件

  • -n:显示行数

tac 倒序显示文件内容

head 显示文件前 n 行内容

默认显示前 10 行

  • -n 指定显示前 n 行

tail 显示文件后 n 行内容

默认显示后 10 行

  • -n 指定显示后 n 行
  • -f 动态显示后 n 行

管道:将前面命令的执行结果交给后面命令处理

符号:|

可以使用 head 和 tail 命令通过管道“|”查看文件的任意内容

more 命令

注意:加载文件时,不是一点一点加载的,而是把打开文件的时候就已经把文件内容加载完到内存中。

按键功能
回车向下移动一行
d向下移动半页
空格向下移动一页
b向上移动一页
q退出 more

less 分配显示文件内容

不是加载整个文件到内存,而是一点一点加载的,相对于 more 而言,读取大文件时,效率更高一点

按键功能
回车向下移动一行
d向下移动半页
空格向下移动一页
b向上移动一页
less -N 文件名称文件内容显示行号
/字符串(搜索内容)搜索指定内容
上下方向键向上与向下移动,

wc 统计文件行数或单词数

wc [ 选项 ] 文件名称

选项:

-l:表示 lines,行数(以回车/换行符为标准)

-w:表示 words,单词数(依照空格判断单词数量)

-c:表示 bytes,字节数

du 统计文件或文件夹大小

选项:

-s:summaries,只显示汇总的大小,统计文件夹的大小

-h:以较高的可读性显示文件或文件夹的大小

find 命令

find 搜索路径 [ 选项 ]

-name:指定要搜索文件的名称,支持*星号通配符

-type:指定搜多的文件类型,f 代表普通文件,d 代表文件夹

-type:指定文件大小

功能:帮助管理员查找文件路径

find /var -name "boot.log" -type f 在/var 搜索 boot.log 文件

find / -name "boot.log" -type f 全盘搜索 boot.log 文件

find /var/log -size +4M 搜索/var/log 大于 4M 的文件

grep 命令

grep [ 选项】要搜索的关键词 搜索的文件名称

在文件中直接找到包含指定关键词的行,并高亮显示出这些信息

选项:

-n:代表显示包含关键词的行号

echo 命令

在终端输入指定的内容,并输出

echo "文本内容"

>或>>重定向

">" 标准重定向:覆盖输出,会覆盖原先的文件内容

">>" 追加重定向:追加输出,不会覆盖原始文件内容,只会在原始内容末尾继续添加

链接

软链接(ln -s)

硬链接(ln 命令)

硬链接和软链接的区别

硬链接软链接
无论是删除源文件是链接文件,只要有一个文件存在就不受影响删除源文件,链接文件会找不到实际数据
和原文件共用一个inode会新建自己的inode和block,block中不会存储文件数据
不会占用inode和block会占用inode和block
不可以跨分区可以跨分区
不可以链接目录可以链接目录

用户管理

用户组操作

主要是:用户组的添加、修改和一级用户组的删除

组:group

添加:add groupadd 添加组

修改:mod groupmod 修改组

删除:del groupdel 删除组

用户组的添加

groupadd [ 选项 ] 用户组名称

-g:代表用户组的组 ID 编号。自定义组从 1000 开始,不能重复

默认情况下,添加的用户组都会放在一个系统文件中,文件位置 /etc/group

第一列:用户组的名称

第二列:用户组的组密码,使用一个 5x 进行占位,安全起见

第三列:用户组的 ID 编号, 1-999 是系统用户组的编号,1000 以后的组 ID 时自定义组的编号

第四列:用户组内的用户信息

用户组的修改

groupmod [ 选项 ] 原来的用户组名称

-g:gid 的缩写,修改用户组的 id

-n:name 的缩写,修改用户组的名称

用户操作

主要是:用户组的添加、修改和一级用户组的删除

用户:user

添加:add useradd 添加用户

修改:mod usermod 修改用户

删除:del userdel 删除用户

用户的添加

useradd [ 选项 选项的值 ] 用户名称

-g:代表添加用户时指定的用户所属组的主组

-s:代表指定用户可以使用的 shell 类型,默认为/bin/bash(拥有大部分的权限)还可以是/sbin/nologin,/sbin/nologin 不能用于登录操作系统。

/bin/bash -> 给人使用

/sbin/nologin -> 给软件使用

-G:代表添加用户时指定用户所属组的附属组,附加组可以指定多个,用,逗号隔开即可

-u:代表添加用户时指定的用户 ID 编号,ID 编号同样也是从 1000 开始

-c:代表用户的注释信息:lat(龙傲天的账号)

-d:代表用户的家目录,默认为/home/用户名称,可以使用-d 进行更改

-n:取消建立以用户名称为名的群组(了解)

用户信息查询

id 用户名称

查询某个指定的用户的信息

uid:用户编号

gid:用户所属的主组编号

groups:用户的主组一级附属组信息,第一个是主组,后面是附属组,主组只有一个,附属组有多个

用户文件内容

组:/etc/group 文件

用户:/etc/passwd 文件,每创建一个用户,就会在此文件中追加一行

tail -3 /etc/passwd

用户文件内容有 7 列

  1. 用户名称
  2. 用户的密码,使用一个 X 占位,真实密码存储于/etc/shadow
  3. 用户的 id 编号,数字
  4. 用户的主组 id 编号,数字
  5. 代表的注释信息,使用 useradd -c“备注信息”用户名称 进行添加
  6. 用户的家目录,默认在 /home/用户名称
  7. 用户可以使用的 shell 类型,使用 useradd -s /bin/bash 或 /sbin/nologin 用户名称 进行修改

用户修改

-s:修改用户可以使用的 shell 类型

-g:修改用户的主组

-l:login name 修改用户的名称

扩展:

-L:锁定用户,锁定后用户无法登录系统 lock

-U:解锁用户 unlock

-G:修改用户的附属组的编号信息

-d:修改用户的家目录

-c:修改用户的备注信息

给用户设置密码

passwd 命令给用户设置密码

注意:只有 root 用户才能给用户设置密码,普通用户只能需改自己的密码

  1. 交互式

passwd xiaohong

  1. 非交互式

echo "123" | passwd --stdin xiaohong

用户的密码文件:/etc/shadow

切换用户

su 切换用户

su - 用户名

-:横杠,代表切换用户的同时,切换用户的家目录

从 root 切换到普通用户,不需要密码,退出普通用户输入命令 exit

从普通用户切换到其他用户包括 root,需要输入密码

wheel 组

在 linux 中,理论上只有 wheel 组中的用户,才可以通过 su 命令切换到 root 账户;

默认所有普通用户只要指定 root 密码都能切换到 root。然后默认 wheel 组规则不生效

开启 wheel 组

vim /etc/pam.d/su

取消注释

用户删除

  1. 删除用户但不删除用户的家目录

userdel u1

  1. 删除用户同时删除用户的家目录

userdel -r u2

注意:

  1. 如果一个用户的主组是另一个用户的主组,那么删除这个用户的时候,主组是不会被删除的
  2. 如果一个组是一个用户的主组,,就不能直接删除此组,必须先删除用户
  3. 如果一个用户的家目录指定了非/hom 下,删除此用户不会删除该用户指定的家目录

权限管理

权限概述

权限的基本概念

表示权限针对文件权限针对目录
读 r可以查看文件内容可以查看目录中存在的文件名称,使用 ls
写 w可以更改文件的内容:vim 修改可以删除目录中的子文件或者新建子目录(rm)
执行 x可以运行程序,可以进入目录中(cd)

注意:一般在给予目录或文件权限时,会使用套餐组合,给文件 w 权限就要给 r 权限,给目录读取权限就要给执行权限

为什么要设置权限

  1. 服务器中的数据是有价值
  2. 员工的工作职责和分工不同
  3. 应对外部的攻击
  4. 内部管理的需要

普通权限管理

ls -l 查看文件权限

简写为 ll

注意:ll 命令是红帽以及 centos 系统特有的命令,其他操作系统可能不支持

文件类型以及权限解析

Linux 中文件类型一共有 7 种

-:普通文件

d:目录文件

l:软链接(类似 windows 的快捷方式)

b:block,块设备(硬盘、光驱)

p:管道文件

c:字符设备文件(串口设备、光猫)

s:套接口文件

文件或文件夹的权限设置(字符、数字)

**基本语法:**chmod = chang mod

chmod [ 选项 ] 权限设置 文件或文件夹的名称

选项说明:

-R:递归设置,主要用于文件夹的权限设置

三个方面:

  1. 确认要给哪个身份赋予权限 u、g、o、ugo(a)
  2. 添加权限(+)、删除权限(-)、赋予权限(=)
  3. 确认赋予用户什么样的权限,r、w、x

通过数字进行权限设置

权限对应数字意义
r4可读
w2可写
x1可执行

rwx = 4+2+1=7

rw = 4+2=6

rx = 4+1 = 5

文件拥有者以及文件所属组设置

文件拥有者所属组设置

基本语法:chown ch = change,own = owner

chown [ 选项 ] 文件拥有者:文件所属组名称 文件名称

chown [ 选项 ] 文件拥有者.文件所属组名称 文件名称

选项说明

-R:代表递归修改,主要针对文件夹

文件所属组设置

基本语法:chgrp ch = change grp = group

chgrp [ 选项 ] 新文件所属组名称 文件名称

选项说明

-R:代表递归修改,主要针对文件夹

特殊权限

特殊权限 suid

suid 属性只能运用在可执行文件上,含义是开放文件所有者的权限给其他用户,即当

普通用户执行该执行文件时,会拥有该执行文件所有者(root 用户权限)的权限。

suid 仅限于可执行文件,也就是 二进制文件,比如系统下的/usr/bin 下提供的命令,

/usr/bin/ls、/usr/bin/rm

suid 特殊权限只要用户设有 suid 的文件有执行权限,那么当用户执行此文件时,会以

属主的身份去执行 一旦文件执行结束,身份的融合也会随之消失。

注意:

suid 功能是针对二进制命令设置的,不能用在 shell 脚本上。

用户权限位 x 位置处,如果有则为 s,无则为 S,表示该命令存在 suid 权限。

特殊权限 sgid

sgid 属性可运用于文件或目录,运用在文件的含义是开放文件所属组的权限给其他用户,当用户执行该执行文件时,会拥有该执行文件所属组用户的权限。

对于文件夹,为某个目录设置了 sgid 后,该目录文件属于属组;在这个目录下创建的文件、文件夹都会继承该目录的属组。

对于二进制文件,若 g 具有 x 权限,并设置了 sgid 权限,其他用户可以获得属组的权限去执行该二进制文件

特殊权限 sticky

权限只能运行于目录上,限制普通用户在此目录下只能删除自己的文件,不能删除其他用户的文件。

sticky 权限是起到防止被别人误删除的作用!

通过数字修改文件的特殊权限

特殊权限数字表示方式:

Suid:4

Sgid:2

Sticky:1

ACL 访问控制列表

使用场景

当一个用户与文件属主、属组、其他人权限都不相同的时候,我们可以使用 ACL 访问控制列表,也就是说,这个用户对于这个文件不属于三种身份的任何一种,是属于第四种身份,需要使用 ACL 权限去给他赋予单独的权限!

查看 acl 权限

getfacl 文件或目录名称

设置文件的 ACL 权限

setfacl [选项] 文件或目录名称

选项说明:

-m:修改 acl 权限

-x:去掉某个用户或某个组的权限

-b:删除所有 acl 策略

-R:递归,主要针对文件夹

-d:应用到默认访问控制列表的操作(继承效果)

Umask

什么是 umask

代表创建文件的默认权限

root 创建文件默认权限是 644

普通用户创建文件默认权限是 644

查看 umask 值

修改 umask

umask 022
vim ~/.bashrc

在文档末尾添加 umask 022 即可

保存并退出

su 切换用户生效

umask 码作用

umask 码使得用户创建目录和权限时,拥有默认的权限

创建文件的权限默认值

文件权限= 初始权限(666) - umask

创建目录的权限默认值

初始权限(777) ——> 转换成 字母 r w x r w x r w x

umask 权限如:022 ——> 转换成 字母 - - - - w - - w -

隐藏权限

文件的隐藏权限,默认看不到的权限(对管理员也生效)

添加隐藏权限

chattr +a/+i 文件名

选项:

a:限制用户只能追加内容,不能删除,剪切文件

i:限制用户只能查看文件内容,不能删除,剪切,追加,修改文件

查看隐藏权限

lsattr 文件名

删除隐藏权限

chattr -a a.txt
chattr -i b.txt