Linux系统9位基础权限体系
文件权限
  * r权限 可读          对文件具有读取及查看文件内容的全新啊
  * w权限 可写        对文件具有新增、修改文件内容的权限
    1. 删除文件与文件本身权限无关,受上级目录权限控制
    2. 如果文件没有r权限,vi编辑文件时会提示无权限,可通过echo重定向或追加
  * x权限 可执行     对文件具有执行的权限
    1. 文件本身要能够执行
    2. 普通用户需要具备r权限才能够执行;root用户只需要有x权限就可以执行
 
目录权限
  * r权限         具有浏览目录下文件及子目录的权限
    1. 如果没有r权限,用户无法进入到目录,即无法cd目录
    2. 如果没有r权限,ls列目录时可以看到所有文件名,但文件属性信息会变成问号字符,同时会提示无法访问目录下的文件
  * w权限 表示具有增加、删除目录内文件名的权限(需要x权限配合)
  * x权限         可执行权限 表示具有进入目录的权限。但如果没有r权限,无法列目录和文件,没有w权限无法新建和删除
 
Linux系统下默认权限控制umask
  Linux系统中,用户的默认权限是由umask的值来控制的。umask是通过八进制的数值来定义用户创建文件或目录的默认权限的,其对应数值表示禁止的权限 。
正常情况下,root超级用户的系统默认umask值为022,普通用户的默认umask值为002
 
文件及目录权限计算方法
1. 文件默认权限的计算方法
文件默认权限为最大的权限为666减去umask的值,如结果权限位是奇数的话,奇数位+1
 
例:root用户默认umask为022,所以其创建的文件为644(666-022所得)
  1. [root@master ~]# umask
  2.  
  3. [root@master ~]# touch file.txt
  4. [root@master ~]# ls -l file.txt
  5. -rw-r--r--. root root 5 : file.txt
2. 目录默认权限的计算方法
目录默认权限为最大的权限为777减去umask的值
例:root用户默认umask为022,所以其创建的文件为755(777-022所得)
  1. [root@master ~]# mkdir test
  2. [root@master ~]# ll
  3. drwxr-xr-x. root root 5 : test
Linux系统12特殊权限体系
SUID
它是针对程序和二进制命令的    chmod 4755 命令==>设置suid
 用户或属主对应的前三位权限的x位上有s表示有suid权限,当x位上没有小写x执行权限时,suid的权限显示为大S
 suid作用是让普通用户可以以root角色运行只有root用户才能运行的程序和命令,或程序命令对应本来没有操作权限的文件。suid为某一命令设置特殊权限(给所有人用)。
 
 例:当普通用户无法删除文件时,可通过设置rm命令suid权限来达到删除目的
 
 suid修改的是执行命令(passwd),而不是处理的目标文件(shadow)
 仅针对二进制命令有效,不能用在shell等类似脚本等文件上
 二进制命令程序需配合x可执行权限
 suid权限仅在程序命令执行过程中有效
 执行suid命令的任意系统用户都可以获得该命令程序在执行期间对应的拥有者所有权限
 suid是一把双刃剑,是比较危险的功能,对系统安全有一定的威胁。系统suid的无用功能取消suid权限(安全优化)
例:chmod u-s /bin/ping
 
SGID
与suid不同的是,sgid既可以针对文件,也可以针对目录。它是针对用户组权限位的。   chmod 2755 命令==>设置sgid
对文件的功能
    仅对二进制命令有效
    需要x可执行权限
    执行命令的任意用户可以获得该命令程序执行期间所属组的权限
 
对目录的功能
   所有用户创建文件,默认用户和组都是本身
   可以让用户在此目录下创建文件盒目录,具有和此目录相同的用户组设置。sgid主要用于目录中,当为某个目录设置了sgid以后,该目录中新创建的文件具有该目录的所属组权限,而不是创建该文件的用户的默认所有者
 
例:
  1. [root@master data]# mkdir admins
  2. [root@master data]# useradd adminsuser
  3. [root@master data]# chown .adminsuser admins/
  4. [root@master data]# touch admins/test.txt
  5. [root@master data]# ll admins/

  总用量 0

  -rw-r--r--. 1 root root 0 5月  29 21:24 test.txt
  [root@master data]# chmod g+s admins/   设置目录sgid
  [root@master data]# touch admins/test.sh
  [root@master data]# ll admins/
  总用量 0
  -rw-r--r--. 1 root adminsuser 0 5月  29 21:29 test.sh

Linux文件及目录权限解析的更多相关文章

  1. Linux文件和目录权限详细讲解

    转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...

  2. Linux学习之十四-Linux文件和目录权限

    Linux文件和目录权限 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允 ...

  3. Linux文件和目录权限实战讲解

    一 相关课程回顾1.1 linux文件类型当执行ls -l或ls -la 命令后显示的结果中最前面的第2~10个字符是用来表示文件权限 第一个字符一般用来区分文件和目录: d:表示是一个目录,事实上在 ...

  4. 运维系列之一 Linux的文件与目录权限解析

    在Linux中,万事万物皆文件,普通文件是文件,目录是文件,硬件设备也是文件,因此学习了解Linux中的文件非常重要. Linux中有三种文件类型: (1) 普通文件:又分为文本文件和二进制文件 (2 ...

  5. linux文件或目录权限修改后如何恢复(备份了权限就能恢复)

    操作系统 RHEL5 如果你在linux上执行了如下操作chmod -R 777 / 或者 chmod -R 700 /那么恭喜你,你的系统即将崩溃,重启之后,你进不了图形界面,而且很多服务都起不来 ...

  6. linux文件和目录权限

    linux系统文件和目录的权限说明 文件权限是Linux系统的第一道安全防线,基本的权限有读取(r).写入(w)和执行(x): 文件访问模式 读取:用户能够读取文件信息,查看文件内容. 写入:用户可以 ...

  7. 浅谈Linux文件与目录权限

    作为一个程序员,在工作的过程中或多或少都会接触都Linux,那么对于权限这块肯定有所了解,今天有空想谈谈觉得比较绕的权限问题,即文件权限与目录权限 1.文件权限,对于文件权限这个是比较简单的,也很容易 ...

  8. Linux文件和目录的属性及权限总结

    本文讲述的是文件或目录的属性及权限,比如索引节点inode.文件类型.文件权限及属主:还对setuid.setgid及粘贴位进行了相关的讲解.其中,对ln.chmod.chown.chgrp.umas ...

  9. Linux系统文件与目录权限管理

    Linux文件目录权限管理 一.Linux文件属性及权限 1.Linux文件及目录权限及属性说明 (1)权限及属性说明 (2)文件权限说明 三种权限说明:r 读  read w 写  write  x ...

随机推荐

  1. C#序列化与反序列化方式简单总结

    序列化和反序列化 相关类: System.SerializableAttribute特性(或称为属性), System.Runtime.Serialization.ISerializable(自定义序 ...

  2. mysql 序列与pg序列的比较

    mysql序列(这里只谈innodb引擎): 在使用mysql的AUTO_INCREMENT时,使用AUTO_INCREMENT的字段必须建有索引,也可以为索引的一部分.当没有索引时会报错:      ...

  3. mongo安全:增加用户名密码

    0.简述:在非auth下创建账户,然后重启 1.以不需要用户名密码的方式启动mongodb 2.运行客户端mongo,输入以下指令 show dbs;use admin;db.createRole({ ...

  4. appium 环境搭建 java

    1 安装node.js 1.1 安装node.js http://nodejs.cn/download/ 1.2.下载后直接点击exe,按照提示一步一步的安装 1.3 安装成功后,运行cmd,输入no ...

  5. C++ 取得系统当前时间

    #include <time.h> //* 方法一 time_t tt = time(NULL);//这句返回的只是一个时间cuo tm* t= localtime(&tt); p ...

  6. javascript 利用匿名函数对象给你异步回调方法传参数

    先来创建一个匿名函数对象: /*** * 匿名函数 */ var callChangeBtn=new function(bugBtn){ this.chage=function(json){ bugB ...

  7. tomcat war部署根目录下

    一个很取巧的办法,步骤如下: 1. 删除webapp下所有文件 cd ${TOMAT_HOME}/webapps && rm -rf * 2. copy待部署war到webapps目录 ...

  8. [转]libevent简介和使用

    libevent是一个基于事件触发的网络库,memcached底层也是使用libevent库. 总体来说,libevent有下面一些特点和优势:* 事件驱动,高性能:* 轻量级,专注于网络: * 跨平 ...

  9. fielderror里的fieldName代表的是jsp里的fieldName还是Action类的成员变量?(待解答)

    1.值栈的Action对象中会有一个fielderror属性,代表着字段错误. fielderror是Map<String,List<String>>类型 例如下面的值栈里可看 ...

  10. PHP网页显示乱码问题总结

    其实,乱码,都是因为编码不统一的问题导致的. 以UTF-8编码为例: 第一步,确定数据库字段的编码,字符集:urt8 第二部,PHP脚本设置编码:header('Content-Type: text/ ...