linux一般的权限配置,学习笔记

每个文件(或者目录)从属于一个文件拥有者(一般是一个用户名)和一个用户组。文件拥有者一般来说就是生成(或者拷贝)这个文件的用户。用户组经常包含一个用户---文件拥有者。用户组通过常有一个名字来标识该用户,但是也不是必须的。一个文件只能被文件拥有者删除,或者是文件所属的用户组里的其他用户,或者是root用户。对于其他用户,如果被赋于适当的权限,也有可能修改或者删除该文件。文件所属的用户组可以通过命令ls -l (长文件名显示格式)来显示: 

ls -l 1.txt 
屏幕显示如下: 
-rwxr--r-- 1 hero   hero        240 08-12 01:28 1.txt 
该文件属于拥有者hero 和 用户组 hero 

文件的从属可以通过命令chown (修改文件拥有者)和 chgrp (修改用户组 ),一般来说需要 root 用户: 

chown zhang3 1.txt 
chgrp zhang3 1.txt 
ls -l 1.txt  gdsd

(注:用户zhang3与用户组zhang3 为系统真实存在的,否则执行以上三条命令会显示无效的用户或无效的用户组等信息。以普通用户登陆的时候,命令前加上sudo 让他拥有root 的权限。) 
附:让普通用户有sudo权限: 
修改/etc/sudoers 文件配置  ---->  vi /etc/sudoers 
找到root那一行,然后copy一份 
就是这:root ALL=(ALL) ALL --> 
(o)另起一行, ( p)  username ALL =(ALL) ALL 
:wq    保存退出。 

执行以上三条命令后,命令ls -l 1.txt 输出以下内容: 
-rwxr--r-- 1 zhang3   zhang3        240 08-12 01:28 1.txt 

当你以root 用户身份为其他用户删除或者拷贝文件时,修改文件的从属可能是经常要做的事情,在做完文件的整理工作后,把文件的拥有者改成对应的用户。 

文件的权限  

文件的拥有者可以把文件的访问属性设成三种不同的模式:读(r),写(w)和运行(x)及三个不同的用户级:文件拥有者(u),所属的用户组(g),系统里的其他用户(o)。你可以检查当前的文件访问权限: 

ls -l filename aaafaipiao

如果文件对于三种不同的用户都提供三种文件访问模式,输出结果看起来应该是: 

-rwxrwxrwx 

跳过第一个字符“-” 第一个三位字符组表示对于文件拥有者对该文件的权限,第二个三位字符组表示文件用户组对该文件的权限,第三个三位字符组表示系统其他用户对该文件的权限。如果没有权限,一般显示“-” 字符。 

对于第一个字符“-”表示普通文件,“d” 表示目录文件,“l” 表示链接文件,“c” 表示字符设备,“b” 表示块设备," p" 表示命名管道比如FIFO文件(First In First Out ,先进选出),“ f " 表示堆栈文件比如LIFO (Last In Fist Out ,后进先出)。 

您可以用chmod 命令来修改属于您的文件的访问权限。 

例一,想把文件1.txt 给所有用户增加”只读权限“,可以这样: 

chmod a+r 1.txt 

上面这条命令,除了用”a“表示所有用户(all),我们还可以用”u“表示用户(user),”g“表示用户组(group),”o“表示其他用户(other users)。除了加号”+“ 增加权限,我们还可以使用头号”-“删除权限,等于号”=“设置权限。除了”r“ 表示只读权限(read),我们还可以用”w“表示写权限(write ),”x"表示执行权限(execute)。 

例二:删除其他用户对1.txt 文件的执行权限。 

chmod o-x 1.txt 

除了字符(rwx),也可以使用数字来设置权限。 

execute = 1    write = 2   read = 4   
拥有相应的权限就是把这三个数字相加,如,让文件能读能写能执行的权限对应的数字就是4+2+1=7 

下面对于指定的三种不同用户级别总结如下: 

0  = 没有任何权限  (不能读,不能写,不能执行) (常见) 
1  = 只能执行                                   (看起来不太正常) 
2  = 只能写                                     (看起来不太正常) 
3  = 只能写和执行                               (看起来不太正常) 
4  = 只读                                       (常见) 
6  = 只读和执行                                 (常见) 
7  = 读,写和执行                               (常见) 


例 :    chmod 770  1.txt                    
    将给文件拥有者和所属用户组所有权限(读,写和执行),而对于其他用户没用任何权限。 

         chmod 666 1.txt 
   将给所有用户(文件拥有者,所属用户组,其他用户)读写权限,但是没有执行权限。请注意这个666权限设置会经常用到,有人认为这是整个Linux (或其他Unix里)的精髓所在。 

         chmod 411 1.txt 
   将给文件拥有者以只读权限,对于所属用户组和其他用户只有执行权限。这个看起来好像没什么实际用处…… 

文件访问权限的数字表示法叫做“八位组” 因为是基于八进制的(我们日常计数系统是基于十进制)。八进制有八个数值从0到7,最大数字是7。对应的,十进制有十个数字,从0到9,最大数字是9。八进制表示法对于二进制的文件权限表示法的确非常方便,每一个标志都可以通过设置成0或者1来表示“允许”或者“不允许”,如下面的例子: 

用户级别           文件拥有者 用户组  其他用户   
权限设置例子         rwx        rw-       r--     
缺省权限             ---        --x       -wx 
权限的二进制表示法   111        110       100 
权限的八进制表示法   7           6        4 


目录权限 

目录的访问权限和一般文件的访问权限是不同的。 
对于一般文件: 

r                        = 允许读文件内容 
w                       = 允许修改文件内容 
x                        = 允许执行该文件 

对于目录而言: 

r                        = 允许列出该目录下的文件和子目录 
w                       = 允许生成和删除该目录下的文件 
x                        = 允许访问该目录 

至此,再碰上权限不够的信息,应该能理解与应对了

posted @ 2013-01-20 21:59  chinadiy197601  阅读(295)  评论(0编辑  收藏  举报