一、文件权限属性
在Linux系统中每个文件都有相当多的权限与属性。执行ls -al命令可以查看文件的属性。
[leon@localhost test]$ ls -al
-rwxrw-r--. 1 leon leon 0 Oct 21 00:24 1.txt
-rw-rw-r--. 1 leon leon 74087 May 14 11:38 2.jpg
-rw-rw-r--. 1 leon leon 74087 Oct 18 20:57 3.jpg
其中的-rwxrw-r–就是文件的类型与权限属性。下面来详细讲解。
1(-)2(rw-)3(rw-)4(r–)
1:代表这个文件为目录或文件,这里为文件-。
2:拥有者的权限,这里为可读、可写、可执行(rwx)。
3:同用户组用户权限,这里为可读、可写(rw-)。
4:其他用户权限,这里为可读(r–)。
二、目录与文件的权限意义
- 文件的权限
文件是实际含有数据的地方,包括一般文件、数据库内容文件、二进制可执行文件等。权限对于文件来说,意义如下:
- r:可读取此文件的实际内容
- w:可以编辑、新增或者是修改文件的内容(但不含删除该文件)
- x:该文件具有可以被系统执行的权限。注意这里不同与windows的地方。在windows中一个文件是否具有执行能力还通过“扩展名”来判断的,如.ext,.bat。而在Linux下面,文件能否被执行则只与’X’权限有关,而与文件名没有关系。
- 目录的权限
r:表示具有读取目录结构列表的权限。比如可以利用ls命令将该目录的内容列表显示出来。
w:表示具有权限在该目录下,新建新的目录与文件、删除已经存在的目录与文件(不论该文件的权限为何)、将已存在的文件或目录进行重命名、转移该目录内的文件或目录位置。
x:目录不可以被执行。目录的x代表的是用户能否进入该目录成为工作目录的用途,所谓的工作目录就是你当下的工作目录。
三、超级管理员权限
root账号对系统内所有文件和目录,包括系统文件,其他用户、用户组创建的文件都具有最高权限。Linux的许多系统服务文件通常只有root才能读写或者是执行,例如/etc/shadow这个账号管理文件。
四、普通用户权限
对于一个目录:
- 文件所有者的权限是rwx,可以在本目录中进行任何工作。
- 文件工作组的权限是r-x,可以进入本目录工作,但是不能在本目录下进行写入操作。
- 其他用户的是r–,虽然有r,但是由于x的权限,因此others的用户并不能进入此目录。
五、改变文件属性与权限
- chgrp:改变文件所属用户组。
例如 chgrp -R users /home/leon/test:改变test文件夹下所有文件、目录的用户组为users。 - chown:改变所有者。
例如:chown leon install.log:改变install.log的文件所有者为leon。 - chmod:改变文件权限。
chmod | u/g/o/a | +(加入)/-(除去)/=(设置) | rwx | 目录或文件 |
---|
例如:
chmod a+w test.txt:对test.txt为所有用户添加写入权限
chmod o=rwx test.txt:对test.txt为其他用户添加所有权限
六、后记
Linux的文件权限管理看似麻烦,实际上对开发者是非常友好的,避免了很多潜在的危险,方便项目的管理 。
初学者在遇到权限问题时,无需紧张。一般就两种解决办法:一,用sudo以管理员的身份操作,二,修改文件的权限属性。