Linux学习日志(一)---文件权限

上一篇 / 下一篇  2009-08-04 23:24:28 / 个人分类:Linux

1.使用ls -l命令显示文件的详细信息,包括权限:

yekai@kebao:/media/sda5/软件压缩/Linux$ ls -lh
总用量 191M
-rwxrwx--- 1 root plugdev 18M 2007-02-28 18:05 ActionCube_v0.92.tar.bz2
-rwxrwx--- 1 root plugdev 60M 2007-04-30 22:52 nexuiz-223.zip
-rwxrwx--- 1 root plugdev 7.4M 2007-04-25 02:16 stardict-oxford-gb-2.4.2.tar.bz2
-rwxrwx--- 1 root plugdev 102M 2007-05-01 18:22 tremulous-1.1.0-installer.x86.run
-rwxrwx--- 1 root plugdev 4.9M 2007-04-30 14:32 wqy-bitmapfont-0.8.1-7_all.deb.bin

其中显示的字符表示的权限信息-rwxrwx--- 中,第一位表示是文件还是目录,第二位到第十位表示权限。

2.权限中第一位字符的含义

d:表示这是一个目录,事实上在ext2fs中,目录是一个特殊的文件
-:表示这是一个普通的文件
l:表示这是一个符号链接文件,实际上它指向另一个文件
b、c:分别表示区块设备和其他的外围设备,是特殊类型的文件
s、p:这些文件关系到系统的数据结构和管道,通常很少见到

3.权限中第二到第十位的含义

第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限

r(Read):对文件,具有读取文件内容的权限;对目录,具有浏览目录的权限。
w(Write):对文件,具有新增、修改文件内容的权限;对目录,具有删除、移动目录内文件的权限。
x(execute):对文件,具有执行文件的权限;对目录,具有进入目录的权限。


下面举例说明:
-rwx------: 文件所有者对文件具有读取、写入和执行的权限。
-rwxr―-r--: 文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
-rw-rw-r-x: 文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
drwx--x--x: 目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
drwx------: 除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。


4.使用chmod和数字改变文件或目录的访问权限

文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。

r:对应数值4
w:对应数值2
x:对应数值1
-:对应数值0

解释:我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100 ,再将其每三位转换成为一个十进制数,就是754。

例如,我们想让a.txt这个文件的权限为:

 权限 自己同组用户  其他用户
 可读 是 是 是
 可写 是 是 
 可执行   

根据上表得到权限串为:rw-rw-r--,转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此需要执行的执行命令为:
[root@localhost ~]# chmod 664 a.txt

5.批量修改权限

如果需要一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。
例如:

[root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
[root@localhost ~]# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx

6.使用命令chown改变目录或文件的所有权

文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来修改。
我们先执行ls -l看看目录情况:

[root@localhost ~]# ls -l
总用量 368
-rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample

可以看到conkyrc.sample文件的所属用户组为root,所有者为root。
执行下面命令,把conkyrc.sample文件的所有权转移到用户user:

[root@localhost ~]# chown user conkyrc.sample
[root@localhost ~]# ls -l
总用量 368
-rwxrwxrwx 1 user root 12172 8月 15 23:18 conkyrc.sample

要改变所属组,可使用下面命令:

[root@localhost ~]# chown :users conkyrc.sample
[root@localhost ~]# ls -l
总用量 368
-rwxrwxrwx 1 user users 12172 8月 15 23:18 conkyrc.sample

7.批量修改文件权限

要修改目录的权限,使用-R参数就可以了,方法和前面一样。



 


TAG:

 

评分:0

我来说两句

Open Toolbar