百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

一篇文章了解 Linux 文件权限(linux文件权限有哪些)

sinye56 2024-11-12 12:46 3 浏览 0 评论

在 Linux 中,文件权限、属性和所有权控制系统进程和用户对文件的访问级别。这确保只有授权用户和进程才能访问特定文件和目录。

Linux 文件权限

基本的 Linux 权限模型通过将每个系统文件与所有者和组相关联并为三个不同类别的用户分配权限访问权限来工作:

  • 文件所有者。
  • 小组成员。
  • 其他人(其他所有人)。

可以使用chown 和chgrp 命令更改文件所有权。

三种文件权限类型适用于每一类用户:

  • 读取权限。
  • 写权限。
  • 执行权限。

这个概念允许您控制哪些用户可以读取文件、写入文件或执行文件。

要查看文件权限,请使用以下ls 命令:

ls -l file_name
-rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

第一个字符表示文件类型。它可以是普通文件 ( -)、目录 ( d)、符号链接 ( l) 或其他特殊类型的文件。以下九个字符代表文件权限,三个三元组,每个三个字符。第一个三元组显示所有者权限,第二个组权限,最后一个三元组显示其他人权限。

在上面的例子中,( rw-r--r--) 表示文件所有者有读写权限 ( rw-),组和其他人只有读取权限 ( r--)。

根据文件类型,文件权限具有不同的含义。

三个权限三元组中的每一个都可以由以下字符构成并具有不同的效果,具体取决于它们是设置为文件还是目录:

权限对文件的影响

允许

特点

文件上的含义

-

该文件不可读。您无法查看文件内容。


r

该文件是可读的。

-

该文件不能更改或修改。


w

可以更改或修改该文件。

执行

-

该文件无法执行。


x

该文件可以执行。


s

如果在user三元组中找到,则设置该setuid位。如果在group三元组中找到,则设置该setgid位。这也意味着x设置了标志。
当在可执行文件上设置setuid或setgid标志时,将使用文件的所有者和/或组权限执行该文件。


S

与 相同s,但未设置x标志。此标志很少用于文件。


t

如果在others三元组中找到,则设置该sticky位。
这也意味着x设置了标志。此标志对文件无用。


T

相同,t但未设置x标志。此标志对文件无用。

权限对目录(文件夹)的影响

目录是特殊类型的文件,可以包含其他文件和目录。

允许

特点

目录上的含义

-

无法显示目录的内容。


r

可以显示目录的内容。
(例如,您可以使用ls.列出目录中的文件。)

-

目录的内容不能更改。


w

目录的内容可以更改。
(例如,您可以创建新文件、删除文件...等)

执行

-

目录无法更改。


x

可以使用 导航该目录cd。


s

如果在user三元组中找到,则设置该setuid位。如果在group三元组中找到,则设置该setgid位。这也意味着x设置了标志。在setgid目录上设置标志时,在其中创建的新文件将继承目录组 ID (GID),而不是创建该文件的用户的主要组 ID。
setuid对目录没有影响。


S

与 相同s,但未设置x标志。这个标志在目录上是无用的。


t

如果在others三元组中找到,则设置该sticky位。
这也意味着x设置了标志。当在目录上设置粘滞位时,只有文件的所有者、目录的所有者或管理用户可以删除或重命名目录中的文件。


T

与 相同t,但未设置x标志。这个标志在目录上是无用的。

更改文件权限

可以使用chmod命令更改文件权限。只有 root、文件所有者或具有 sudo 权限的用户才能更改文件的权限。使用chmod时要格外小心,尤其是在递归更改权限时。该命令可以接受一个或多个由空格分隔的文件和/或目录作为参数。

可以使用符号模式、数字模式或参考文件指定权限。

符号(文本)方法

chmod使用符号模式时命令的语法格式如下:

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

复制

第一组标志 ( [ugoa…]),即用户标志,定义了更改文件权限的用户类别。

  • u - 文件所有者。
  • g - 作为组成员的用户。
  • o - 所有其他用户。
  • a- 所有用户,与ugo.

省略用户标志时,默认为a。

第二组标志 ( [-+=]),即操作标志,定义是删除、添加还是设置权限:

  • - - 删除指定的权限。
  • + - 添加指定的权限。
  • =- 将当前权限更改为指定权限。如果在=符号后没有赋予权限,则指定用户类的所有权限都将被删除。

权限(perms...)使用的是明确设置零个或一个或多个下列字母:r,w,x,X,s,和t。将权限从一个用户的类复制到另一个用户的类时u,请使用集合、g和 中的单个字母o。

为多个用户类 ( [,…])设置权限时,请使用逗号(不带空格)分隔符号模式。

以下是如何chmod在符号模式下使用该命令的一些示例:

  • 授予组成员执行文件的权限,但不能读取和写入文件:chmod g=x filename复制
  • 删除所有用户的写权限:chmod a-w filename复制
  • 排斥性删除其他用户的执行权限:chmod -R o-x dirname复制
  • 删除除文件所有者之外的所有用户的读、写和执行权限:chmod og-rwx filename复制同样的事情也可以通过使用以下形式来完成:chmod og= filename复制
  • 授予文件所有者读取、写入和执行权限,授予文件组读取权限,不授予所有其他用户权限:chmod u=rwx,g=r,o= filename复制

数值方法

chmod使用符号模式时命令的语法格式如下:

chmod [OPTIONS] NUMBER FILE...

复制

使用数字模式时,您可以同时设置所有三个用户类别(所有者、组和所有其他用户)的权限。

许可编号可以是 3 位或 4 位数字。当使用 3 位数字时,第一位代表文件所有者的权限,第二位代表文件所属的组,最后一位代表所有其他用户的权限。

每个写入、读取和执行权限都具有以下数值:

  • r (读取)= 4
  • w (写)= 2
  • x (执行)= 1
  • 无权限 = 0

特定用户类别的权限编号由该组的权限值的总和表示。

要在数字模式下找出文件的权限,只需计算所有用户类别的总数。例如,要向文件所有者授予读取、写入和执行权限,向文件组授予读取和执行权限以及仅向所有其他用户授予读取权限,您可以执行以下操作:

  • 所有者:rwx=4+2+1=7
  • 组:rx=4+0+1=5
  • 其他:rx=4+0+0=4

使用上面的方法,我们得到了754代表所需权限的数字。

要设置setuid,setgid以及sticky bit标志,使用4个位数。

当使用 4 位数字时,第一个数字的含义如下:

  • setuid=4
  • setgid=2
  • 粘性=1
  • 无变化 = 0

接下来的三位数字与使用 3 位数字时的含义相同。

如果第一位为0,则可以省略,模式可以用3位数字表示。数字模式0755与 相同755。

计算数字模式,也可以使用另一种方法(二进制方法),但稍微复杂一些。对于大多数用户来说,知道如何使用 4、2 和 1 计算数字模式就足够了。

您可以使用以下stat 命令以数字表示法检查文件的权限:

stat -c "%a" file_name

复制

以下是如何chmod在数字模式下使用该命令的一些示例:

  • 授予文件所有者读写权限,仅对组成员和所有其他用户授予读取权限:chmod 644 dirname复制
  • 给文件所有者读、写和执行权限,给组成员读和执行权限,对所有其他用户没有权限:chmod 750 dirname复制
  • 为给定目录授予读、写和执行权限,以及一个粘性位:chmod 1777 dirname复制
  • 递归地为文件所有者设置读、写和执行权限,而对给定目录上的所有其他用户没有权限:chmod -R 700 dirname复制

结论

在 Linux 中,使用文件权限、属性和所有权来限制对文件的访问。要更改文件的权限,请使用该chmod命令。

如果您有任何问题或反馈,请随时发表评论。

多多关注作者,作者才有动力分享更多实用内容

相关推荐

RHEL8和CentOS8怎么重启网络

本文主要讲解如何重启RHEL8或者CentOS8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错,当我们安装好RHEL8或者CentOS8,重启启动网络时,会出现以下报错:...

Linux 内、外网双网卡路由配置

1.路由信息的影响Linux系统中如果有多张网卡的情况下,如果路由信息配置不正确,...

Linux——centos7修改网卡名

修改网卡名这个操作可能平时用不太上,可作为了解。修改网卡默认名从ens33改成eth01.首先修改网卡配置文件名(建议将原配置文件进行备份)...

CentOS7下修改网卡名称为ethX的操作方法

?Linux操作系统的网卡设备的传统命名方式是eth0、eth1、eth2等,而CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的...

Linux 网卡名称enss33修改为eth0

一、CentOS修改/etc/sysconfig/grub文件(修改前先备份)为GRUB_CMDLINE_LINUX变量增加2个参数(net.ifnames=0biosdevname=0),修改完成...

CentOS下双网卡绑定,实现带宽飞速

方式一1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0IPADDR=191.3.60.1NETMASK=255.255.2...

linux 双网卡双网段设置路由转发

背景网络情况linux双网卡:网卡A(ens3)和网卡B(...

Linux-VMware设置网卡保持激活

Linux系统只有在激活网卡的状态下才能去连接网络,进行网络通讯。修改配置文件(永久激活网卡)...

VMware虚拟机三种网络模式

01.VMware虚拟机三种网络模式由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有v...

Rocky Linux 9/CentOS Stream 9修改网卡配置/自动修改主机名(实操)

推荐...

2023年最新版 linux克隆虚拟机 解决网卡uuid重复问题

问题描述1、克隆了虚拟机,两台虚拟机里面的ip以及网卡的uuid都是一样的2、ip好改,但是uuid如何改呢?解决问题1、每台主机应该保证网卡的UUID是唯一的,避免后面网络通信有问题...

Linux网卡的Vlan配置,你可能不了解的玩法

如果服务器上连的交换机端口已经预先设置了TRUNK,并允许特定的VLAN可以通过,那么服务器的网卡在配置时就必须指定所属的VLAN,否则就不通了,这种情形在虚拟化部署时较常见。例如在一个办公环境中,办...

Centos7 网卡绑定

1、切换到指定目录#备份网卡数据cd/etc/sysconfig/network-scriptscpifcfg-enp5s0f0ifcfg-enp5s0f0.bak...

Linux搭建nginx+keepalived 高可用(主备+双主模式)

一:keepalived简介反向代理及负载均衡参考:...

Linux下Route 路由指令使用详解

linuxroute命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该...

取消回复欢迎 发表评论: