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

1、文件属性的查看

-   |      rw-rw-r--.     |    1    |     kiosk      |       kiosk    |    0    |     Jul     23     18 :26      |      file

—    ——————     ——    ————      ————     ——    ——————————     ————

1               2                 3             4                  5            6                      7                       8

1.1、"-":文件类型

常见的文件类型有:

-          普通文件

d          目录

c          字符设备

s          套接字

p          管道

b          块设备

l          连接   快捷方式   软连接

1.2、"rw-rw-r--":文件读写权限

rw-    |    rw-   |    r--

@           *          #

@表示所有人的权限,*表示所有组的权限,#表示其他人的权限。

1.3、"1"

文件内容被系统记录的次数,即要删除时删除的次数。如果是目录,就代表目录中文件属性的字节数。

1.4、"kiosk"

表示文件所有人。

1.5、"kiosk"

表示文件所有组。

1.6、"0"

表示文件内容的大小。

1.7、"Jul 23 18:26"

表示文件最后一次被修改的时间。

1.8、"file"

表示文件的名字。

2、文件所有人所有组的管理

在对文件进行管理时,有时需要改变文件或者目录的所有人或者所有组,就需要用到"chown"命令。

命令"chown username file|directory"表示更改文件的所有人,例如将"file"文件的所有人改为"wea"。

命令"chown username.groupname file|directory"表示更改所有人所有组。例如将"file"文件的所有人和所有组改为"tom"。

命令"chgrp groupname file|directory"表示更改所有组。例如将"file"文件的所有组改为"wea"。

此外,如果在改目录所有人或者所有组的时候加入参数"-R",则表示更改目录本身及里面所有人或者所有组。

3、文件的普通权限

rw-   |   rw-   |   r--

u          g          o

u说明文件所有人对文件可以读写,g说明文件组成员对文件可读,o说明其他人对文件可读。文件的普通权限有wrx三种。

3.1、w

"w"对于文件来说可以更改文件内字符,对于目录来说,可以在目录中添加删除文件。

3.2、r

"r"对于文件来说可以查看文件中的字符,对于目录来说,可以查看目录中文件的信息。

3.3、x

"x"对于文件来说可以运行文件内记录的程序动作,对于目录来说,可以进入目录中。

3.4、修改该文件权限

修改文件权限的命令为"chmod <u|g|o><+|-|=><r|w|x> file|directory"。例如下图,输入"chmod u+x file"在所有人权限上添加x。

输入"chmod g+w file"在所有组权限上添加"w"。

输入"chmod u-x,g-w file"在所有人权限上去掉"x",并在所有组权限上去掉"w"。

输入"chmod ugo+x file"表示在所有人、所有组和其他人权限上添加"x"。

3.5、数字修改权限的方式

在修改权限时,上述命令用起来过于繁琐,所有可以用数字代替。在linux中,r=4、w=2、x=1。所以命令"chmod u+rwx,og-wrx file"也可以写为"chmod 700 file",明显简单了许多。

4、系统默认权限的设定

从系统存在角度来说,开放权力越大,系统存在意义越高。但是从系统安全角度来说,开放权力越少,系统安全性越高。所以系统设定新建文件或目录会去掉一些权限。

查看系统保留权限的命令是"umask",在当前的shell中可以临时修改系统保留权限,之在当前shell中有效,例如将系统保留权限设为"077",代表建立的文件权限为700。

上述修改系统保留权限只能临时生效,如果需要永久生效,则需要作以下设定。

输入命令"vim /etc/bashrc",002为普通用户默认权限,077为超级用户默认权限。

输入命令"vim /etc/profile"。

在上图的地方设置需要的umask值,但需要注意的是,以上两个文件umask设定值必须保持一致,完成之后输入"source /etc/bashrc"和"source /etc/profile"让设定立即生效。

5、文件访问(acl)的设定

5.1、acl的定义

"acl"就是"access control",是指定特殊用户对特殊文件有特殊权。输入命令"getfacl file|directory"就可以查看特殊权限列表。例如下图输入"getfacl file",查看权限列表。在结果中,"file:file"是文件名,"owner: root"是文件所有人,"group: root"是组所有人,"user:rwx"是文件拥有者权限,"group::rwx"是组权限,"other::rwx"是其他人权限,如果出现"mask::rwx"则是权限掩码,如果出现"user:username:rwx"则是特殊用户权限。

需要注意的是,当文件上有权限列表时,"ls -l"能看到的权限是假的。

5.2、设定acl列表

添加acl列表的命令是"setfacl -m <u|g>:<username|groupname>:权限 文件|目录"。如下图,添加"wea"用户为特殊用户,有特殊权限"rwx"。

删除acl列表的命令是"setfacl -x <u|g>:<username|groupname> 文件|目录"。如下图删除刚才所添加的特殊用户"wea"。

关闭acl列表可以使用命令"setfacl -b 文件|目录"。

5.3、mask值

mask是权限掩码,用来表示能够赋予用户最大权限,但是当用chmod改变文件普通权限时可能会破坏,如下图所示。

上述情况如果需要修复,则需要输入命令"setfacl -m m:7 文件名称"。

5.4、acl默认权限的设置

当我们需求某个目录对于wea用户可写,并且目录中新建的子目录也对这个用户可写,就要设定默认权限。设定默认权限的命令为"setfacl -m d:u:wea:7 test/"。如下图所示,在原目录中重新建立一个子目录后发现新建的目录对"wea"也可写。

但是,默认权限只对目录中新建立的文件或者目录生效,对已经建立的文件无效,对于目录本身也无效。

6、特殊权限

6.1、冒险位权限suid

此权限只针对二进制可执行文件,使用效果是文件内记录的程序产生的进程的所有人为文件所有人,和和进程发起人身份无关。设定方式为:"chmod u+s file"或者"chmod 4xxx file"。

例如下图,一般情况下wea用户并不能删除"/root/test",输入"chmod u+s /bin/rm"命令之后,使得删除时删除进程的所有人为root,从而删除"/root/test"。

6.2、强制位权限sgid

此权限主要应用与目录,使用效果是目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关。设定方式为:"chmod g+s directory"或者"chmod 2xxx directory"。

例如下图,可以看到当wea用户在"/mnt/test"目录下建立文件时,文件的所有组为"wea",但是如果输入命令"chmod g+s /mnt/test"之后,wea所建立的文件自动归属于目录的所有组"root"。

6.3、粘制位权限sticky

此权限只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除。命令为:"chmod o+t direcotry"或者"chmod   1777 direcotry"。

例如下图,可以看出,在一般情况下,student用户是可以删除wea用户所建立的文件的。但是,在输入"chmod o+t /mnt/test"命令之后,student用户无法删除wea用户所建立的文件"file"。

以上就是在linux系统的操作中关于文件权限的主要内容。

linux初学者-文件权限的更多相关文章

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

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

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

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

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

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

  4. linux初学者-文件管理篇

    linux初学者-文件管理篇 linux系统的所有东西都是以文件的形式存储在计算机中的,所以linux系统中对文件的管理非常重要.以下介绍一些文件管理的常用方法. 1.文件的建立 文件的建立或者修改文 ...

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

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

  6. Linux下文件权限的设置

    文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设定法 ) 其语法格式为:chmod ...

  7. Linux的文件权限与目录配置

    用户与用户组(Linux是一个多用户多任务的系统) 文件所有者   设置适当的权限,其他人无法看到自己的文件 用户组概念   属于同一个用户组的可以看到这个团体的公共信息,每个账户都可以有多个用户组的 ...

  8. Linux:文件权限

    使用较长格式列出文件:ls -l显示除了 '.'(当前目录),'..' 上一级目录之外的所有包含隐藏文件(Linux 下以 '.' 开头的文件为隐藏文件): ls -Al查看某一个目录的完整属性,而不 ...

  9. Linux的文件权限

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

随机推荐

  1. javaweb各种框架组合案例(二):maven+spring+springMVC+mybatis

    1.mybatis是比较新的半自动orm框架,效率也比较高,优点是sql语句的定制,管理与维护,包括优化,缺点是对开发人员的sql功底要求较高,如果比较复杂的查询,表与表之间的关系映射到对象与对象之间 ...

  2. MakerDAO 代币解释:DAI, WETH, PETH, SIN, MKR(一)

    Maker DAO Token Maker DAO 系统是由多个智能合约 ( Sai Tap, Sai Tub, Vox, Medianiser, etc.), 和 ERC-20 代币组成. 他们一起 ...

  3. sso和oauth2.0的简单了解学习

    sso,单点登录,single sign on 缩写.sso多用于多个应用之间的切换,例如百度论坛.百度知道.百度云.百度文库等,在其中一个系统中登录,(登录有效期内)切换到另一个系统的时候,不必再次 ...

  4. CodeSmith使用SQLite Provider找不到请求的 .Net Framework 数据提供程序

    关于CodeSmith5使用SQLite Provider时的报错:System.BadImageFormatException: 未能加载文件或程序集“System.Data.SQLite,.... ...

  5. 【练习题】proj1 判断二叉树子树和是否为指定的值

    #include <stdio.h> #include <vector> #include <list> #include<iostream> usin ...

  6. never下ioc

    生命周期 当前分单例,作用域(范围),短暂.单例是整个服务中只有一个实例,短暂则是每一次得到的都是新的实例,作用域就是在该一套行动中内得到的是同一个实例,该行动中指的是什么?我们看看demo下的sta ...

  7. 你竟然没用 Maven 构建项目?

    一年前,当我和小伙伴小龙一起做一个外包项目的时候,受到了严重的鄙视.我那时候还不知道 Maven,所以搭建项目用的还是最原始的方式,小龙不得已在导入项目的时候花了很长时间去下载项目依赖的开源类库. 出 ...

  8. 浅入深出Vue:路由

    路由的概念在计算机界中的历史大概可以追溯到OSI模型中的数据链路层与网络层中的定义.这里的定义大意是:在转发数据包时,根据数据包的目的地址进行寻址,从而将数据包发往指定的目的地. 在 Web开发中同样 ...

  9. java虚拟机-简介

    一.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现 ...

  10. 浅入深出Vue:第一个页面

    今天正式开始入门篇,也就是实战了~ 首先我们是要做一个博客网站,UI 框架采用江湖传闻中的 ElementUI,今天我们就来利用它确定我们博客网站的基本布局吧. 准备工作 新建一个vue项目(可以参考 ...