学习这个章节,必须明白以下三个概念:

1.所有者

2.所属组

3.其他人

明白这三个概念后,接下来就学习文件的属性,那么文件的属性有什么呢?如何查看文件的属性?

在命令行下,执行 ls -l

可以得到以下的信息(仅已一条信息来分析)

-rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log
...

解释:
    第一列代表文件的类型和权限
    
        第一个字符是"-":表示文件为普通文件。
        
        Linux下的文件类型有如下几种:

-:普通文件,包括文件文件和二进制文件
            d:目录文件
            c:字符设备文件
            b:块设备文件
            s:套接字文件(socket)
            l:链接文件
            p:管道文件(FIFO,pipe)
            或许还有其他文件类型,以后学习到再补充
            
        接下来的9个字符,3个为一组,分别表示所有者,所属组和其他人的权限
    
        权限有三种 r(read)读,w(write)写,x(execute)执行
        
    第二列表示有多少文件名链接到此节点(i-node),即文件的硬链接数,以后详细介绍
    
    第三列表示这个文件的所有者
    
    第四列表示这个文件的所属组
    
    第五列表示这个文件的容量大小,单位是B
    
    第六列表示这个文件的创建日期或者最近修改如期
    
    第七列表示文件名
    
------------------------------------------------------------------------------------------
    
改变文件属性和权限

需要用到的命令有

chgrp:修改文件的所属组

chown:修改文件的所有者

chmod:修改文件的权限

改变用户所属组chgrp命令的介绍

用以下的文件为例子

-rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log

由上述知道install.log文件所有者是root,所属组是root,权限为rw-r--r--

若想要修改这个文件所属组,可以这么做

假设在/etc/group下已经定义了一个组super

#chgrp     super install.log 修改所属组

#ls -l

-rw-r--r--. 1 root super 41312 Dec 10 02:48 install.log 文件的所属组被改变为super

---------------------------------------------------------------------------------

改变文件的所有者chown命令

假设在/etc/passwd已经存在用户hello

当要修改上述的install.log这个文件所有者,可以这么做

#chown hello install.log 修改文件的所有者为hello

#ls -l
    -rw-r--r--. 1 hello super 41312 Dec 10 02:48 install.log 文件的所有者被修改为hello

chown命令还能修改文件的所属组

比如要把文件的所有者和所属组修改为原来的root,可以这么做

#chown root:root install.log

#ls -l
    -rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log
    文件的所有者和所属组都修改了

chown命令也可以只修改所属组

#chown :super install.log

#ls -l

-rw-r--r--. 1 root super 41312 Dec 10 02:48 install.log

大多情况下用冒号“:”分隔所有者和所属组,也可以用小数点“.”分隔。

什么情况下需要修改文件的所有者或所属组?

比如,我们用cp命令复制一个文件到另一个用户的家目录,但是文件的属性并没有
修改,也就是说,另一个用户就算得到了文件,也无法操作文件。这时候就需要修改文件的属性

------------------------------------------------------------------------------------

修改文件的权限chmod命令

还是用上述的文件为例子

-rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log

分析:
    文件所有者对文件具有rw的权限,即读和写,不能够执行

文件所属组的用户对文件具有r的权限,即只有读的权限

其他人对文件具有r的权限,即只有读的权限

修改文件的权限有两种方法:

1.数字类型修改文件权限

r(4)
w(2)
x(1)

可以有这么多种表示方法
    ---     0
    --x     1
    -w-     2
    -wx     3
    r--       4
    r-x       5
    rw-       6
    rwx       7

命令使用示例
    若想把文件的权限修改为
    rwx r-x r-x
      7   5   5

#chmod 755 install.log
    #ls -l

可以得到如下的结果
    -rwxr-xr-x. 1 root root 41312 Dec 10 02:48 install.log

这种方式不是很直观,需要转换,个人比较喜欢用字符类型修改文件权限

字符类型修改文件权限

命令使用如下

----------------------------------------------------------
    u    + (加入)    r
chmod    g    -(除去)    w    文件或目录
    o    =(设置)    x
    a

----------------------------------------------------------

u(user):表示所有者

g(group):表示所属组

o(others):表示其他人

a(all):表示上述三者

使用示例

-rwxr-xr-x. 1 root root 41312 Dec 10 02:48 install.log

若要修改上述的文件权限为rw-r-xr-x,即所有者除去执行(x)权限,可以这么做

#chmod u-x install.log

若要修改上述的文件权限为rw-rwxr-x,即所属组加上写(w)权限,可以这么做

#chmod g+w install.log

若要修改上述的文件权限为rw-rwxrw-,即其他人有读写(rw)权限,可以这么做

#chmod o=rw install.log

若要修改上述的文件权限为rwxrwxrwx,可以这么做

#chmod a+x install.log

当然,也可以这么使用

#chmod u-x,g-x,o-r install.log

不知道我是否说清楚了。。

---------------------------------------------------------------------------------

目录与文件的权限意义

权限对文件的重要性

r(read):可读取此文件的实际内容,比如可以用cat等命令查看文件内容
    
    w(write):可以编辑、新增或者是修改文件的内容,但是不能删除该文件

x(execute):该文件具有可以被系统执行的权限。

顺便说说扩展名。在LInux中是没有扩展名的概念的,与windows不同。所以文件是否
    可以执行,是靠权限x来决定的,但是要清楚一点,可以执行,不代表可以成功执行,
    这要取决于文件的内容。

总结:对于文件来说,rwx主要都是文件内容的的权限,而跟文件名是灭有绝对的关系

权限对目录的重要性

r(read contents in directory)
    
    表示具有读取目录结构列表的权限,也就是说可以用ls查看目录里有哪些文件

w(modify contents of directory)

表示具有更改该目录结构列表的权限,也就是说可以
    1.创建文件或者目录
    2.删除已经存在的文件或目录(不论该文件的权限为何)
    3.对文件或目录进行重命名
    4.转移该目录内的文件、目录位置

总之,目录的w权限就与该目录下面的文件名变动有关

x(access directory)

表示用户能否进入该目录成为工作目录

额外补充,查看当前目录下文件(tree)

root@wuheng-virtual-machine:/home/wuheng/public# tree -p
.
├── [-rw-r--r--]  a.txt
├── [-rw-rw-r--]  b.html
└── [drwxrwxr-x]  demo
    ├── [-rw-r--r--]  aa.txt
    └── [-rw-r--r--]  b.html

1 directory, 4 file

Linux的文件权限(简单易懂)的更多相关文章

  1. 第六章、Linux 的文件权限与目录配置

    第六章.Linux 的文件权限与目录配置 1. 使用者与群组 2. Linux文件权限概念 2.1 Linux文件属性 2.2 如何改变文件属性与权限: chgrp, chown, chmod 2.3 ...

  2. linux初学者-文件权限

    linux初学者-文件权限 lunix系统都是以文件的形式存在,自然而然的就会要求不同的用户拥有不同的权限,这也是系统能够运行的根本保证,下文将对文件的权限管理进行简要的介绍. 1.文件属性的查看 - ...

  3. 全面解析Linux数字文件权限

    全面解析Linux数字文件权限 来源:   时间:2013-09-04 20:35:13   阅读数:11433 分享到:0 [导读] 在刚开始接触Linux时对于文件权限的理解并不是很透彻,这里详细 ...

  4. [转]Linux中文件权限目录权限的意义及权限对文件目录的意义

    转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...

  5. Linux的文件权限

    1 文件权限的表示 (1)字母表示法 Linux中所有文件(普通文件.目录文件.字符特殊文件.块特殊文件.管道或FIFO.符号链接.套接字)都有9个权限,如下图所示: -rw-rw-r--就是文件a的 ...

  6. 第六章Linux的文件权限与目录配置

    一.Linux用户分类 1.Linux用户分为:(文件|目录)所有者(OWN),(同组内的)用户组,其他人; 2.一个天神:root;,几乎能完成任何事.... 二.目录权限的意义 目录的权限和文件的 ...

  7. 初窥Linux 之 文件权限

    一.用户与用户组 为了更好地理解文件权限,我们需要先有用户和用户组的概念.因为在Linux里面,任何一个文件都具有“User(用户).Group(用户组)及Others(其他用户)”3种身份的个别权限 ...

  8. Linux下文件权限(一)用户ID和用户组ID

    最近在读<unix环境高级编程>,看到文件权限这里比较糊涂,主要设计多个用户ID和用户组ID,包括下面两个: (1)实际用户ID和实际用户组ID:这一部分表示我们究竟是谁.这两个字段在登录 ...

  9. 【转】第六章、Linux 的文件权限与目录配置

    原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php 最近更新日期:2009/08/18 Linux最优秀的地方之一, ...

随机推荐

  1. win 2003 / IIS6 部署网站的时候,文件IO操作、删除项目文件, 会导致IIS重启,Session丢失问题

    项目中经常需要打些日志(文件IO读写操作),已记录调试.错误等信息.比较方便的有log4net等开源项目. 问题描述: 最近用win 2003 / IIS6,部署了一个2.0 的网站,在操作文件的时候 ...

  2. 算法笔记_103:蓝桥杯练习 算法提高 金明的预算方案(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些 ...

  3. OpenERP|ODOO高德地图应用

    发布时间:2015-04-06 11:01:37来源:http://www.chinamaker.net 在openerp中的fleet模块,每一个车辆都有地图应用.默认采用的是谷歌地图,但是在应用得 ...

  4. Visual studio之C# 重新定义Messbox的显示窗口位置

    背景 当前做的APP需要新建一个设置窗口,该设置窗口会出现在靠近屏幕边缘位置,但主窗口铺满屏幕,设置窗口会弹出一些讯息,但默认情况下Messagebox窗口会居中于主窗口,这不太符合要求,正常应该居中 ...

  5. 02-hibernate注解-属性级别注解

    添加方式: 一是写在属性字段上面. 二是写在属性的get访问器上面. 主要有: @Id, @SequenceGenerator @GeneratedValue @Colum @Embedded @Em ...

  6. docker build 的 cache 机制

    cache 机制注意事项 可以说,cache 机制很大程度上做到了镜像的复用,降低存储空间的同时,还大大缩短了构建时间.然而,不得不说的是,想要用好 cache 机制,那就必须了解利用 cache 机 ...

  7. 转: Tsung:开源多协议分布式负载&压力测试工具

    Main features High Performance: the load can be distributed on a cluster of client machines Multi-pr ...

  8. js - 关于this、new、原型

    1.this误区 # 第三方学习 http://www.cnblogs.com/wangfupeng1988/p/3988422.html - this不是函数自身的引用,this实际上是在函数被调用 ...

  9. Impala中多列转为一行

    之前有一位朋友咨询我,Impala中怎样实现将多列转为一行,事实上Impala中自带函数能够实现,不用自己定义函数. 以下我開始演示: -bash-4.1$ impala-shell Starting ...

  10. Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net

    Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net 1. 提升单例有能力的1 2. 减少工作数量2 2.1. 减少距 ...