zoukankan      html  css  js  c++  java
  • 分析Linux文件rwx属性的含义

    Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来。

      ls -l(这个参数是字母L的小写,不是数字1)

      这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(一共7个栏位):

      文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名

      drwx------ 2 Guest users 1024 Nov 21 21:05 Mail

      -rwx--x--x 1 root root 89080 Nov 7 22:41 tar*

      -rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*

      lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip

      -rwxr-xr-x 1 root bin 308364 Nov 29 7:43 zsh*

      -rwsr-x--- 1 root bin 9853 Aug 15 5:46 su*

      第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如 lrwxrwxrwx;如果是以一横"-"表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):

      rwx(Owner)r-x(Group)r-x(Other)

      这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是x,而是s,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。

      第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。

      第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的home,那这一栏大概都是它的账号名称。

      第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。

      第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls -k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。

      第六个栏位,表示创建日期。以"月,日,时间"的格式表示,如Aug 15 5:46表示8月15日早上5:46分。

      第七个栏位,表示文件名。我们可以用ls -a显示隐藏的文件名。

    chmod也可以用数字来表示权限如 chmod 777 file
    语法为:chmod abc file
    其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
    r=4,w=2,x=1
    若要rwx属性则4+2+1=7;
    若要rw-属性则4+2=6;
    若要r-x属性则4+1=7。
    范例:
    chmod a=rwx file 

    chmod 777 file 
    效果相同
    chmod ug=rwx,o=x file 

    chmod 771 file 
    效果相同
    若用chmod 4755 filename可使此程序具有root的权限

    有志者事竟成
  • 相关阅读:
    斯坦福大学Andrew Ng教授主讲的《机器学习》公开课观后感
    关于内推,你该知道的点点滴滴
    向大学说拜拜——大学 > 兴趣 + 时间 + 思考 + 实践
    源码浅析:InnoDB聚集索引如何定位到数据的物理位置,并从磁盘读取
    5.7.17版本mysqlbinlog实时拉取的二进制日志不完整的原因分析
    InnoDB的ibd数据文件为什么比data_length+index_length+data_free的总和还要大?
    gh-ost工具在线改表过程的详细解析
    MySQL5.7 使用utf8mb4字符集比latin1字符集性能低25%,你敢信?
    通过slow query log可以查出长时间未提交的事务吗?用实验+源码来揭晓答案
    源码浅析:MySQL一条insert操作,会写哪些文件?包括UNDO相关的文件吗?
  • 原文地址:https://www.cnblogs.com/dancheblog/p/3612996.html
Copyright © 2011-2022 走看看