任何文件都有属主、属组、其他人的权限
一、文件属性
1. 文件类型
- d:目录
- -:文件
- l:链接文档
- b:装置文件里的可供储存的接口设备(可随机读取设备)
- c:装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)
2. 用户权限
rw-:文件所有者具备的权限
r–:加入此群组的账号的权限
r–:非本人且没加入该组的其他账号的权限
无论是属主、属组、其他人的权限都是针对账号来设计的
3. 改变文件属性(属主、属组)
- chgrp:改变文件所属群组
- chown:改变文件所有者、属组
chgrp -R group dirname/filename
(-R是递归修改整个目录及文件的属组)chown [OPTION]... [OWNER][:[GROUP]] FILE...
4. 改变文件权限
- chmod:改变文件的权限,SUID、SGID、STID等
在复制文件,给他人时,会复制执行者的属性与权限,
比如文件原权限是-rw-r–r– j user1
经root用户复制到另一个地方后为-rw-r–r– root root 到user2用户路径下
则user2还是不能修改这个文件,因为user2属于其他人。
所以,此时就要修改复制后的文件的权限、属主、属组chmod 770 filename 数字类型改变权限
符号类型改变文件权限 u g o a u=rw u+x a-r
二、目录与文件的权限意义
1. 权限对文件的意义(理解重点:文件权限是针对的实际内容或数据,与此文档的存在与否无关)
r:可读取此文件内容
w:编辑、新增、修改文件内容
x:文件具有被系统执行的权限(注意点:文件是否可执行,要看权限,而不是看拓展名,在Linux中,拓展名只是方便记忆,没有实际意义)
2. 权限对目录的意义(文件名列表)
r:读取目录结构列表
w:异动该目录结构列表 增加、删除、更改命名、搬移该目录内的文件、目录位置
x:目录不能用来执行,代表用户是否能进此目录成为工作目录,就是能cd进入的(非常重要的概念)
注意:若某目录不具有x的权限,那么就无法切换到该目录,也就无法执行该目录下的任何命令,即使有该目录的r、w。所以在开放目录给任何人浏览时,至少加r、x。只有w,是无法浏览目录结构的,只是能切到该目录
3. 用户操作功能与权限
要读一个文件,要具备这个文件所在目录的x权限,所以通常开放目录,至少具备rx这两个权限
三、Linux文件种类
1. 正规文件 ls -al 第一个字符为-的
- 纯文本文档
- 二进制文件:可执行文件
- 数据格式文件:读出出来是乱码
2. 目录 “d”
3. 连接文件 “l”
类似于Windows下的快捷方式
4.设备与装置文件 /dev
区块设备档“b”:一些储存数据,以提供系统随机存取的接口设备,比如:硬盘
字符设备文件”c”:串行端口的接口设备,比如键盘、鼠标
四、Linux文件拓展名
- 文件是否可执行,要看权限,而不是看拓展名,在Linux中,拓展名只是方便记忆,没有实际意义
- -x是有可执行的权限,与可以执行是两回事。
当有-x和文件是可执行的程序代码,才可以执行
五、绝对路径与相对路径
比如当前目录是/home/j/dir1
- .:代表当前目录 (比如要去/home/j/dir1/a.txt,则./a.txt)
- ..:代表上一层目录(比如要去/home/j/dir2,则../dir2)