权限管理

       学习文件和目录的权限管理,不仅在学习上对我们的帮助很大,而且在工作上帮助也很大,因为你对文件或目录设置了权限,其他用户只能根据你设置的权限对文件或目录进行浏览,修改,删除或执行,也正是如此,权限的管理很重要。下面我就对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)
上一篇 2016-08-08 16:04
下一篇 2016-08-08 16:04

相关推荐

  • 探索这个“男人”

    一、前言 正所谓了解一个命令就得了解他的用法,正好是要了解一个人就得了解他的兴趣爱好,处事态度以及为人是怎么样的。 二、man是什么 man – an interface to the on-line reference manuals Man是manual(手册)的缩写,使用权限是所有用户,man命令提供为linux系统在线提供了很好的帮助手册…

    Linux干货 2016-05-03
  • M20-1 8月3号 ACL访问控制列表

    一、acl简介:   access control list,用于实现灵活的权限管理,除了文件的所有者,所属组和其他人,可以对更多的用户设置权限,而acl生效的顺序是所有者,自定义用户组,自定义组,其他人。 二、ACL的设置技巧:   getfacl:取得某个文件/目录的ACL设置项目   setfacl:设置某个目录/文件的A…

    Linux干货 2016-08-08
  • NFS 实现wordpress同步

    NFS 0x00 NFS概述 0x01 NFS实现原理 0x02 NFS 相关配置及命令 0x03 NFS实践作业(一) 实验要求: 实验环境: 实验步骤: 0x04 NFS实践作业(二) 实验要求: 实验环境: 实验步骤: 0x05 常见问题 0x00 NFS概述 网络文件系统(英语:Network File System,缩写为NFS)是一种分布式文件系…

    2017-04-30
  • ​Linux基础知识之screen命令详解

    该博文以CentOS6.8_x86_64系统为基础,Xshell5远程登录CentOS6.8系统,以root身份登录系统,以Xshell5发起screen帮助,用系统命令行界面去连接。 screen命令:         打开新的screen: screen -S [SESSION]   (打开一个名叫hel…

    Linux干货 2016-07-29
  • 一次简单的内核编译(二)

      前言:     此次编译是继一次简单的内核编译(一)进行操作编译的,请先查看第一篇再来看此片文章 一、使用busybox代替自己制作的init脚本,实现内核启动;  1、在这里我们使用静态编译busybox,所以需要先安装glibc-static依赖包,如果不安装会报错     2、解…

    Linux干货 2015-06-01
  • gawk基础

    gawk程序是Unix中原始awk程序的GNU版本。gawk程序让流编辑器迈上了一个新的台阶,它提供了一种编程语言而不只是编辑器命令。在gawk编程语言中,可以完成下面的事情: (1)定义变量来保存数据; (2)使用算数和字符串操作符来处理数据; (3)使用结构化编程概念(比如if-then语句和循环)来为数据处理增加处理逻辑; (4)通过提取数据文件中的数…

    Linux干货 2017-05-22

评论列表(1条)

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

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