zoukankan      html  css  js  c++  java
  • Linux文件权限与目录配置

    一、linux文件属性

      用户组概念:假如主机有两个团体,第一个团体名为projecta,里面有class1,class2,class3;第二个团体名为projecb,里面有class4,class5,class6.这两个团体之间有竞争性质,却要交同一份报告。每组成员之间必须能够互相修改对方的数据,但是其他组的成员则不能看到本组自己的文件内容。另外,如果teacher这个账号是projecta和projectb两个用户的老师,能够查看两个的进度。这时候引入用户权限问题。

                   

      权限的第一个字符代表是目录、文件或链接文件等。若[d]则是目录;[-]则是文件;[|]则是连接文件;[b]则表示设备文件里面的可供存储的接口设备。[c]则表示设备文件里面的串行端口设备,如键盘。

      权限分三个部分,第一部分:文件所有者的权限user。第二部分:用户组的权限(group)。第三部分:其他非本用户权限(other)。

    例:如果我的目录是下面的样式,请问testgroup用户组的成员与其他人可以进入本目录吗?

      drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/

    答:文件所有者test1[rwx]可以在本目录中进行任何操作。而testgroup这个用户组[r-x]的账号,如test2,test3也可以进入本目录进行工作,但是不能在目录下进行修改操作(即写)。至于其他用户权限[r--]虽然有r,但是没有x的权限,因此其他用户并不能进入此目录。

    二、修改权限

    常用的命令为:chgrp:改变文件所属的用户组

           chown:改变文件的所有者

             chmod:修改文件的权限

    例:1) 改变所属的用户组:chgrp

        

      2) 改变文件的所有者:chown

            

    到现在就已经知道了如何改变用户组和所有者了,但是具体什么时候用chown和chgrp呢?确实有时候需要更改所有者的,再例如:复制文件给你之外的其他人时,会连同执行者的属性和权限一同复制,如下:

        

    会看到.bashrc_test还是属于root所有,如此一来,即使你将文件给予这个用户,他仍然无法修改,所以这里必须要修改这个文件的所有者与用户组。这时就会用到修改权限的操作,具体有两种方法:

      a、数字类型改变文件权限:

          owner, group, others. 三种身份有各自自己的read、write、execute权限。各个权限的数字对照表如下:r: 4;   w: 2;   x:1    

          例如当权限是[-rwxrwx---]

            计算方法为owner=rwx=4+2+1=7

                 group=rwx=4+2+1=7

                   others=---=0+0+0=0,故这个权限就为770,具体的更改权限的语法为:

            

      b、符号型改变文件权限

          用u、g、o分别代表owner,group,others三种身份,a代表全部身份。具体写法如下:

        

      如果同时对三种身份进行操作时(如:每个人都赋予写的权限):

        

      如果说要是去掉所有人的可执行权限呢?

        

    到这里,你了解多少了?如果还是有点不明白,接下来再看一个例子:

      如果我们用root身份在/tmp下新建一个testing目录,该目录的权限是744且目录拥有者是root。另外在testing中再建立一个空文件testing且权限为600。这时候用一个普通用户去访问testing(或者删除testing)?具体执行情况如下:

        

        

        

    但是如果要实现一般用用户访问testing,具体应该怎么做呢?可以考虑把该目录变成用户的:

        

    当然,也可以把root的权限进行修改让一般用户能够访问,并且进行修改也可。

    到这里,你会了吗?别说你不会。。。。。

     

    当神已无能为力,那便是魔渡众生
  • 相关阅读:
    用goto做异常处理
    零长度数组的妙用
    DTMF三种模式(SIPINFO,RFC2833,INBAND)
    Myeclipse下的struts2.3.8 配置 保证绝对好用
    Linux内核--内核数据类型
    Linux内核:kthread_create(线程)、SLEEP_MILLI_SEC
    3.4.4 数据预留和对齐(skb_reserve, skb_push, skb_put, skb_pull)
    Linux 2.6内核中新的锁机制--RCU
    Linux中SysRq的使用(魔术键)
    CentOS Linux服务器安全设置
  • 原文地址:https://www.cnblogs.com/liuzhongfeng/p/5134682.html
Copyright © 2011-2022 走看看