听老歌 发表于 2012-01-29 16:28

柳大的Linux游记·基础篇(3)权限、链接与权限管理

柳大的Linux游记·基础篇(3)权限、链接与权限管理







转载请注明来自“柳大的CSDN博客”,原文链接:http://blog.csdn.net/poechant/article/details/7215038



1、Linux的权限管理

    在Linux中,每个文件都有一个拥有者(owner),而由于每个用户都有一个所属的用户组,所以连带着让每个文件都有一个拥有组。所以在Linux的权限管理中,首先有对于一个文件的拥有者权限,一个文件的用户组权限,另外还有一个对于其他所有用户的权限。

    drwxrwxrwx中的d表示文件夹,第一组rwx表示拥有者的权限,第二组rwx表示拥有组的权限,第三组rwx表示其他用户的权限。

    如果我们从左到右分别编号为0、1、2……9,则0位上可以是“-”表示普通文件(file),“d”表示目录(directory),“l”表示链接(link)、“b”表示区块设备文件(block,比如磁盘)、“c”表示字符设备文件(character,表示一些串行数据接口设备,比如USB设备)、“s”网络接口文件(socket)、“p”表示数据传输文件(pipe,FIFO)。

    对于文件,“r”表示可以读取文件的内容,“w”表示可以修改文件的内容,“x”表示可以执行文件。

    对于目录,“r”表示可以查看目录的内容(比如用“ls”命令查看目录内的文件),“w”表示可以修改目录的内容(比如创建、删除、更新目录内的文件),“x”表示可以进入目录。

    在Linux系统中,一个文件或目录是否可以被执行,与其名称是没有关系的,而取决于rwx属性,这是与Windows的区别。

    另外注意通过网络(包括互联网和局域网等)传输后,文件的属性是会被改变的,这与网络传输时数据的格式转换和接口设备有关。



2、新建文件或目录的权限

(1)默认权限

    当在Linux系统中创建一个文件时,默认其不具有可执行权限的,而默认具有读写权限。所以文件的默认权限是666,即rw-rw-rw-。

    当在Linux系统中创建一个目录时,默认其是具有可执行权限的(即访问目录的权限)。所以文件的默认权限是777,即rwxrwxrwx。

    但是这还没完,看下面的(2)。

(2)初始权限

    上面说的是Linux系统对文件或目录的权限默认值,而在Linux系统中还有umask,它标示着文件或目录在创建之初时被掩盖(mask)掉哪些权限。所以如果umask是022,那么创建一个新文件时,初始权限就是666-022=644了,而目录则是755.



3、链接

(1)软链接和硬链接

    链接分为软连接(符号链接)和硬链接。

    根据上一篇文章《柳大的Linux游记·基础篇(2)Linux文件系统的inode》,我们已经知道了一个目录或文件在Linux文件系统中的inode和block存储方式。下面以例子说明。

    假设目标文件名为target,其inode是i0,第一个block是b0。而其所在的目录dir的inode为i1,相应的第一个block为b1。



(2)创建和删除链接的本质

    硬链接

    - 创建:为一个目标文件target(设其inode是i0,第一个block是b0。而其所在的目录dir的inode为i1,相应的第一个block为b1)创建一个硬连接h-link时,实际上发生的操作是,在dir的b1中创建一个文件条目,该条目中指示i1这个inode。

    - 删除:删除一个硬链接,就是修改dir的b1内容,去掉该硬链接条目。

    符号连接

    - 创建:创建一个实在的文件,为其分配一个inode,记作i2,但不分配block。inode中指示的block为目标文件的b0.

    - 删除:回收该inode,修改inode bitmap。



(3)创建和删除链接的命令

    创建:ln -s <target> <link>,其中参数s表示symbolic,这种方式产生的是软连接,又称为符号链接,相当于Windows中的快捷方式。ln <target> <link>,这种方式产生的是硬链接。两者都是与源文件保持同步的。

    删除:与删除普通的文件的命令一样。



(4)软连接和硬链接的区别

    范围:硬链接必须与目标文件在同一个文件系统中,而软连接文件可以跨越文件系统。



(5)链接文件的权限

    链接文件的权限,与目标文件保持一致。





4、权限操作

(1)chown(change owner)

    作用:改变文件或目录的所有者,语法:

chown [-R] <user_name> <file_name>

chown [-R] <user_name> <directory_name>

    例:

chown michael example_file

chown -R michael example_directory



(2)chirp(change group)

    作用:改变文件或目录的所有组,语法:

chgrp [-R] <group_name> <file_name>

chgrp [-R] <group_name> <directory_name>

    例:

chgrp admin example_file

chirp -R admin example_directory



(3)chmod(change mode)

    作用:改变文件或目录的权限,语法:

chmod [-R] <XYZ> <file_name>

chmod [-R] <XYZ> <directory_name>

chmod [-R] <u|g|o|a><+|-|=><r|w|x>

    例:

chmod 755 example_file

chmod -R 755 example_directory

chmod u=rwx,g=rx,o=r example_file

chmod u+x,g-w example_directory

chmod a-w example_file

小忻黑夜 发表于 2012-01-29 16:29

谢谢分享

lastfile 发表于 2012-01-30 12:10

学习学习学习,谢谢分享:lol
页: [1]
查看完整版本: 柳大的Linux游记·基础篇(3)权限、链接与权限管理