一、用途

文将介绍linux环境下有关文件訪问模式相关的命令。

        umask用来设置默认的文件訪问模式屏蔽值;chmod用来改动文件的訪问模式。

        本文将选取ubuntu14.04发行版做为描写叙述基础。

二、文件訪问模式

linux使用文件訪问模式保证文件的安全性,通过一个12bit的数据结构表示文件訪问模式的4组属性:

        1、SUID、SGID、Sticky属性 ;也叫特殊属性。

        2、用户的读、写、可运行属性;也叫用户属性。

3、用户所属组的读、写、可运行属性。也叫用户所属组属性。

        4、组内其它用户的读、写、可运行属性;也叫其它用户属性。

        这些属性有两种展示方式:一种是文字表示方式。r表示可读。w表示可写。x表示可运行,s表示设置了SUID,-表示禁止该属性。

使用ls -al命令能够查看文字方式表示的文件訪问属性。另一种表示方式是八进制,将12bit分为4组。每组能够使用八进制来表示,比如,User八进制值7(二进制为111)表示可读、可写、可运行;5(二进制为101)表示可读、不可写、可运行。

这两种表示方式各有优缺点。文字表示方式直观。八进制表示方式简洁。

三、SUID和SGID属性

SUID属性仅仅和可运行文件相关。

正常情况下。当用户启动该可运行文件时,是以当前用户的权限启动该可运行文件。假设设置了SUID属性,那么无论当前用户是谁,都是以文件的全部者的权限启动该可运行文件。

        比如,当前用户是zsy,而可运行文件passwd的全部者是root,假设没有设置SUID属性,那么当zsy用户启动passwd可运行程序时。passwd的权限仅仅是zsy拥有的权限。不能改动/etc/shadow文件;假设设置了SUID属性。那么当zsy用户启动passwd可运行程序时。passwd的权限是root拥有的权限,能够改动/etc/shadow。

        SGID属性的作用类似,假设设置了SGID属性。那么都拥有文件所属组的权限。

四、stat命令

stat命令能够查看文件的一些基本属性:文件大小、所占的块大小、文件訪问模式、文件的全部者ID、文件所属组的ID、文件创建时间等。

        语法:stat filename

比如。使用stat命令来查看passwd文件的属性。

从图中能够看出passwd的文件訪问模式的八进制表示方式是4755,相应的文字表示方式是-rwsr-xr-x。该文件设置了SUID和SGID。

五、umask命令

umask命令设置了默认的文件訪问模式屏蔽值,那么当新建文件时则自己主动禁止被屏蔽的属性。

        语法:umask value

        比如,使用umask 2命令设置文件訪问模式的屏蔽值为2,即0002。

那么当新建文件时,自己主动设置其它属性的写权限为禁止状态。

六、chmod命令

chmod命令能够改变文件的訪问模式。

        语法:chmod 文件訪问模式(文字表示方式或者八进制表示方式) filename

        比如。使用chmod命令以文字表示方式添加文件的可运行权限,chmod u+x README.md;或者以八进制表示方式添加文件的可运行权限,chmod 644 README.md。

        当中u+x的含义是:u表示文件訪问模式中的用户属性。+表示添加,x表示可运行权限。

八进制表示方式比較简洁。所以建议使用八进制的表示方式改动文件的訪问模式。

七、总结

linux系统下文件有非常多种属性,比如:文件大小、文件的拥有者、文件所属的组、文件訪问模式等,当中文件訪问模式属性的地位比較重要。因此重点介绍了文件訪问模式的概念以及相关命令umask和chmod。

文件訪问模式的表示方式有文字表示方式和八进制表示方式。应该熟练掌握。

特殊属性的SUID位影响了可运行文件的运行权限,读者应该正确理解SUID的含义以及用法。

版权声明:

原创作品。如非商业性转载,请注明出处;如商业性转上传发布,请与作者联系。

版权声明:本文博主原创文章。博客,未经同意不得转载。

linux文章(11)---umask和chmod的更多相关文章

  1. 系统学习Linux的11点建议

    一.从基础开始 常常有些朋友在 Linux 论坛问一些问题,不过,其中大多数的问题都是很基础的.例如为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不 ...

  2. linux中的umask命令

    转载:http://blog.51cto.com/1123697506/882064 一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不 ...

  3. 修改linux文件权限命令:chmod 【转载】

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod ...

  4. SUSE Linux Enterprise 11 离线安装 DLIB python机器学习模块

    python机器学习模块安装 环境:SUSE Linux Enterprise 11 sp4  离线安装 说明:在安装dlib时依赖的基础 环境较多,先升级gcc,以适应c++ 11的使用:需要用到c ...

  5. 虚拟机vmware10.0.0里设置Suse Linux Enterprise 11系统静态IP上网

    http://blog.csdn.net/usbdrivers/article/details/50035615 首次在虚拟机里安装Suse Linux Enterprise 11,采用NET方式能够 ...

  6. [转帖]Linux教程(11)- linux中的计划作业

    Linux教程(11)- linux中的计划作业 2018-08-21 17:13:36 钱婷婷 阅读数 160更多 分类专栏: Linux教程与操作 Linux教程与使用   版权声明:本文为博主原 ...

  7. SUSE Linux Enterprise 11 离线安装 DLIB 人脸识别 python机器学习模块

    python机器学习模块安装 我的博客:http://www.cnblogs.com/wglIT/p/7525046.html 环境:SUSE Linux Enterprise 11 sp4  离线安 ...

  8. Linux教程:Bash技巧,让chmod只修改某个目录下文件夹或者文件的权限

    用Linux的人都知道chmod -R 可以修改一个文件夹下的所有文件和文件夹的权限,但是这也存在着一个很大的弊端,那就是修改的是所有的文件和文件夹的权限,如果我只想修改文件或文件夹的权限该怎么办呢? ...

  9. Linux 0.11下信号量的实现和应用

    Linux 011下信号量的实现和应用 生产者-消费者问题 实现信号量 信号量的代码实现 关于sem_wait和sem_post sem_wait和sem_post函数的代码实现 信号量的完整代码 实 ...

随机推荐

  1. network: Android 网络推断(wifi、3G与其它)

    public class NetworkProber {  /**  * 网络是否可用  *  * @param activity  * @return  */  public static bool ...

  2. 邮箱password复位图

    blog宗旨:用图说话 辅助文字说明: 长处:用户系统完毕接口部分.界面留给业务自行设计. 缺点:邮箱发送邮件定制模板,没有完毕松耦合. 改进点:邮箱的准备发送邮件模板. 版权声明:本文博客原创文章, ...

  3. 新浪微博id的62进制转换

    某条微博链接 某条微博的链接如下,同样省略了后面的无关参数 http://weibo.com/2803301701/CeaOU15IT CeaOU15IT为这条微博的mid,与之相对应的还有一个id, ...

  4. Android Widget 小部件(一) 简单实现

    在屏幕上加入Widget:或长按屏幕空白处,或找到WidgetPreview App选择. 原生系统4.0下面使用长按方式,4.0及以上 打开WIDGETS 创建Widget的一般步骤: 在menif ...

  5. 【转】HLSL基础

    原文地址http://blog.csdn.net/chpdirect1984/article/details/1911622 目录 前言 1.HLSL入门 1.1什么是着色器 1.2什么是HLSL 1 ...

  6. Libgdx Box2D现实------这缓释微丸(一个:项目介绍)

    它花了两个星期的假写物理游戏,在几次课逃逸,是大学,因为大部分时间点!今天,我基本上一直每节课的点1-3有时它,哎,这似乎是不再逃跑.不知道值没有值得,仅仅是简单地想做自己喜欢的事情,而不是跟老师大眼 ...

  7. Myeclipse 10/2014 配置插件(svn、maven、properties、velocity)方法

    一.构造SVN具体说明 什么是SVN? 管理软件开发过程中的版本控制工具. 以下会以两种方式来介绍怎么安装svn,myeclipse安装SVN插件步骤.以myeclipse 2014为例,第一种是最常 ...

  8. 关于WCF的引用,添加服务和添加web服务的区别

    原文:关于WCF的引用,添加服务和添加web服务的区别 本章内容主要是根据我做的实验来阐述这2种添加服务针对WCF的不同之处,我们按照示例一步一步来看. 如下是工程的结构: 该WCF服务是通过控制台程 ...

  9. IBatis增删改差的实现以及注意点

    此次进讲述对表操作的实现细节.废话不多说,代码见真章. <?xml version="1.0" encoding="utf-8" ?> <sq ...

  10. 自己动手写一个编译器Tiny语言解析器实现

    然后,上一篇文章简介Tiny词法分析,实现语言.本文将介绍Tiny的语法分析器的实现. 1 Tiny语言的语法 下图是Tiny在BNF中的文法. 文法的定义能够看出.INNY语言有以下特点: 1 程序 ...