linux 权限相关部分

用户的权限分为普通权限,特殊权限,以及文件的特殊属性和FACL(赋予权限):
centos


一.普通权限:安全

  进程安全上下文:服务器

1.判断进程的全部者是否为想要操做的文件的属主,若是是,就按照属主的权限进行受权,若是不是,就转到第二条;app

2.判断进程的全部者是否为想要操做的文件的属组中的成员,若是是,就按照属组的权限进行受权,若是不是,转到第三条;异步

3.按照其余用户的权限进行受权;ide

     权限的构成;ui

  MODEpermission):使用权centos7

      R: readable, 可读spa

      W: writable, 可写命令行

      xeXecutable, 可执行

      目录:

         r:可以使用ls命令得到其中全部的文件名的列表:ls -l命令来获取目录中文件的详细的属性信息,也不能使用cd命令进入其中,也不能在路径中引用该目录;

         w:能够修改此目录中的文件名或文件名列表,即:能够在此目录中建立·修改或删除文件名;

         x:可使用ls -l命令来获取其中文件的详细属性信息;也能够在路径中引用该目录;也可使用cd命令来进入其中;x权限是目录的最基本权限,任何目录都必须对

 

      文件:

         r:能够查看或获取该文件中所存放的数据;

         w:能够修改文件中所存放的数据;

         x:能够将此文件发起运行为进程;


用Ls -l显示

rw-r--r--:三个权限位:属主;属组;其余用户的;以三个为区隔,

     属主权限:rw-

     属组权限:r--

     其余用户权限:r--

 

权限标识三元组:

--- 000  0

--x 001  1

-w- 010  2

-wx 011  3

r-- 100  4

r-x 101  5

Rw- 110  6

Rwx 111  7

 

rw-r--r--:

110100100

644

 

注意:只有某个文件的属主才能修改文件的使用权限(root除外):

修改文件的使用权限:

   Chmod: -->

   chmod - 改变文件的访问权限

   chmod [options] mode file...

MODE:符号权限标识法;

Ugoa:表示全部权;

+:在原有权限基础上添加新的权限;

—:在原有的权限基础上去除某些权限;

=:不考虑原有权限,直接将权限设置为目标权限;

 

Rwx表示具体权限内容:

 

例:

 Chmod u+w file

 Chomd g+rw file

 Chmod u+xg-wxo-xfile

 Chmod u=rwg=ro=r file

 Chomd ug-x file

 Chmod +x file 默认的为a添加执行权限,a为全部人;

 Chmod +w file 默认的只为属主添加读写权限;

 

注意:文件的执行权限:Linux文件系统来讲是很是重要的安全的标识:由于文件一旦具有了执行权限,意味着该文件能够被发起执行为进程;因此默认状况下文件都不具有执行权限;若是使用八进制数字表识法,则每一次必须给足全部的权限位;若是给的权限位不完整,文件系统会自动补足,将给定的权限放置在右侧,左侧用0来补;

   chmod 640 file

 

Chmod --reference=/PATH/TO/SOMEFILE DES_FILE

 

Chmod --referene=a b

 

   -R--Recursive:将目标目录中的文件及子目录和子目录下的文件统一的设定为指定的权限标识;

 OWNERSHIP:全部权

     属主:资源掌控的某个特定用户;owner(user), u

     属组:资源掌控得某些特定用户;group, g

     其余用户:不曾掌控资源的其余用户;other, o 

     所有用户:all, a

 

Chown:能够修改文件的属主和属组;

chown - 修改文件全部者和组别

chown [options] user [:group] file...

  Chown OWNER FILE

  Chown GROUP FLIE

  Chown  OWNER: FILE //将目标文件的属主改成OWNER的基本组

Chown OWNER GROUP  FILE //将目标文件的属主和主组修改成OWNERGROUP;

 -R--Recursive:将目标目录中的文件及子目录和子目录下的文件统一的设定为指定的权限标识;

注意:修改OWNERSHIP(全部权)的只能是超级用户才能够

 

Chgrp:只能修改文件的属组

 

Install命令:

  安装:复制文件;为文件赋予执行权限,

 install - 复制文件并设置属性

 

经常使用选项:

-d

-d, --directory

        建立每一个给定的目录以及任何缺失的父目录,

        按照命令行要求来设置全部者,组别和模式,或者设为默认值.

        它也授予任何它建立的父目录以这些属性.

 

-m-o

-g

    -g group, --group=              

 设置安装的文件或目录的组全部权为group,这多是组名,或者是数字化组标识.

 

Install命令不能复制目录,即其源不能为目录;若是其源为目录,则install经历了会进入目录,依次复制其中的全部非目录文件到目标位置;

 

Mktemp命令:

  通常来说,临时文件都会建立在/tmp/var/

  Tmp中,无需手动删除,系统会按期删除两个文件中的文件;

 

选项:

  -d--directory:能够建立临时目录;

例子:mktemp /PATH/TO/TMP.XXXXXXXX

 

回顾:

  普通权限:MODE:资源的使用权限

  OWNERSHIP:资源的全部权

 

特殊权限:

SUID SGID STICKY

默认状况下,用户发起一个进程,该进程的属主是其发起者;也就是说,该进程是以其发起者的身份在运行;

SUID

功能做用:用户发起执行一个进程时,该程序文件若是拥有SUID 权限的话,那么此程序发起的进程其属主为该程序文件的属主,而不是其发起者;

SUID 权限所显示的位置:文件的属主权限中的执行权限位;若是属主原本就有执行权限,显示位s;不然显示位S

 

管理文件的SUID 权限:

  Chmod u+| -s file。。。

 

SGID

若是某个目录对于一些用户有写权限而且设置了SGID权限时,则全部对此目录有写权限的用户在建立新的文件或目录之后,新文件的属组再也不是建立用户的基本组,而是继承了该目录的属组;

SGID权限显示位置:在文件的属组权限中的执行权限位,若是属组原本就就执行权限,显示位s;不然显示位S

 

STICKY :粘滞位

若是某个目录中有超过一个用户能够有写权限,则这多个用户均可以在该目录中随意建立,修改和删除文件名;

STICKY的功能做用:

若是为上述相似的目录设置了STICKY权限,则每一个用户依旧可以建立和修改文件名,但每一个用户只能删除那些属主为自身的文件名;

STICKY权限的显示位置:在文件权限的其余用户的执行权限位;若是原来就有执行权限,显示位s;不然显示位S

管理文件的STICKY权限:

Chmod o+|-t FILE...

Suid sgid sticky

--- 000 0

--t 001 1

-s- 010 2

-st 011 3

S-- 100 4

S-t 101 5

Ss- 110 6

Sst 111 7

 

  特殊权限的另外一种修改方式:

将特殊权限位对应的八进制数字放置于普通权限八进制数字的前面便可

 

Umask:

权限遮罩码,在建立权限或目录时默认的权限生成标准:

  Root0022

  不考虑特殊权限位;

  对于新建立的文件或目录,不遮挡属主的任何权限;遮住了属组和其余用户的写权限;

理解遮罩码:

    将遮罩码的值变为二进制,凡有1的位置,其权限在建立文件时,就不设置;

默认状况下,文件你的遮罩码就已经有了一个0111,在此基础之上再次应用umask来遮罩权限;

 

文件的特殊属性:

查看文件的特殊属性:

  Lsattr: lsattr - 显示文件在Linux第二扩展文件系统上的特有属性

修改设置文件的特殊属性:

Chattrchattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性

 chattr [ -RV ] [ -v version ] [ mode ] files...

  Mode:会使用+-=的方式来设置

 整个chatter命令最关键最核心的部分就是[mode]部分;

  +:在原有属性设定的基础上,添加新属性;

  -:从原有属性设置中移除指定的属性;

  =:从不考虑原有的属性设置,直接将属性设定为指定的属性内容;

 

aappend:设置这个属性的文件,其内容不能被修改或删除,只能以追加的方式向文件中写入数据,多数的服务器日志类文件会设置此属性;

Aatime,文件的访问时间戳:IO瓶颈:设置A属性可使得文件在被访问时不更改文件的访问时间戳,从而能够有效的防止IO瓶颈的发生;

c:设置文件是否自动压缩后再存储;

C:设置文件是否开启“写时复制”

d:设置文件在使用dump进行备份的时候,不会称为备份目标;

D:设置文件在文件系统中的异步写操做;

i:设置文件不能被删除,修改,设定连接关系;

s:设置文件的保密性删除,一旦设置s属性的文件被删除,其对应存储设备中的使用空间也会被一并删除;

u:跟s属性相反,若是这样的文件被删除,则其存储于存储设备中的文件会被留存;

 

最经常使用的属性:ia

Chatter +i FILE

经常使用选项:

  -R:递归的设置指定文件中的全部文件和子目录的属性;

 

为文件赋予额外的权限机制:FACLFile Access Control List,文件访问控制列表

  文件的额外赋权机制:

  在原有的ugo权限位以外,让普通用户可以控制权限赋予另外的用户和组的一种赋权机制;

  通常在centos7rhel7之后的版本才逐渐成熟;

  

  FACL有关的命令:

  Getfacl:得到facl

  Setfacl

 

 为用户赋予额外权限:setfacl -m u:USERNAME : MODE FILE...

为组:setfacl -m g:GROUPNAME : MODE FILE...

撤销为用户赋予的额外权限:

Setfacl -x u:USERNAME

撤销为组赋予的额外权限:

Setfacl -x uGROUPNAME

 注意:若是设置了facl以后修改目标的使用权限,那么facl中设置的条目就可能受到影响而致使与要求不符;所以,若是真的须要设置facl,就要在已经肯定目标文件的使用权限之后再进行设置;

相关文章
相关标签/搜索