一.权限
linux 下的权限有 读 ,写 ,执行
读 :r
写 :w
执行 :x
用ll
可以看到任意一个文件(ll
后第一个字母为d
称为目录文件,第一个为-
称为普通文件)的权限情况
1.任何一个文件针对不同的用户权限是不一样的
-
针对不是管理员的普通用户而言
第一组rwx
表示的是文件的拥有者的权限
第二组rwx
表示的是和文件拥有者同组的用户的权限
第三组rwx
表示的是其他用户的权限 -
在Linux其实还有一个特殊的用户,凌驾于权限体系之上root用户
2.与权限有关的命令
- chmod修改文件的权限
chmod -r 【文件】:去掉文件的读权限
chmod +r 【文件】:加上文件的读权限
chmod u-r【文件】:去掉文件拥有者的读权限(只处理文件拥有者)[依次类推]
chmod g-r【文件】:去掉操作同组用户的读权限(操作同组用户的权限)
chmod 0-r【文件】:—————————————(操作其他用户的权限)
-
u
(拥有者)g
(同组用户)o
(其他用户)
- chmod 三位八进制的数字修改文件权限
解释:
例子:chmod 064 txt1 即为:文件拥有者没有r w x权限;同组用户有r w权限,没有x 权限;其他用户有r 权限,没有 w x 权限。
所谓的执行权限是一个程序能执行的必要条件,但是不是充要条件,必须得文件满足系统可执行的格式要求才是真的能执行
一点小补充
-
平时敲得大部分指令都是可执行程序
-
whereis
能够找到某个指令对应的可执行程序路径
例如:whereis ls -
sz
可以把Linux上的文件发送到windows上
例如:sz ls -
在有xshell的机器上,windows上的.exe文件可以直接拖拽到Linux上
-
一个windows上的可执行程序,只能在windows上执行;linux上的可执行程序只能在Linux上,不能混着用
3.辨析
- 对于普通文件来说
1.读意味着能够查看到文件内容
2.写意味着能够修改文件内容
3.执行意味着能够运行程序 - 对于目录文件来说
1.读意味着能够查看目录中包含哪些文件和目录
2.写意味着能够修改目录中包含的内容(新增文件/删除文件)
3.执行意味着能够进入到目录中(cd)
linux中的一个坑
- 坑:只要用户拥有了目录的写权限,不管用户是否具有文件的读写权限,都能删除文件。
- -解决办法:粘滞位
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
补充总结
-
目录的权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件 -
关于权限的总结
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。