第二部分 Linux 文件、目录与磁盘格式
第 6 章 Linux 的文件权限与目录配置
6.1 用户与用户组
/etc/passwd
:记录所有账号相关的信息。/etc/shadow
:记录所有密码相关的信息。/etc/group
:记录所有组名相关的信息。
6.2 Linux 文件权限概念
6.2.1 Linux 文件属性
[d]
:目录。[-]
:文件。[l]
:连接文件(linkfile)。[b]
:设备文件里面可供存储的接口设备,即:块(block)设备。[c]
:设备文件里面的串行端口设备,即:字符(character)设备。i-node
:是一种记录每个文件的权限与属性的号码,是文件系统的概念,但是目录树
却是使用文件名
来记录,因此,每个文件名就会连接到一个 i-node。Byte(B)
:用来作为文件容量大小的默认单位。/etc/sysconfig/i18n
:系统配置文件,可修改系统默认的语言。- 对于目录而言,若没有
x
权限,则不能进入该目录工作。 - 用户组的概念主要是为了数据安全性而设置的。
6.2.2 如何改变文件属性与权限
- 3 种身份(user/owner, group, others),9 种权限(每种身份对应 3 种权限)。
chgrp
:改变文件所属用户组,例如:chgrp [-R] 组名 文件或者目录。chown
:改变文件所有者,例如:chown [-R] 账号名称:组名 文件或者目录。chmod
:改变文件的权限,例如:chmod [-R] xyz 文件或者目录,xyz 表示数字类型的权限属性,为 rwx 属性数值的相加。cp
:复制行为,会连同执行者的属性与权限一起复制,因此,当复制给其他用户时,要记得改变所复制文件的所有者与用户组。- 权限的符号与数字的对应关系:
r:4
,w:2
,x:1
。 - 可执行脚本的权限一般设定为:
chmod 755 filename
,即:文件可执行,但别人无法修改。 - 设定文件不被其他人看到的命令为:
-rwxr----- <-> 740, chmod 740 filename
。 - 符号类型改变权限的示意表:
命令 | 身份 | 方式 | 权限 | 目标 |
---|---|---|---|---|
u | +(加入) | r | ||
chmod | g | -(除去) | w | 文件或目录 |
o | =(设置) | x | ||
a |
6.2.3 目录与文件的权限意义
文件
:可分为文本文件、连接文件、数据库内容文件、二进制可执行文件。w 权限
:具有写入、编辑、新增和修改文件的内容的权限,但是不具备删除
文件本身的权限。- Windows 文件是否具有执行的能力是通过“扩展名”来判断的,例如:.exe, .bat, .com 等。
- Linux 文件是否具有执行的能力是由是否具有”x“这个权限来决定,而跟文件名没有绝对的关系。
文件
用于存放实际数据
,目录
用于记录文件名
(文件名与目录有强烈的关系)。- 对于目录而言,下面的三种权限表示意义不同:
r
:具有读取目录结构列表的权限,即可以使用ls
命令(只能看到文件名,无法看到权限与属性数据);w
:
- 新建新的文件与目录;
- 删除已经存在的文件与目录(不论该文件的权限为何);
- 将已存在的文件或目录重命名;
- 转移该目录内的文件、目录位置。
x
:代表用户能否进入该目录成为工作目录的用途,即可以使用cd
命令;
工作目录(work directory)
:用户目前所在的目录。- 如果你在某目录下不具有
x
的权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何命令,即使你具有该目录的r
权限。 - 在网站上,要开放目录给任何人浏览时,应该至少也要给予
r
及x
的权限,但是w
权限不可随便给。 su - vbird
:需要输入 vbird 的密码才能切换到 vbird 这个用户。
6.2.4 Linux 文件种类与扩展名
- 任何设备在 Linux 下面都是文件,连数据通信的接口也有专门的文件负责。
- 文件种类
普通文件(regular file)
(对应文件属性为[-]):
- 纯文本文件(ASCII):可用
cat
或者nl
命令读出来; - 二进制文件(Binary):一般为可执行文件;
- 数据格式文件(Data):程序运行时会读取且含有某种特定格式的文件。
- 纯文本文件(ASCII):可用
目录(directory)
(对应文件属性为[d])。连接文件(link file)
(对应文件属性为[l])。设备与设备文件(device)
:
块(block)设备文件
(对应文件属性为[b]):表示可供系统随机访问的接口设备,主要用于存储数据,可以截断输出,例如硬盘、软盘。字符(character)设备文件
(对应文件属性为[c]):表示串行端口的接口设备,不可以截断输出,只能“一次性输出”。
套接字(socket)
(对应文件属性为[s]):数据接口文件,通常用于网络上的数据连接,在/var/run 目录
中可以看到这种类型的文件,与进程相关。管道(FIFO, pipe)
(对应文件属性为[p]):用于解决多个程序同时访问一个文件所造成的错误问题,与进程相关。
/var/log/wtmp 文件
:记录用户登录数据,属于数据格式文件,能用last
命令读取,但用cat
命令会读出乱码。/dev 目录
:存放与系统外设以及存储等相关的一些文件。- 注意:通过网络或者移动设备传输文件,那么该文件的权限和属性会被改变。
- 使用默认的
Ext2/Ext3
文件系统,文件名的长度限制为:
- 单一文件或目录的最大容许文件名为 255 个字符;
- 包含完整路径名称及目录(/)的完整文件名为 4096 个字符。
- 文件名应避免含有一些特殊字符:- * ? > < ; & ! [ ] | \ ’ ” ` ( ) { }