当前位置:首页 » linux系统 » 正文

【Linux】Linux系统中列出文件和文件属性

427 人参与  2017年04月10日 13:45  分类 : linux系统  点这评论

1.用户以及用户组

用户(user)是能够获取系统资源的权限的集合。Linux中的用户可以分为三类:

1.       根用户(root):具有系统全部权限的用户;

2.       普通用户:其使用系统的权限受到一定限制;

3.       系统用户:也称虚拟用户,是保障系统运行的用户,一般不通过Shell登录系统。

 

 用户组(group)就是具有相同特征的用户(user)的集合体。


2.用户与权限

在Linux中,一个文件总是与某个特定用户(文件拥有者,单个用户)和某个特定用户组(文件组,一批用户)关联在一起的。我们举个例子来说明这个事实,在这个例子中,我们用到一个新的命令’ls’来查看文件包括访问权限在内的属性,在命令行下输入’ls -l’,后跟三个要查看的文件名,命令输出如命令序列:


命令序列 1

[dev01@localhost~]$ ls -l /bin/bash ~/.bashrc sample.c

-rwxr-xr-x.     1    root        root        874184  12 2 2011       /bin/bash

-rw-r--r--        1    dev01    dev01    124        122 2011 /home/dev01/.bashrc

-rwxr-xr--.     1    dev01    dgroup   116 927 12:42              helloworld.sh

输出结果每行列出了一个文件的属性,每行都有7个字段,这7个字段都是有其含义的,我们举命令序列 3‑2中输出的最后一行为例:

在命令序列 3‑2中,我们可以看到 /home/dev01/.bashrc 文件由用户dev01所有,并且属于用户组dev01;类似的,/bin/bash文件由用户 root 所有,并且属于用户组root;helloworld.sh 由用户 dev01所有,并且属于用户组 dgroup。

而文件对于文件所有者、文件组成员和其他用户可以规定不同的访问权限,这些权限就是读(r)、写(w)、执行(x)和无权限(-)。

r     w   x文件读取文件 编辑文件执行可执行文件目录   列出目录内容   移动、建立、删除文件/目录进入目录  


回到命令序列 3‑3文件属性字段第一个字段,这个字段中包括一个 11 个字符的字符串。(第 11 个字符与SELinux相关,我们此处不作讨论)。第一个字符描述了对象的类型(- 在这个例子中表示普通文件),剩下的 9 个字符每三个字符为一组。第一组表示文件拥有者的权限,所以dev01用户可以读、写、执行helloworld.sh,文件第二组表示文件组用户的权限,所以在dgroup用户组中的用户可以读、执行但不能写helloworld.sh。文件第二组表示其他用户的权限,所以其他用户只能读helloworld.sh。


  在Linux中,文件总共有7种类型,下面就是这7种文件及其类型代码字符:

1.       -        常规文件

2.       d       目录文件

3.       l         符号链接文件

4.       c        字符特殊设备文件

5.       b       模块特殊设备文件

6.       p       FIFO管道文件

7.       s        套接字文件


3.常用的命令

3.1 ls命令 列出文件

用法:ls [选项]... [文件]...

列出 FILE 的信息(默认为当前目录)。

如果不指定-cftuvSUX 或--sort 选项,则根据字母大小排序。

-a 不隐藏任何以. 开始的项目

-A  列出除. 及.. 以外的任何项目

-c   按ctime(文件属性或者内容最后更改的时间) 排序;同-lt 一起使用:根据ctime 排序并显示ctime;同-l一起使用:显示ctime 但根据名称排序。

-d   当遇到目录时列出目录本身而非目录内的文件

-F   加上文件类型的指示符号(*/=@| 其中一个)

-h   与-l一起,以易于阅读的格式输出文件大小 (例如 1K、 234M、 2G等,默认情况下的单位是Byte)

-i    显示每个文件的inode 号

-l    使用较长格式列出信息

-n   类似 -l,但列出UID 及GID 号

-r    排序时保留顺序

-R  递归显示子目录

-S   根据文件大小排序

-t  根据mtime(文件内容最后修改时间)排序

-u  按照atime(文件最后访问时间)排序;同-lt 一起使用:按照访问时间排序并显示;同-l一起使用:显示访问时间并按文件名排序。


3.2 chmod命令 修改文件权限

用法:chmod [选项]... 模式[,模式]... 文件...

或:chmod [选项]... 八进制模式文件...

或:chmod [选项]...  --reference=参考文件文件...

将每个文件的模式更改为指定值。

--reference=参考文件   使用指定参考文件的模式,而非指定权限值

-R,  --recursive   以递归方式更改所有的文件及子目录


修改或者设置文件访问权限可以用两种方法,一种是助记符的方法,助记符分为三个部分:

1.      对象助记符:可以是 a 代表所有用户,u代表文件拥有者,g代表文件组用户,o代表其他用户

2.      操作助记符:可以是+代表添加权限,-代表删除权限,=代表设置权限

3.      权限助记符:r代表可读,w代表可写,x代表可执行

 如果你想对用户、组合或其他设置不同的权限,可以通过逗号分隔不同的表达,例如chmod u+r,  g=rx,o-rwx hello.sh 表示为文件拥有者增加读权限,设置文件组用户权限为可读可执行,删除其他用户的所有权限


另一种是使用八进制取代符号设置权限。

我们一般用 4位八进制数字来表示一个文件的访问权限。第 1 个数字的含义我们将在这里暂不讨论,也不会用到(将在下面文件特殊权限部分涉及到)。第 2 个数字表示了文件拥有者权限,第3 个数字是文件组用户权限,第 4 数字个是其他用户权限(参考表下面数字权限)。例如,在命令序列 3‑54中的hello.sh 例子中,创建的脚本文件的原有权限是 -rw-r--r--,相当于八进制 644。设置每个人的执行权限则将模式改为 755。

 

数字权限                   

符号 二进制 八进制

rwx 111 7

rw- 110 6

r-x 101 5

r-- 100 4

-wx 011 3

-w- 010 2

--x 001 1

--- 000 0


3.3 chown命令

用法:chown [选项]... [所有者][:[组]] 文件...  

或:chown [选项]...  --reference=参考文件文件... 

更改每个文件的所有者和/或所属组。

当使用  --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同,注意,只有root用户才能变更文件的所有者,只有某用户组的成员用户才能将文件组设置为为该用户组。 ¨       

--reference=参考文件使用参考文件的相关属性,而非指定值 

-R,  --recursive   递归处理所有的文件及子目录


注意:

千万不能随便将文件特别是来历不明的文件的拥有者或者文件组设置为root,这将很容易给别有用心者可趁之机。

来源:太阳笑了博客:感恩有你一路相伴(QQ号:1368396530),转载请保留出处和链接!

本文链接:http://www.taiyangxiao.com/post/392.html

本文标签:Linux  

<< 上一篇 下一篇 >>

  • 评论(3)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关文章

最近发表

    网站分类

    最新留言

    我是公告

      感谢大家访问我的博客,如果大家喜欢我的内容,请友情支持一下,点击下面广告吧!

    皖ICP备16018029号|本站已安全运行了天| 信用认证 |

    博客大全 卢松松博客 中国博客联盟 boke112导航 米鱼博客

    快捷导航返回顶部

    分享:

    支付宝

    微信