初学者如何玩转 Linux 中文件和目录的权限?
nanshan 2024-10-24 11:32 11 浏览 0 评论
与其他操作系统一样,多个用户可以为每个用户创建用户帐户并共享运行 Linux 操作系统的同一台机器。 但是,只要以共享方式使用任何东西,就会出现隐私问题。 第一个用户可能不希望下一个用户查看/编辑/删除他的文件。
Linux Terminal 在处理文件权限方面拥有一些超能力。 我们可以从 Linux 终端授予/撤销每个文件和目录的权限。
什么是文件权限?
文件权限控制用户可以执行的操作。 读取、写入和执行是每个文件可能的 3 个操作。 用户分为 3 大类。 他们是普通用户、组和其他人。 Linux 允许用户在非常细粒度的级别上设置权限。 您可以在文件系统的每个可能位置保护您的文件或目录。
好像很有趣吧?
这里面涉及到三个重要的命令
- chmod(更改模式)*
- chown(更改所有权)
- chgrp(更改组)
其中 chmod 是最重要的命令之一。 在这篇文章中我们只讨论 chmod 命令,其他命令将在以后的文章中继续讨论。
让我们深入研究 chmod 命令。
文件
在我们继续之前,我想确保您清楚文件的读取、写入和执行操作。 前 2 个(读和写)是不言自明的。 它确定用户是否可以读/写文件。
但是,什么是可执行文件?
如果文件中包含一系列指令,则称该文件是可执行的。 一个更好的例子是脚本文件(Shell Scripts)。
什么是 chmod 命令?
chmod 是一个命令,用于将文件或目录的权限更改为对应权限类型。
这是 chmod 命令的语法。
chmod
您需要通过替换上述命令中的操作来授予或撤销权限。
操作
上述语法中的操作分为两类。 让我们在下面探索它们。
用户级别
控制用户级别的权限。
u - 授予用户权限
g - 授予一组权限(一组用户)
o - 授予其他人(不属于上述任何一种情况的人)的许可。
注意:
如果此选项留空,权限将应用于登录用户。 大多数时候它会留空。
文件级别
控制文件级别的权限。
r - 授予读取权限
w - 授予写入权限
x - 授予执行权限
这些操作需要在前面加上“+”或“-”运算符。
“+”表示添加新权限,“-”表示删除现有权限。
例如:
chmod +r sample.txt
上面的命令为 sample.txt 文件添加了读取权限。
是不是很简单? 让我们继续。
如何使文件可执行?
作为一名开发人员,Linux 是我们团队的默认操作系统。 我们最近聘请了一名实习生,他对 Linux 的了解为零,但对学习和探索充满好奇。 我们最初是通过让他写一些 shell 脚本来训练他的。 因为大多数服务器都运行 Linux 操作系统。 他在互联网上找到了整个代码并复制了它(我们故意给了这样的任务)。
他保存了文件,但无法运行脚本。 他不知道真正的问题。 他开始删除几个代码块并尝试一次又一次地运行。
他反复收到“找不到命令(Command not found)”的错误。
终于,他到达了第一行。 他用打印语句(“echo”命令)替换了该行并运行该文件,希望能看到输出。 但是,他仍然没有超越那个错误。
带着挫败感,他寻求帮助。
我们现在来看问题。
基本上,我们可以通过以下命令执行 .sh 文件。
./install.sh
他运行了相同的命令,但没有用。 因为文件不是可执行格式。 所以我运行了魔法命令来使文件可执行。
chmod +x install.sh
现在它是可执行的。 他盯着我看,好像我是个黑客。 理想情况下,这是一个非常简单和基本的概念。
如何从文件中删除权限?
每次我都会被我的同事Divad愚弄,我们在内部做很多爱好项目,我们写了一些shell脚本来快速部署。 每当他写一些脚本时,他总是从该文件中删除所有权限并将更改推送到远程仓库。 因此,每次我必须使用上述命令为我必须执行的操作授予权限时。
让我们快速看一下他用来删除文件权限的命令。
这里我们有一个名为 install.sh 的文件,它具有所有权限(读、写、执行)。 让我们删除这个脚本文件的执行权限。
chmod -x install.sh
您将无法执行此文件并尝试这样做会给您一个错误,如上一个屏幕截图所示。
让我们从文件中删除读取权限。
chmod -r install.sh
读取权限已被删除。 让我们尝试使用 nano(Linux 终端的文件编辑器)读取该文件。 您将能够在底部看到“权限被拒绝”错误。
这同样适用于删除文件的写入权限。
chmod -w install.sh
您可以使用以下命令一起实现上述所有项目。
chmod -rwx install.sh
这是处理文件权限的核心部分,记住我们只是触及了它的皮毛。 尝试理解它并尝试一些示例文件。 因为,谁知道将来,您可能会得到像 Divad 这样的同事。
如何添加/删除目录(文件夹)的权限?
我希望你们中的大多数人在切换到 Linux 后可能会遇到一些目录,例如 /etc、/var、/opt 等。您可能不知道为什么存在这些目录。 但是,您可能会注意到所有这些文件夹都有一个共同点。 也就是说,如果没有 root 权限,您将无法在这些目录中创建文件或文件夹。
安装 Linux 操作系统时,系统会预先配置此设置。
但是,我可以将我的文件夹限制在类似于上述目录的 /home 目录中吗? 答案是肯定的。 您可以通过使用 chmod 命令更改目录的权限来实现此目的。
让我们用一个例子来理解这一点。
我创建了一个名为 locked_directory 的目录,并从该目录中删除了读取权限。 如果我尝试使用 ls 命令读取文件夹的内容,我最终会看到“权限被拒绝”错误消息。
chmod -r locked_directory/
但是,你知道吗,我可以在 locked_directory 中创建另一个名为 dir1 的目录,并读取 dir1 中的文件和文件夹。
那么我们刚才运行的命令的目的是什么? 删除父目录的读取权限应该也删除子目录的读取权限吗?
的确。 这正是我之前告诉你的。 Linux 管理文件权限的粒度级别。
如果要将权限应用于父目录及其所有子目录,则需要使用 chmod 命令传递一个独占标志。
即-R。 它基本上意味着将相同的权限递归地应用于所有子目录(子目录)。 因此,此权限将适用于文件/目录的最终子项。
这是语法,
sudo chmod -R
记住运行命令进行递归操作需要 root 权限。 所以需要在这条命令的开头加上sudo。
sudo chmod -R -r locked_directory
从上面的截图可以看出,递归去除父目录的读权限后,尝试查看子目录文件失败。
处理文件权限的替代方法
或者,您可以使用八进制表示来控制文件权限。
希望你感到困惑。 进一步阅读以清楚地理解。
让我们考虑一个场景。
您想为用户授予读、写和执行权限,为组和其他人授予对install.sh 文件的只读权限?
让我们看看如何使用上述两种方法来实现这一点。
使用符号模式
chmod u+rwx,go+r install.sh
让我们拆解每个部分并尝试理解它们,
u+rwx - 代表为用户增加读、写、执行权限
go+r - 代表为群组和其他人添加读取权限
使用八进制模式
chmod 744 install.sh
让我们分解每个数字并尝试理解它们,
第一个数字 (7) 代表用户的权限 — 7 = ( 4 ( read) +2 ( write) +1( execute) )
第二个数字 (4) 代表组的权限 — 4(读取)
第三个数字(4)代表对其他人的许可——4(读)
总结
在本文中,您了解了如何处理基本的文件和文件夹权限。
我希望你们喜欢这个文章。 我对所有人有一个要求,请自己尝试一些复杂的场景,例如具有权限的排列和组合。 这绝对会对您的整个职业生涯有所帮助。
如果您喜欢并学到了新东西,请拍手。
相关推荐
- 服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下
-
Raid5数据恢复算法原理:分布式奇偶校验的独立磁盘结构(被称之为raid5)的数据恢复有一个“奇偶校验”的概念。可以简单的理解为二进制运算中的“异或运算”,通常使用的标识是xor。运算规则:若二者值...
- 服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复
-
服务器数据恢复环境&故障:由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windowsserver操作系统,没有配置ups。因为服务器异常断电重启后,rai...
- 服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例
-
服务器数据恢复环境:P740+AIX+Sybase+V7000存储,存储阵列柜上共12块SAS机械硬盘(其中一块为热备盘)。服务器故障:存储阵列柜中有磁盘出现故障,工作人员发现后更换磁盘,新更换的磁盘...
- 「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复
-
服务器数据恢复环境:DellPowerVault系列磁盘柜;用RAID卡创建的一组RAID5;分配一个LUN。服务器故障:在Linux系统层面对LUN进行分区,划分sdc1和sdc2两个分区。将sd...
- 服务器数据恢复-ESXi虚拟机被误删的数据恢复案例
-
服务器数据恢复环境:一台服务器安装的ESXi虚拟化系统,该虚拟化系统连接了多个LUN,其中一个LUN上运行了数台虚拟机,虚拟机安装WindowsServer操作系统。服务器故障&分析:管理员因误操作...
- 「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例
-
服务器数据恢复环境:HPStorageWorks某型号存储;虚拟化平台为vmwareexsi;10块磁盘组成raid5(有1块热备盘)。服务器故障:raid5阵列中两块硬盘指示灯变黄掉线,无法读取...
- 服务器数据恢复—基于oracle数据库的SAP数据恢复案例
-
服务器存储数据恢复环境:某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。服务器存储故障&分析:该RAID5阵...
- 「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例
-
服务器虚拟化数据恢复环境:Dell某型号服务器;数块STAT硬盘通过raid卡组建的RAID10;XenServer服务器虚拟化系统;故障虚拟机操作系统:WindowsServer,部署Web服务...
- 服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例
-
服务器数据恢复环境:某品牌服务器中有一组由4块SAS磁盘做的RAID5磁盘阵列。该服务器操作系统为windowsserver,运行了一个单节点Oracle,数据存储为文件系统,无归档。该oracle...
- 服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案
-
RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对...
- 「服务器数据恢复」IBM某型号服务器RAID5磁盘阵列数据恢复案例
-
服务器数据恢复环境:IBM某型号服务器;5块SAS硬盘组成RAID5磁盘阵列;存储划分为1个LUN和3个分区:第一个分区存放windowsserver系统,第二个分区存放SQLServer数据库,...
- 服务器数据恢复—Zfs文件系统下误删除文件如何恢复数据?
-
服务器故障:一台zfs文件系统服务器,管理员误操作删除服务器上的数据。服务器数据恢复过程:1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做...
- 服务器数据恢复—Linux+raid5服务器数据恢复案例
-
服务器数据恢复环境:某品牌linux操作系统服务器,服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。服务器故障&检测:服务器在运行过程中突然瘫痪,...
- 服务器数据恢复—Sql Server数据库数据恢复案例
-
服务器数据恢复环境:一台安装windowsserver操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。在windows服务器内装有SqlServer数据库。存储空间LU...
- 服务器数据恢复—阿里云ECS网站服务器数据恢复案例
-
云服务器数据恢复环境:阿里云ECS网站服务器,linux操作系统+mysql数据库。云服务器故障:在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被tru...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
-
- 服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下
- 服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复
- 服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例
- 「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复
- 服务器数据恢复-ESXi虚拟机被误删的数据恢复案例
- 「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例
- 服务器数据恢复—基于oracle数据库的SAP数据恢复案例
- 「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例
- 服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例
- 服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)