在本章中,我们将详细讨论Linux中的文件许可和访问模式。文件所有权是Linux的重要组成部分,它提供了一种安全的文件存储方法。Linux中的每个文件都具有以下属性:
文章目录
使用ls -l命令时,它显示与文件许可权相关的各种信息,如下所示
$ls -l /home/amrood
-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile
drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
在此,第一列表示不同的访问模式,即与文件或目录关联的权限。
权限分为三部分,每组中的每个位置代表一个特定的权限,顺序为:读(r),写(w),执行(x)-
文件的权限是Unix系统安全性的第一道防线。Unix权限的基本构建块是read,write和execute权限,下面对此进行了介绍-
授予读取(即查看文件内容)功能。
授予修改或删除文件内容的功能。
具有执行权限的用户可以将文件作为程序运行。
目录访问模式的列出和组织方式与其他任何文件相同。有一些差异需要提及-
访问目录意味着用户可以阅读目录。用户可以查看目录内的文件名。
访问意味着用户可以在目录中添加或删除文件。
执行目录实际上没有任何意义,因此请将其视为遍历权限。
用户必须具有对bin目录的执行访问权限,才能执行ls或cd命令。
要更改文件或目录权限,请使用chmod(更改模式)命令。有两种使用chmod的方法-符号模式和绝对模式。
初学者修改文件或目录权限的最简单方法是使用符号模式。使用符号权限,您可以使用下表中的运算符来添加,删除或指定所需的权限集。
1 | +将指定的权限添加到文件或目录。 |
2 | –从文件或目录中删除指定的权限。 |
3 | =设置指定的权限。 |
这是使用testfile的示例。在测试文件上运行ls -1表示文件的权限如下:
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
然后,上表中的每个示例chmod命令都在测试文件上运行,然后是ls –l,因此您可以看到权限更改-
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod g = rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
使用chmod命令修改权限的第二种方法是使用数字来指定文件的每组权限。
如下表所示,为每个权限分配了一个值,每组权限的总数为该权限集提供了一个数字。
0 | 没有权限 | — |
1 | 执行权限 | –x |
2 | 写权限 | -w- |
3 | 执行和写入权限:1(执行)+ 2(写入)= 3 | -wx |
4 | 阅读权限 | r– |
5 | 读取和执行权限:4(读取)+1(执行)= 5 | r-x |
6 | 读写权限:4(读取)+ 2(写入)= 6 | rw- |
7 | 所有权限:4(读)+ 2(写)+1(执行)= 7 | rwx |
这是使用测试文件的示例。在测试文件上运行ls -1表示文件的权限如下:
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
然后,上表中的每个示例chmod命令都在测试文件上运行,然后是ls –l,因此您可以看到权限更改-
$ chmod 755 testfile
$ls -l testfile
-rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 743 testfile
$ls -l testfile
-rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 043 testfile
$ls -l testfile
----r---wx 1 amrood users 1024 Nov 2 00:10 testfile
在Unix上创建帐户时,它将为每个用户分配所有者ID和组ID。上面提到的所有权限也都是根据所有者和组分配的。
有两个命令可用于更改所有者和文件组-
该CHOWN命令更改文件的所有权。基本语法如下-
$ chown user filelist
用户的值可以是系统上用户的名称,也可以是系统上用户的用户ID(uid)。
以下示例将帮助您理解概念-
$ chown amrood testfile
$
将给定文件的所有者更改为用户amrood。
注 –超级用户root具有更改任何文件所有权的不受限制的功能,但是普通用户只能更改其拥有的那些文件的所有权。该chgrp命令命令更改文件的组所有权。基本语法如下-
$ chgrp group filelist
group的值可以是系统上组的名称,也可以是系统上组的组ID(GID)。
以下示例可帮助您理解概念-
$ chgrp special testfile
$
将给定文件的组更改为特殊组。
通常,执行命令时,必须以特殊特权执行命令才能完成其任务。
例如,当您使用passwd命令更改密码时,新密码将存储在文件/ etc / shadow中。
作为一个普通用户,你没有读或写这个文件出于安全考虑,访问,但是当你改变你的密码,你需要有写权限来此文件。这意味着passwd程序必须为您提供其他权限,以便您可以写入文件/ etc / shadow。
通过称为“ 设置用户ID”(SUID)和“ 设置组ID”(SGID)位的机制,可以向程序授予其他权限。
执行启用了SUID位的程序时,您将继承该程序所有者的权限。未设置SUID位的程序在启动程序的用户的权限下运行。
SGID也是如此。通常,程序以您的组权限执行,但是您的组将仅为此程序更改为该程序的组所有者。
如果允许,SUID和SGID位将显示为字母“ s”。SUID “ s”位将位于所有者的执行权限通常所在的权限位中。
例如,命令-
$ ls -l /usr/bin/passwd
-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*
$
显示SUID位置1,并且该命令归root用户所有。执行位置的大写字母S代替小写字母s表示未设置执行位。
如果目录上启用了sticky位,则只有以下用户之一才能删除文件-
要为任何目录设置SUID和SGID位,请尝试以下命令-
$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname
$
Shadowsocks apk安卓4.4安装和使用指南快喵VPN加速器安卓:使用教程、原理和常见问题解答Shadowsocks libev mbedtls详细介绍及常见问题FAQ关于福建 GFW「网络白名单」的规则测试230亿估值!奇安信集团Pre-IPO融资引爆市场热议iPhone美区账号全面指南Shadowsocks和Advor详解:功能、安装及FAQClash无法更新配置:故障排除和解决方案Clash咋用不了了?原因及解决方法详解轮询策略和网络回调策略的区别及其适用业务场景深入了解warp+翻墙:介绍、使用和常见问题解答25个开源的低代码项目-开源低代码合集在安卓设备上使用Shadowsocks连接代理的指南Clash打不开system proxy的解决方法了解Shadowrockets:保障个人隐私,规避网络限制,全面解析机场测速观察---ssrcloud CNIX如何通过Linux磁盘管理命令管理你的服务器 <span>Linux磁盘管理命令详解和扩展应用案例分析</span>2025 最适合国内的翻墙机场梯子工具推荐白月光机场2025春节促销限时优惠码高速稳定老牌trojan机场推荐:红莓网络机场怎么样?