Linux文件权限与目录配置

来源:互联网 发布:mac版lol国服 编辑:程序博客网 时间:2024/05/19 16:37
Linux文件权限与目录配置

1. 用户与用户组
在Linux中,正是“用户与用户组”的概念使得Linux是一个有着相当健全的安全防护的可进行多用户、多系统操作的系统。
在用户与用户组的概念中,对于每一个Linux文件或者文件夹,其都有“User, Group和Others”三种身份,对于这三种不同的身份,文件或文件夹应有不同分文件权限。
Linux系统中,记录用户身份和用户组记录的文件保存在/etc/passwd (用户相关信息)  /etc/shadow(用户密码)   /etc/group(用户组名的记录)。因此这三个文件不能随便删除。

2. Linux文件权限概念
2.1什么是文件权限
文件的权限就是限定用户是否能对当前文件进行读写以及执行操作。在Linux中,每一个文件都会有其文件权限,可以通过指令 ls -l 文件名 来查看你要查看的文件的文件权限。正如之前我提到的那样,对于不同的用户以及不同的用户组,一个文件应有不同的文件权限,因此当你执行上述指令后,你会发现在第一列有着类似于 -rwxr-x---的字符串,其对应的就是用户、用户组以及其他人对当前文件的权限。
这里以 -rwxr-x---为例,来解释字符串的含义:

第一个字符“-”表示这是一个文件,而非文件夹,文件夹的字符是“d”;
随后每三个是一个组合,来指定文件所有者,同一用户组以及其他用户组对该文件的权限,顺序为固定的r(read), w(write)和x(execute),若当前用户对该文件没有权限,则用“-”代替。因此在上面的字符串中,文件所有者对文件可读可写可执行,同一用户组下的其他用户可读可执行,其他用户组的用户不可读不可写不可执行。
在这里文件夹和文件有些不同,即对于有着这样一个文件权限的文件夹来说,drwxr-xr--,虽然对于其他用户组该文件的权限是可读,但由于该文件夹对于其他用户组没有x权限,事实上其他用户组是不能进入当前文件夹进行操作的,这一点值得注意。

2.2 改变文件的属性以及权限
在这里介绍三个改变文件属性和文件权限的命令,即chgrp(改变文件所属用户组) chown(改变文件所有者) chmod(改变文件权限)
2.2.1 chgrp
对于该命令来说,可以改变文件的用户组属性,但前提是你的目标用户组必须已经在/etc/group中已经存在,否则就会出错。
该命令的执行格式为 chgrp -r 目标用户组  文件名称   在这里参数-r表示如果目前的文件是一个文件夹,那么-r会使得位于该文件夹下面的文件也会递归的改变其用户组属性。
2.2.2 chown
对于该命令来说,可以改变文件的用户属性,但前提是你的目标用户组必须已经在/etc/passwd中已经存在,否则就会出错。
该命令的执行格式为 chown -r 目标用户  文件名称   在这里参数-r表示如果目前的文件是一个文件夹,那么-r会使得位于该文件夹下面的文件也会递归的改变其用户属性。

那么在什么时候我们会使用到这两个指令呢。在这里我用cp(复制)命令来举例子。
加入我要把file1文件复制到file2文件中,那么我可以这样操作
cp file1 file2
这样我就成功的把file1文件复制给file2文件了,但是当我们去查看file2文件的属性时,我们会发现file2 的属性继承了file1  的属性,也就是说权限,所属用户和所属用户组与file1一致。那如果我要把这个文件复制给另外一个不在当前用户组下的用户使用是,这样是肯定不合理的,其他用户组的用户还是不能随file2有权限,因此在这种情况下,我们就可以使用chgrp和chown来改变文件的属性。

2.2.3 chmod
该指令是用于改变文件的权限的。在这里有两种方式进行权限的修改,一种是基于数字的权限修改,一种是基于符号类型的权限修改
1) 基于数字的权限修改
在这种情况下,每一种权限对应于一个阿拉伯数字,即r=4, w = 2,x=1. 因而三种身份的文件权限就对应于这些数字的组合,即若当前的权限为-rwxr-xr--,那么对应于这种权限的数字组合就是754.
因此如果要对某文件进行权限修改,我们可以这样操作指令 
 chmod -r xyz 文件名或目录 
 在这里参数-r表示如果目前的文件是一个文件夹,那么-r会使得位于该文件夹下面的文件也会递归的改变权限。
例如将文件权限修改为-rw-r--r--, 我们就应该输入 chmod 644 filename

2)基于符号类型的权限修改
在这里我们可以用一个表格来清晰的表述这种修改方法。
chm odu(用户)
g(用户组)
o(其他用户)
a(所有用户)+(加入权限)
-(除去权限)
-(设置权限)r
w
x
文件或者目录



因此当我们要设置一个文件具有这样的权限时, -rwxr-xr-x,我么可以进行这样操作
chmod u=rwx,go=rx filename  (注意u=rwx,go=rx是连在一起的,中间没有空格)
当然如果我并不在乎其他的权限如何,只想令所有的用户具有某种权限,我可以这样
chmod a+x filename
这样我就使得所有用户对该文件有了可执行权限。同样的可以对所有用户执行除去权限的操作。

3 目录与文件的权限意义
3.1 权限对于文件的意义
r表示可读取文件的内容,如我们读取文本内容
w表示可以编辑,新增u哦这修改该文件的内容,但不包含删除该文件。
x表示该文件具有可被系统执行的权限

3.2 权限对于目录的意义
r表示具有读取目录结构列表的权限,我们可以读取位于该目录下的文件名数据。
w表示你对该目录具有更改目录结构列表的权限,即新建新的文件或者目录,删除已经存在的文件和目录,将已经存在的文件或目录进行重命名,转移该目录内的文件盒目录位置。这个功能比较强大,主要与目录下文件名变动有关。如果用户本身对于这个文件夹具有w权限,那么处于当前目录下的文件,无论他们的用户与用户组是否与该用户一致,该用户都能够删除该文件。
x代表用户是否能够进入该目录成为工作目录的用途,而所谓的工作目录就是你目前所在的目录。能不能进入到一个目录中,只与该目录的x权限有关,如果你不具有某目录下的x权限,那么你无法切换到该目录下,也就无法执行该目录下的任何命令,即使你用有r权限,那么你也只能查看该目录的文件结构。


0 0