Chinaunix首页 | 论坛 | 博客
  • 博客访问: 356837
  • 博文数量: 109
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 1920
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-19 11:17
个人简介

只要活着,就要有目标。

文章分类
文章存档

2013年(109)

我的朋友

分类: LINUX

2013-05-23 16:21:05

    一、文件和目录的权限

    1.文件的权限:

    文件所属用户 所属用户组 其它用户

    权限有:

    读:read 数字表示为4:110

    写:write 数字表示为2:10

    执行:execute 数字表示为:1

    0 1 10 11 110 111 1110 1111

    0 1 2 3 4 5 6 7

    具体解释如下:

    1: 1 可执行

    2:10 可写

    3. 11=10+1 可写可执行

    4. 100 可读

    5. 101=100+1 可读可执行(5=4+1)

    6. 110=100+10 可读可写(6=4+2)

    7. 111=100+10+1 可读可写可执行(7=4+2+1)

    2.权限的查看:

    ls -l|more/less

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

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

    r: 对应数值4

    w: 对应数值2

    x:对应数值1

    -:对应数值0

    数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将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

    按照上面的规则,rwx合起来就是4+2+1=7,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。下面举几个例子:

    -rwx------:等于数字表示700。

    -rwxr—r--:等于数字表示744。

    -rw-rw-r-x:等于数字表示665。

    drwx—x—x:等于数字表示711。

    drwx------:等于数字表示700。

    在文本模式下,可执行chmod命令去改变文件和目录的权限。我们先执行ls -l 看看目录内的情况:

    [root@localhost ~]# ls -l

    总用量 368

    -rw-r--r-- 1 root root 12172 8月 15 23:18 conkyrc.sample

    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop

    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6

    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1

    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo

    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware

    可以看到当然文件conkyrc.sample文件的权限是644,然后把这个文件的权限改成777。执行下面命令

    [root@localhost ~]# chmod 777 conkyrc.sample

    然后ls -l看一下执行后的结果:

    [root@localhost ~]# ls -l

    总用量 368

    -rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample

    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop

    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6

    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1

    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo

    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware

    可以看到conkyrc.sample文件的权限已经修改为rwxrwxrwx

    如果要加上特殊权限,就必须使用4位数字才能表示。特殊权限的对应数值为:

    s或 S (SUID):对应数值4。

    s或 S (SGID):对应数值2。

    t或 T :对应数值1。

    用同样的方法修改文件权限就可以了

    例如:

    [root@localhost ~]# chmod 7600 conkyrc.sample

    [root@localhost ~]# ls -l

    总用量 368

    -rwS--S--T 1 root root 12172 8月 15 23:18 conkyrc.sample

    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop

    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6

    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1

    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo

    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware

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

    例如:

    [root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx

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

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

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

    我们先执行ls -l看看目录情况:

    [root@localhost ~]# ls -l

    总用量 368

    -rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample

    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop

    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6

    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1

    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo

    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware

    可以看到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

    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop

    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6

    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1

    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo

    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware

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

    [root@localhost ~]# chown :users conkyrc.sample

    [root@localhost ~]# ls -l

    总用量 368

    -rwxrwxrwx 1 user users 12172 8月 15 23:18 conkyrc.sample

    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop

    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6

    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0

    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1

    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo

    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware

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

  

 

     总结:

 

目录的读权限位意味着可以列出其中的内容。写权限位意味着可以在该目录中创建文件,执行权限位则意味着搜索和访问该目录(cd)。

 

    r--权限:单独有读权限不能执行ls命令,ls dir需要同时有这个dir的r-x权限。

    -w-权限:光有写权限什么事也不能干。创建文件要有-wx权限。

    --x权限:光有x权限可以进入该目录,可以cd dir,

    如果对某一文件有读权限,可以ls dir/xfile,cat dir/xfile.

    如果对某一文件有写权限,可以vi dir/xfile,(没有读权限的时候)然后可以以覆盖的形式保存。

    如果对某一文件有执行权限,可以dir/xfile执行该文件。

    假设dir下有一个文件file,某用户对file的文件的权限为rwx,而dir为--x,那么用户可以通过路径的方式 ……/dir/file执行该file文件,通过vi编辑该文件,因为该目录是可以访问的。

    但是该用户cd该目录后不能ls,但是可以ls dir/file.

    假设dir下有一个文件file,某用户对file的文件的权限为rwx,而dir为rw-,那么该用户无法通过路径的方式 ……/dir/file执行该file文件,无法通过vi编辑该文件,因为该目录是不可以访问的(无法cd进入该目录)。同时也不能在该目录下建立新文件,虽然看起来已经有w的权限。

如果某个用户对文件夹/AA/BB/CC 有rwx的权限,如果想正常操作CC文件夹,对AA和BB都必须有x权限。

 

    所以目录对组合其他用户一般都设为r-x.

对于文件来说,如果要想一个文件的x权限起作用,同时必须有r权限。

 

对于目录设w权限给别的用户的危险性:在用户Locke拥有的目录…/treaties下有一个文件叫twotreatiesOnGrv,然后Locke给这个文件限制为别的用户不能写,但是别的用户对treaties目录却有写权限,那么别人,比如说,Plato还能不能写twotreatiesOnGrv这个文件呢,答案是,不能但又能,Plato不能直接,比如vi来改这个文件(但是w! twotreatiesOnGrv 也可以覆盖这个文件),但是他可以通过mv 将一个别的文件到treaties目录下覆盖这个twotreatiesOnGrv.

 

    对于没有写权限的文件,如果对所在目录有写权限,这个文件可以被删除。

   ?2a>???_?有修改,退出vi


    set nu

    显示行号

    /或?

    查找,在/后输入要查找的内容

    n

    与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(

    与?联用)继续查找,直到找到为止。

    对于第一次用vi,有几点注意要提醒一下:

    1、用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(

    Insert mode)」才能够输入文字。切换方法:在「命令行模式(command mode)」下按一

    下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了

    。

    2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「ESC

    」键。

    3、保存并退出文件:在命令模式下输入:wq即可!(别忘了wq前面的:)

    转自: 网,技术答疑栏目:

阅读(1179) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~