(三)Linux文件权限属性
深入理解linux内部
用户与用户组
在Linux里面,任何一个文件都具有用户(user)、所属群组(group)、其他人(others)三种身份的个别权限
所有用户都在/etc/passwd里面,个人密码在/etc/shadow里,群组则在/etc/group里面
文件属性
- 使用
su -
切换成root - 输入
ls -al
- ls代表list
- -al可以列出所有文件及属性,包括隐藏文件(.)
1 | -rw-r--r--. 1 root root 6 12月 29 23:03 1.text |
1.第一栏有10个字符,那个.
应该没意义
- 第一个字符
-
表示文件d
表示目录,l
表示链接文件(link file)b
代表设备文件里可存储的周边设备c
代表设备文件里的串行端口设备,如鼠标、键盘等
2-4
三个字符是文件拥有者的权限- r代表可读(
read
) - w代表可写(
write
) - x代表可执行(
excute
)
- r代表可读(
5-7
是用户组的权限,8-10
是其他人的权限- 没权限则用
-
表示,rwx顺序不变
2.第二栏表示有多少文件名链接到此节点(inode
)
- 每个文件会将它的权限和属性记录到inode中,由于使用目录树,每个文件都会连接到一个inode,这个属性就是代表有多少不同的文件名连接到同一个inode
3.第三栏表示拥有者账号
4.第四栏表示所属用户组
5.表示大小,默认单位Byte
6.为创建日期或最近修改日期
- 可使用
ls -al --full-time
获得所有时间格式
7.第七个为文件名,带.
的为隐藏文件
权限的重要性
- 系统保护的功能
- 团队开发软件或数据共享的功能
- 未将权限设置妥当会被有心人士用来搞破坏
- 所以修改文件时要注意哪些不能动
修改文件属性和权限
chgrp
(change group,修改所属用户组)chown
(change owner,可以修改用户和用户组)chmod
(修改文件权限)1.修改数字权限
权限一般是
rwxrwxrwx
九个字符,它们3个3个一组,使用数字代表每个权限对照表
1
2
3r:4
W:2
x:1每个身份的权限是相加的
1
2
3owner:rw- ==> 4+2=6
group:rw- ==> 4+2=6
others:rw- ==> 4+2=6这个文件的权限就用
666
来表示2.符号类型修改权限
格式
指令 | 身份 | 操作 | 权限 | 文件/目录 |
---|---|---|---|---|
chmod | u(user) | + | r | |
g(group) | _ | w | ||
o(others) | = | x | ||
a(all) |
1 | [root@study ~]# chmod u=rwx,g-x,o-wx 1.text |
目录、文件权限的意义
- 目录
- r:可以查到这个目录里的文件名
- w
- 建立新文件和目录
- 删除文件(不管权限)
- 改已存在的文件和目录的名字
- 移动里面的文件
- x:是否可以进入该目录
- 文件
- r:读取文件内容
- w:编辑内容
- x:可以被系统所执行
- 与Windows不同,Windows的可执行文件时看后缀来的,比如exe、bat等,Linux就看这个权限有没有
需要注意的是只要你有这个目录的权限,不管这个目录下的文件是不是你的,你都能删除这些文件
文件种类和扩展名
1.常规文件(第一个属性是-
)
- 纯文本文件(ASCII):可使用
cat
来查看文件内容 - 二进制文件(binary):比如可执行文件就是二进制文件
- 数据文件(data):有特殊格式,可以使用
last
读取
2.目录
- 第一个属性是
d
3.链接文件(link)
- 第一个属性为
l
,类似windows的快捷方式
4.设备及设备文件(devices)
- 区块设备文件:第一个属性为
b
,提供随机存取的接口设备,如硬盘等 - 字符(character)设备文件:第一个属性是
c
,串行接口设备,例如键盘、鼠标,一次性读取,不能截断输出
5.数据接口文件(sockets)
- 通常在网上用来做数据交换用
- 第一个属性为
s
6.数据输送文件(FIFO,pipe)
- FIFO是为了解决多个程序读取文件发生错误的一种特殊文件格式
- 第一个属性是
p
7.Linux扩展名
- 如上,只要有x就能执行,不用管什么扩展名
拥有可执行权限也要看是否有可执行代码,不然也没用
当然,还是要了解一些扩展名代表哪些种类
- *.sh:脚本或批处理文件,使用shell写的
- Z、\.tar、*.tar.gz、*.zip、*.tgz:打包的压缩文件
- .html、\.php:网页相关文件,.html可使用网页浏览器运行,.php要用客户端浏览器才行
- 文件名长度限制
- 单一文件名或目录名限制255字节长度
- emm因为想一看这文件名就知道这文件是干嘛的,所以Linux的文件名非常长
- 文件名的限制
- 避免和一些指令重合,要避免
+
,-
,开头的.
- 有一些字符在命令行中有特殊意义,也要避免这样命名
- 避免和一些指令重合,要避免
(三)Linux文件权限属性