文章目录
引言
当我们使用ls -al 查看文件内容的时候,会出现:
可以看到,最后面蓝色的字体是我们访问目录下的文件名字,那前面的那些毫无疑问就是该文件的一些信息。我们可以看懂一些,比如创建的时间,剩余的部分是什么?
最前面的一串字母:例drwxr-xr-x.表示的权限,那表示的又是谁的权限?所有人吗?还是仅仅root用户的?
首先,最前面的字符d表示文件类型;
- 当为[ d ]则是目录
- 当为[ - ]则是文件
- 当为[ p ] 则是管道文件
- 若为[ s ] 则是socket设备文件
- 若是[ l ]则表示为连结档(link file);(符号链接文件)
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);(块设备文件)
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。(字符设备文件)
紧接着的九个字符表示的都是权限
用户和用户组
Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限
1. 所有者
- 由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。
- 通俗的说,一般情况下,谁创建了文件,谁就是该文件的所有者
- ls ‐al命令可以看到文件的所有者
2.所有组
- 在Linux中,每个账户支持多个用户组
- 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
3.其他组
- 除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
我们在上面的图中可以看到,权限所涉及的字符有三个:r w x
- r : 读
- w :写
- x : 执行
权限对文件的作用:
- r:可获取文件的数据
- w:可修改文件的数据
- x:可将此文件运行为进程
权限对目录的作用:
- r:可使用ls命令获取其下的所有文件列表
- w:可修改此目录下的文件列表;即创建或删除文件,包括子目录
- x:可cd至此目录中;且可使用ls -l来获取所有文件的详细属性信息
前面rwx一共有三组,代表了分别代表了所属用户、所属组、其他组三者对文件的权限
权限组合 | 二进制数 | 十进制数 |
---|---|---|
— | 000 | 0 |
–x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r– | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
例如:
rwxr-xr-x 755 所有者拥有读写执行的权限,所属组拥有读、执行的权限,其他组拥有读、执行的权限
rw------- 600 所有者拥有读、写的权限
r--r---w- 442 所有者拥有读的权限,所属组拥有读的权限,其他组拥有写的权限
如何修改文件的权限
Linux中有几个常用于用户组、所有者和其他组的权限的修改的命令:
- chgrp 改变文件所属组
- chown 改变文件所有者
- chmod 改变文件的权限
改变文件所属组 chgrp
- chgrp实际上就是change gruop的缩写
- 要被改变的群组名必须要在/etc/gruop文件中才行,否则会出错。
这样就把test文件的所属组改为了lhz
改变文件所有者 chown
- chown 实际上就是 change owner 的缩写
- 改变的用户必须是系统上已经存在的用户,也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。
这样就把test.c的所有者改变为了lhz
改变文件权限 chmod
数字类型改变权限
在Linux中,改变文件的权限要用chmod命令。
命令格式:chmod xyz 文件或目录
上边将Makefile的权限从775改为664。
符号类型改变权限
- u 所有者
- g 所属组
- o 其他
- a 全部
格式:
上述将test文件的所属组的可读权限删除
上述将所有者,所属组,其他组都加上了可读权限。
权限的作用
权限对文件的作用
- r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
- w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
- x (execute):该文件具有可以被系统执行的权限
那个可读 r 代表读取文件内容是还好了解,那么可执行(x)呢?这里你就必须要小心啦! 因为在Windows底下一个文件是否具有执行的能力是藉由『 扩展名 』来判断的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的!
至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对『文件的内容』而言,与文件档名的存在与否没有关系喔!
权限对目录的作用
- r (read contents in directory):
表示具有读取目录结构列表的权限,所以当你具有读取®一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
- w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:
- 建立新的文件与目录;
- 删除已经存在的文件与目录(不论该文件的权限为何!)
- 将已存在的文件或目录进行更名;
- 搬移该目录内的文件、目录位置。
总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!
- x (access directory):
咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是『cd』(change directory)啰!
简单的说,就是你可以指定你自己的文件可以让谁查看,谁可以修改,谁可以删除,要不然,你的秘密岂不都被大家知道了