权限管理

       学习文件和目录的权限管理,不仅在学习上对我们的帮助很大,而且在工作上帮助也很大,因为你对文件或目录设置了权限,其他用户只能根据你设置的权限对文件或目录进行浏览,修改,删除或执行,也正是如此,权限的管理很重要。下面我就对Linux的权限管理进行简单的介绍。

Linux下的文件类型

-:普通文件

d:目录文件

b : 块设备

c : 字符设备

l : 符号链接文件

p : 管道文件pipe

s : 套接字文件socket

文件属性

文件权限.PNG

文件权限

文件的权限主要针对三类对象进行定义:

owner:  属主, u

group:  属组, g

other:  其他, o

每个文件针对每类访问者都定义了三种权限:

r  读(read)  4

w 写  (write)2

x  执行 (execute) 1

— 000 0

–x 001 1

-w- 010 2

-wx 011 3

r– 100 4

r-x 101 5

rw- 110 6

rwx 111 7

权限 r , w , x.PNG

三种普通权限分别在文件和目录中显示的含义不同

文件:

r:  可以查看文本中的内容

w:  可修改其内容,但不能删除文件本身

x:  针对二进制和脚本

目录:

r:  可以使用ls 查看此目录中文件列表,但不能访问文件,不能cd,也不能查看文件的元数据。

w:  可在此目录中创建文件,也可删除此目录中的文件(只一个w什么也做不了)

x:  可以进入dir,也可以访问dir中文件。(你要对目录进行访问,一般都要给r和x权限,或者都不给。)

X:大X是只给目录x 权限,不给文件x 权限(如果文件本身就带有x 权限,它就给)X只使用在目录上。

-X.PNG

修改文件权限

chmod [OPTION]… OCTAL-MODE FILE…

-R:  递归修改权限

chmod [OPTION]… MODE[,MODE]… FILE…

MODE: :

修改一类用户的所有权限:

u= g= o= ug= a= u=,g=

chmod =.PNG

修改一类用户某位或某些位权限

u+ u- g+ g- o+ o- a+ a- + –

chmod u,g,o,a.PNG

新建文件和目录的默认权限

umask值可以用来保留在创建文件权限

新建FILE 权限: 666-umask 有奇数加一 , 偶数保留。

新建DIR 权限: 777-umask

如:

umask  125

666    110  110  110     777   111  111  111

125    001  010  101     125   001  010  101

642    110  100  010     652   110  101  010

一般默认为非特权用户umask是 002

root 的umask 是 022

umask:  查看

umask #:  设定

umask 002

umask.PNG

umask –S  模式方式显示  (新建文件夹的默认)

umask -S.PNG

umask –p  输出可被调用 ,打印出来,

umask的配置文件,全局设置: /etc/bashrc  用户设置:~/.bashrc或~/.bash_profile

修改umask值只当前终端有效,关机或重启umask值将重认为是默认值,修改umask值,想一直有效,只有修改它的配置文件才可以永久生效。

安全上下文

前提:进程有属主和属组;文件有属主和属组

(1)  任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限

(2)  启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组

(3)  进程访问文件时的权限,取决于进程的发起者

       (a)  进程的发起者,同文件的属主:则应用文件属主权限

       (b)  进程的发起者,属于文件属组;则应用文件属组权限

       (c)  应用文件“其它”权限

特殊的文件权限

s  suid   4

s  sgid   2

t  sticky 1

SUID SGID STICKY

000 0

001 1

010 2

011 3

100 4

101 5

110 6

111 7

权限位映射

SUID: user, 占据属主的执行权限位(root没有执行权限,也能想干啥就干啥)

u+s 非常危险,不要轻易改动 , suid 只对二进制程序生效,如果不取消,会一直生效。

s:  属主拥有x 权限

S:属主没有x 权限

权限设定:

chmod u+s FILE… (给属主 s 的权限)

chmod u-s FILE…   (取消给属主的 s 权限)

u+s.PNG

u-s.PNG

SGID: group, 占据属组的执行权限位(root组没有x(执行权限),即使g+s也执行不了,root组有x,s,但对同属一个组的二进制程序,这个二进制程序对组有什么权限,那么用户就可以执行什么权限 )

(sgid :也可以作用于目录上,将使在该目录中新建文件或目录将自动继承该目录所属组。)

目录上的SGID 权限

默认情况下,用户创建文件时,其属组为此用户所属的主组。

一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组。

通常用于创建一个协作目录。

权限设定:

chmod g+s DIR…    (给和属主同一个属组中的其他用户 s 权限)

chmod g-s DIR…     (取消给和属主同一个属组中的其他用户的 s 权限)

g+s 作用在目录上.PNG

s: group 拥有x 权限

g+s.PNG

S:group 没有x 权限

g+s g没有执行权限.PNG

当u+s和g+s都存在时只继承一个权限, 优先继承u+s,

Sticky 位

具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权。

在目录设置Sticky 位,只有文件的所有者或root可以删除该文件。

Sticky: other, 占据other 的执行权限位(作用在目录上,o+t后其他用户只能在目录中创建文件,不能删除其他用户的文件,只能删除用户本身建的文件)

权限设定:

chmod o+t DIR…

chmod o-t DIR…

t: other 拥有x 权限

o+t.PNG

T:other 没有x 权

o+t 没有执行权限.PNG

       在工作或学习中,可能会不小心操作失误删除掉某些重要的文件,给我们造成一点损失,现在我给大家介绍一个可以让我们能够避免这种失误的命令,它就是chattr命令,chattr是给文件设置特定的属性,下面我来给大家介绍一下这个命令的使用。

chattr +A  锁定时间的属性2

chattr +A.PNG

chattr -A   解除+A的锁定

chattr -A.PNG

lsatter  显示特定属性

lsattr.PNG

chattr +i  不能更改

chattr +i.PNG

chattr -i   去掉 +i 的属性

chattr -i.PNG

chattr +a  只能增加

chattr 只能增加.PNG

chattr -a   去掉 +a 的属性

chattr 去掉+a的属性.PNG

原创文章,作者:AN0519,如若转载,请注明出处:http://www.178linux.com/31169

(0)
AN0519AN0519
上一篇 2016-08-08 16:04
下一篇 2016-08-08 16:04

相关推荐

  • Python函数式编程指南(二):函数

    这是此系列的第二篇,试图说明在Python中如何更好地使用函数并引导诸位使用函数式的思维进行思考。掌握并应用这些内容,就已经是至少形似的函数式风格的代码了,至于思维么,这个真靠自己。 作者水平有限,如有错漏之处还请指出;转载请注明原作者和原地址:) 2. 从函数开始 2.1. 定义一个函数 如下定义了一个求和函数: def add(x, y): return…

    Linux干货 2015-03-11
  • 一. DHCP,TFTP, DNS 配置

    练习在CentOS6上配置DHCP, TFTP, DNS服务 1. 首先按下图所示搭建网络拓扑图 2017-07-11 151425-001.png Server1 服务器IP: 192.168.20.101/24GATEWAY: 192.168.20.2DNS: 192.168.20.2 Server2 服务器IP: 192.168.20.102/24GA…

    Linux干货 2017-07-11
  • Ansible 详细用法说明

    Ansible 一、概述 运维工具按需不需要有代理程序来划分的话分两类: agent(需要有代理工具):基于专用的agent程序完成管理功能,puppet, func, zabbix agentless(无须代理工具):基于ssh服务完成管理,ansible, fabric 二、简介   Ansible是一个简单的自动化运维管理工具,基于Python语言实现…

    2016-11-07
  • 网络及TCP

    为什么要使用分层网络模型     降低复杂性     标准化接口     简化模块化设计     确保技术的互操作性     加快发展速度  &nbs…

    2017-05-08
  • shell脚本编程初步

    shell脚本编程初步    随着课程学习的深入,我们已经学习了一些常用的命令,会去解决了一部分简单的问题,但是这不能满足复杂的工作,它可以帮助我执行自动化的常用命令、执行系统管理和故障排除、创建简单的应用程序、处理文本或文件。所以我们开始了shell脚本的编程,帮助我们更好的去完成工作。简单地说,shell编程相当于帮我们之前…

    Linux干货 2016-08-15
  • ansible的入门使用手册

    ansible1

    2018-01-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-08 20:31

    文章整体思路清晰,通过模拟场景对特殊权限应用场景有有了深刻的理解和认识,