1.1 文件的类型和权限
多人多任务环境,文件权限管理
Linux 优秀的地方之一就是它的多人多任务环境,而它的文件权限管理就能确保每个用户都拥有自己的私密文件。
Linux 的文件身份有三种,分别是拥有者(owner)、所属群组(group)和其它人(others),且这三种身份分别有各自的读(read)、写(write)、执行(execute)权限。
1. 文件的相关属性
ls
(list)命令就可以显示出文件的相关属性。
1.1 ls
命令
ls
命令最常用
-l
使用长(long)列表格式
--full-time
显示完整时间
等价于 -l --time-style=full-iso
-a
--all
会显示隐藏入口,即以.
开头的条目
实用
-h
--human-readable
和-l
一起,会把文件大小显示成更可读的形式
比如 1K, 234M, 2G
-1
单列输出
-p
在目录后加指示符 /
-F
--classify --file-type
在文件名后加 /*@|=>
等指示符
- /
目录
- *
普通的可执行文件
- @
符号链接
- |
FIFOs 管道
- =
套接字(sockets)
什么都没有则表示是普通文件
-R
--recursive
递归列出子目录的内容
排序
-S
排序(sort),按文件大小
-t
排序,按修改时间 (modification time)
-u
排序,按访问时间 (access/use time)
-r
--reverse
排序时倒序
其它
-s
--size
打印每个文件的分配大小,以块为单位
-L
当显示符号链接(symbolic link)的文件信息时, 显示链接引用的文件信息而不是链接本身的信息
-B
--ignore-backups
不列出以~
结尾的隐藏备份文件
更多选项可查看 ls --help
1.2 示例
eg1. 单列输出 ls -1
eg2. 查看详情 ls -lah
eg3. 显示完整时间 ls --full-time
eg4. 按文件大小排序 ls -lahS
和 ls -lahSr
eg5. 按修改时间排序 ls -laht
和 ls -lahtr
eg6. 手动指定 ls
的目录/文件,默认是当前目录
1.3 ls -l
的第一列
ls -l
的第一列ls -l
会显示 7 列数据,如下:
重点看第 1 列,代表了这个文件的类型和权限,它共有 10 个字符。如下:
其中,第 1 个字符代表文件类型,接下来是三组 rwx
权限,依次是文件拥有者的权限、文件所属用户组的权限和其它人的权限。
文件类型,最常见的有:
-
普通文件d
目录文件l
符号链接/链接文件
rwx
权限,其中:r
read,表示可读w
write,表示可写x
execute,表示可执行-
表示没有相应位置的权限
比如 drwxr-xr-x
就表示此文件是一个目录文件,拥有者可读可写可执行,同用户组的用户可读可执行,其它用户可读可执行。
2. 文件的类型
任何设备在 Linux 下都是文件,所以 Linux 里的文件种类非常多。
2.1 常见类型
常见的文件类型有:
普通文件/常规文件
-
。按照文件内容,又大概可以分为:纯文本文件(ASCII)
数据文件(data)
二进制文件(binary)
目录文件
d
链接文件
l
。类似于 Windows 系统里的快捷方式设备与设备文件(device)。与系统周边和存储等相关的文件,通常存储在
/dev
目录下区块设备文件
b
(block):就是一些存储数据,以提供给系统随机存取的接口设备,比如硬盘/软盘都是块设备字符设备文件
c
(character):就是一些串行端口的接口设备,比如键盘/鼠标,它们的特色就是一次性读取
套接字文件
s
(sockets)。此类型的文件通常被用于网络上的数据交换,通常在/run
或/tmp
中能看到这种类型的文件管道文件
p
(FIFO, pipe)
2.2 三种方式
要想查看文件的类型,有三种方式:
用
-l
选项,看第一列的第一个字符用
-F
选项,看文件名后面的指示符看终端的颜色
普通文件
-
无
白色
-
无
红色(压缩文件或归档文件)
-
*
绿色(可执行文件)
目录文件
d
/
蓝色
链接文件
l
@
浅蓝色(链接文件) 红色闪烁(链接文件存在问题)
设备文件
b
区块
c
字符
黄色
套接字文件
s
=
管道文件
p
|
青黄色
ls -lF
看第一列的第一个字符、看文件名后的指示符、看颜色。如下:
3. 文件的权限
目录和文件的权限意义并不相同,因为它们所记录的数据内容不同。
3.1 文件
文件是实际包含数据的地方,包括一般文件、数据库文件、二进制可执行文件等。
所以,权限对于文件来说,都是针对文件的内容的。如下:
r
可读:可以读取此文件的实际内容w
可写:可以编辑文件的实际内容(但不包括删除该文件)x
可执行:该文件具有可以被系统执行的权限在 Linux 中,文件能否被执行是由此权限来决定的,而和文件的扩展名(后缀)没有什么关系
在 Linux 中,如果文件可以被执行,但它能否被执行成功,则取决于文件的内容
3.2 目录
文件是存放实际数据的地方,而目录是记录文件名列表的。
所以,权限对于目录来说,都是针对目录内的文件名列表的。如下:
r
可读:可以读取目录结构列表,即可以利用ls
命令把此目录的内容列表显示出来w
可写:可以改动该目录结构列表,包括以下:可以建立新的文件和目录
可以删除已经存在的文件和目录(不论该文件的权限是什么)
可以修改已经存在的文件和目录的名字
可以移动该目录内的文件和目录的位置
x
可执行:表示用户能否进入该目录成为自己的工作目录,即能否cd
进来
r
可读取“文件内容”
可读取“目录结构列表”
w
可编辑“文件内容”
可改动“目录结构列表”
x
可执行该文件
可进入该目录
Last updated