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代表将权限设置为与其他用户相同。
使用权限符变更文件权限的示例如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值