Linux系统中的文件权限

文件属性的基本信息

    Linux系统将一切看做文件(包括外部设备都被看作为特殊文件)的原则,使得文件的属性非常丰富。我们在文本命令行界面输入指令ls -l,文件便会以长列表的形式在屏幕上输出,并列出文件的一些基本属性。如图所示:

    使用 ls -l 指令,以长列表的方式列出了用户家目录(~)下的一些文件和目录。每一行的信息包含了文件或目录的一些基本属性,大致可以将它们分为以下几个部分:
    ①文件类型

表示符文件类型
-代表常规文件,包括纯文字文件(ASCII)、二进制文件(binary)以及程序运行过程中读取的某些特定格式的文件
d代表目录(directory)
l代表链接文件
c代表字符型设备文件,比如键盘、鼠标等一些串行端口的接口设备
b代表块设备文件,比如硬盘等一些存储数据,以提供系统存取的接口设备
s代表资料接口文件(sockets),常被用在网络上作数据承接
p代表数据输送文件(FIFO,pipo),可以用于完成无关进程间数据交换的任务。该文件存在于文件系统中,提供了一种比匿名管道更持久稳定的通信方法
n代表网络设备文件

    ②文件权限
    每个文件都有9个文件权限符,三个一组,分别代表文件属主对文件拥有的权限、文件属组中其他用户对该文件拥有的权限和系统中其他用户对文件拥有的权限。文件权限符有r、w、x三种,如果属主、属组和其他用户没有某一权限,对应的权限符号会被短横(-)替代。
    ·对于文件

权限符权限符含义
r代表文件是可读的
w代表文件是可写的
x代表文件是可被执行的

    ·对于目录

权限符权限符含义
r表示可以读取目录中内容的权限,可以使用ls指令将该目录中的内容列表进行显示
w表示具有改动该目录中内容的权限,即:建立新的文件或目录;删除已经存在的文件或目录(不论属主是谁,都可以删除);将已存在的文件与目录更名;转移该目录下文件或目录的位置。
x表示具有进入目录的权限

    ③文件的硬链接总数;
    ④文件属主的用户名;
    ⑤文件属组的组名;
    ⑥文件的大小,以字节为单位;
    ⑦文件创建时间或最近修改的时间;
    ⑧文件名或者目录名称;

文件的默认权限

    从之前创建文件的经历来看,似乎不了解权限对于创建新的文件也没有多大的影响。我们虽然没有进行权限设置,但仔细观察的话会发现,创建出的文件有一组默认的权限。如图所示:

    可能会有所疑惑,我们没有下达任何的权限指令,但这些权限是根据什么设置的呢。其实,系统里面有一个权限掩码umask。我们在以默认方式创建文件时,系统根据我们的umask来设置我们的文件权限。umask的默认值是0022,如图所示:

    要想具体了解我们所创建文件的默认权限和umask有什么关系,就需要了解文件权限描述符r、w、x的权值设定。权值设定如下表所示:

权值二进制值八进制值描述
---0000没有任何权限
--x0011只有执行权限
-w-0102只有写入权限
-wx0113有写入和执行权限
r--1004只有读取权限
r-x1015有读取和执行权限
rw-1106有读取和写入权限
rwx1117有全部权限

    现在我们再来重现看一下系统中的权限掩码umask(0022)。它由四位数字组成,从左到右依次为:粘着位(sticky bit)、属主权限对应的八进制值、属组权限对应的八进制值和其他用户权限对应的八进制值。对于文件权限设定,我们主要关注的是后三位,022代表的权限为:----w–w-,掩码umask就是在创建文件时,从文件的全权限去掉022权限。在Linux系统中,文档的全权限为666:rw-rw-rw-;目录的全权限为777:rwxrwxrwx。所以在创建文件时默认的权限就是,文档644:rw-r—r–;目录为755:rwxr-xr-x。
    当然,我们也可以自定义掩码umask的值。umask的值通常会设置在启动文件/etc/profile或者文件/etc/login.defs中。在文本控制界面也可以通过指令设置umask的值,如图所示,可以看到所创建的文件的默认权限改变了。

修改文件权限:chmod指令

    修改已创建文件的权限有两种方法:使用八进制数字组对文件进行权限变更或使用权限符对文件权限进行变更。
·使用八进制数字组变更文件权限
SYNOPSIS:
    chmod [-R] ### 文件或目录
OPTIONS:
    ###:代表权限的八进制数字组
    -R:对本目录下的所有文件和目录权限进行递归性地全部变更。
使用八进制数字组变更文件权限的一些示例如图所示:

·使用权限符变更文件权限
SYNOPSIS:
    chmod [ugoa] [±=] [rwxXstugo] 文件或目录
OPTIONS:
    第一组参数[ugoa]:u代表属主;g代表属组;o代表其他用户;a代表所有用户。
    第二组参数[+ - =]:+代表在现有权限上增加权限;-代表在现有权限上减少权限;=代表将现有权限设置成后面所跟权限。
    第三组参数[rwxXstugo]:r、w、x分表代表可读、可写、可执行;X代表可执行;u代表将权限设置为与属主相同;g代表将权限设置为与属组相同;o代表将权限设置为与其他用户相同。
使用权限符变更文件权限的示例如图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux文件权限是指对于文件或目录的读、写、执行等操作的控制,它是基于文件的用户和组权限管理的核心特性之一。在Linux,每个文件或目录都由所有者、组和其他人构成,它们各自拥有不同的权限,实现了对文件的精细控制。 文件权限表现为字符形式的属性,该属性通常由九个字符构成,分别表示三组权限:所有者权限、组权限和其他人权限。权限字符的第一位用于表示文件类型,使用字母 d 表示目录,而其它文件使用字母 -。 对于每一组权限,分别对应一个三位数的二进制编码,其分别表示该组的读、写和执行权限,每位对应的数值为 4、2 和 1,因此,不同组和不同操作权限的二进制值可以通过三个相加的值来表示,如下所示: rwx 二进制 权限值 --- ------ ----- 000 0 没有权限 001 1 执行权限 010 2 写权限 011 3 写和执行权限 100 4 读权限 101 5 读和执行权限 110 6 读和写权限 111 7 读、写和执行权限 因此,如果一个文件的权限为 -rwxr-xr-- ,则表示该文件是一个普通文件(文件类型为 -),所有者具有读取、写入和执行权限,组用户具有读取和执行权限,其他用户只有读取权限。 接下来,我们通过一个具体的例子来详细说明文件权限的使用。 假设您创建了一个文件 /home/user/example.txt ,该文件属于用户 user,组为 user_group,要对该文件进行正确的权限设置以满足您的需要。首先,您需要知道可以使用什么命令来设置文件权限,通常使用的命令有 chmod 和 chown 首先,我们来学习如何使用 chmod 命令来修改文件权限。在终端输入以下命令: chmod 750 /home/user/example.txt 其,数字 750 表示分别设置了三个权限组的权限,具体含义如下: - 所有者权限设置为 rwx,即 7 二进制 - 组用户权限设置为 r-x,即 5 二进制 - 其他用户权限设置为 ---,即 0 二进制 也就是说,用户 user 可以读、写、执行该文件,user_group 用户只能读取、执行该文件,其他用户无法操作该文件。 除了使用数字来直接设置文件权限,chmod 还支持使用字母表达式,如下所示: chmod u=rwx,g=rx,o= /home/user/example.txt 其,u 表示所有者,g 表示组用户,o 表示其他用户,等号右边的 rwx、rx 和空格表示设置对应的权限,没有设置表示删除该权限。 接下来,我们来学习如何使用 chown 命令来修改文件的所有者和组,假设我们需要将 /home/user/example.txt 的组设置为 user_group1,需要使用以下命令: chown user:user_group1 /home/user/example.txt 其,冒号前面的 user 表示新的所有者,冒号后面的 user_group1 表示新设置的组,使用如上命令可以轻松地修改文件的所有者和组,进而实现对文件的更细致的权限控制。 在 Linux 文件系统文件权限是非常重要的,因为只有在正确设置了权限后,才能保证文件的安全性、隐私性和完整性等特性,同时也可以避免其它用户和程序的错误访问,因此,在使用 Linux 系统时,深入学习和掌握文件权限的相关概念和使用方法也尤为重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值