文章目录
- 前言
- 1. 文件的各个字段含义
- 2. 修改文件权限
- 3. 有点意思的东西
- 总结
前言
前六个博客是基于树莓派的linux教程书籍写的,因为之前的书籍是以树莓派为基准,所以在linux上没有很详细。这个博客开始记录的是我看书过程中遇到的有意思的,没见过或者说不会的内容。
因为是个人笔记类型相关,所以如果这个专栏的博客从头开始看可能会觉得有点凌乱,但怎么说呢,总归是我的一个学习过程。
在Linux学习[1]中我只是基于之前用到的例子进行了简单阐述,这篇博客就更加深入透彻一些。
1. 文件的各个字段含义
我们通常在linux的中断里面通过ls
命令来查看当前目录下的文件。
但如果要看详细内容呢,比如文件的拥有者是谁,归属于哪个组等信息,就需要用ls -al
从上面的效果图中我们截取片段进行详解:
我们以第一句为例进行阐述。
文件类型 | 拥有者权限 | 同组权限 | 其他用户权限 | 文件硬链接数或目录子目录数 | 拥有者 | 所属组别 | 文件文件大小 | 修改时间 | 文件名/目录名称 |
---|---|---|---|---|---|---|---|---|---|
- | rwx | r-x | r-x | 17 | ubuntu | ubuntu | 4096 | Apr 13 04:07 | . |
这里文件类型-
表示是个文件,d
表示是个目录,在linux中一切皆文件,不要纠结目录怎么是文件类型。
若是l
则表示为链接文件(link file);
若是b
则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
若是c
则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
每一个类型有三个权限设置,即拥有者,同组别,其他用户,对某个文件都是有三个权限的设置。
rwx
表示读写执行三种权限,如果某一个用户没有写权限则为r-x
,w
用-
覆盖。
文件硬链接参考: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中什么都是文件,那么文件有可执行权限没问题。比如我们一个脚本文件,那可执行就是可以运行呗。
那如果文件类型是目录呢?那可执行对于目录来讲说明啥?
我们以下面这条信息为例进行阐述:
这里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文件的权限问题更加深入。