> 文章列表 > Linux学习[7]文件权限深入1

Linux学习[7]文件权限深入1

Linux学习[7]文件权限深入1

文章目录

  • 前言
  • 1. 文件的各个字段含义
  • 2. 修改文件权限
  • 3. 有点意思的东西
  • 总结

前言

前六个博客是基于树莓派的linux教程书籍写的,因为之前的书籍是以树莓派为基准,所以在linux上没有很详细。这个博客开始记录的是我看书过程中遇到的有意思的,没见过或者说不会的内容。

因为是个人笔记类型相关,所以如果这个专栏的博客从头开始看可能会觉得有点凌乱,但怎么说呢,总归是我的一个学习过程。
在Linux学习[1]中我只是基于之前用到的例子进行了简单阐述,这篇博客就更加深入透彻一些。


1. 文件的各个字段含义

我们通常在linux的中断里面通过ls命令来查看当前目录下的文件。
Linux学习[7]文件权限深入1

但如果要看详细内容呢,比如文件的拥有者是谁,归属于哪个组等信息,就需要用ls -al
Linux学习[7]文件权限深入1

从上面的效果图中我们截取片段进行详解:

Linux学习[7]文件权限深入1
我们以第一句为例进行阐述。

文件类型 拥有者权限 同组权限 其他用户权限 文件硬链接数或目录子目录数 拥有者 所属组别 文件文件大小 修改时间 文件名/目录名称
- rwx r-x r-x 17 ubuntu ubuntu 4096 Apr 13 04:07 .

这里文件类型-表示是个文件,d表示是个目录,在linux中一切皆文件,不要纠结目录怎么是文件类型。
若是l则表示为链接文件(link file);
若是b则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
若是c则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。

每一个类型有三个权限设置,即拥有者,同组别,其他用户,对某个文件都是有三个权限的设置。
rwx表示读写执行三种权限,如果某一个用户没有写权限则为r-xw-覆盖。

文件硬链接参考:Linux学习[2]

文件大小是以字节为单位的,这里4096即为4096个字节长度。
后面都应该可以理解,看表格即可。比较特殊的是:如果文件名之前多一个.或者就是.,则代表这个文件为“隐藏文件”


2. 修改文件权限

其实之前这个笔记专栏的第一节也写了一些修改权限的内容,但是不全,这里做个补充。

修改指令一般分为三种,为了便于理解,我直接列表。

指令 指令含义 指令用法 用例说明
chgrp 改变文件所属群组 chgrp root test.sh 改变test.sh文件的所属群组为root
chown 改变文件拥有者 chown pi test.sh 改变test.sh文件的拥有者为pi
chmod 改变文件的权限 chmod 777 test 改变test的拥有者同组以及其他用户权限为读写执行

chown指令的使用中,如果修改的时候要连同目录下的次目录或者文件同时更改拥有者,那就
chown [-R] 帐号名称 文件或目录
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有文件都变更

关于chmod的777是啥意思,可以参考Linux学习[1]—用户权限

除了上面的用法,其实还可以使用下面表格的用法,这个用法更为细致。

指令 用户 权限操作 权限类型 文件或目录
chmod u(user) +(增加) r(读) test
chmod g(group) -(除去) r(写) test
chmod o(others) =(设置) x(执行) test
chmod a(all) +/-/= rwx test

举两个例子:
chmod u=rwx,go=rx test
改变test的拥有者权限为rwx,组内和其他用户为rx。
chmod +x test.sh
给test.sh脚本添加执行权限。


3. 有点意思的东西

既然在linux中什么都是文件,那么文件有可执行权限没问题。比如我们一个脚本文件,那可执行就是可以运行呗。
那如果文件类型是目录呢?那可执行对于目录来讲说明啥?
我们以下面这条信息为例进行阐述:
Linux学习[7]文件权限深入1
这里ubuntu用户对目录名为Desktop的有读写执行权限。
读权限,即知道这个目录里有啥。
写权限,即我可以对目录里的文件删除等操作。
执行权限,有点意思。我们用终端切换目录的时候不是用cd命令吗,哎~,如果你没有这个目录的执行权限,抱歉,无法cd进去。就这么一回事。如果你在某目录下不具有x的权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r或w的权限。

这里我看的书上有个有意思的例子,后面再权限赋予的时候需要注意这个问题。

假设有个帐号名称为dmtsai,他的主文件夹在/home/dmtsai/,dmtsai对此目录具有[rwx]的权限。 若在此目录下有个名为the_root.data的文件,该文件的权限如下:
-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data
请问dmtsai对此文件的权限为何?可否删除此文件?
答:
如上所示,由于dmtsai对此文件来说是“others”的身份,因此这个文件他无法读、无法编辑也无法执行, 也就是说,他无法变动这个文件的内容就是了。

但是由于这个文件在他的主文件夹下, 他在此目录下具有rwx的完整权限,因此对于the_root.data这个“文件名”来说,他是能够“删除”的! 结论就是,dmtsai这个用户能够删除the_root.data这个文件!


总结

这篇博客是对这个系列第一篇的补充与拓展,也是另一本书学习过程中的一些记录。
对linux文件的权限问题更加深入。

爱美丽美妆