权限管理

文件权限的种类:

一、UGO权限(即普通权限)

二、FACL文件访问控制列表

三、文件的特殊权限(三种S权限)

四、文件的隐藏属性attribute (文件系统权限)

 

 

 

一、文件的UGO权限基础(即普通权限)

Linux系统中一切都是文件,文件和目录的所属权限——来分别规定全部者、全部组、其他人的读,写,执行权限。算法

读(read),写(write),执行e(execute)简写即为(r,w,x),亦可用数字(4,2,1)表示vim

例以下图中的文件全部者(属主)为root,全部组(属组)为root,文件名为instsall.log,权限位的第一个减号”“表明的是文件类型:-:普通文件,d:目录文件,l:连接文件,b:块设备文件,c:字符设备文件,p:管道文件ide

文件的权限为r w -r - -r- -也就是分别表示全部者(属主)有读写权限全部组(属组)有读权限其他人也仅有读权限测试

 

权限的相关知识:ui

三种权限:spa

权限3d

英文代号日志

数字代号orm

文件权限说明blog

目录权限说明

读read

r

4

能用cat、head、vi查看文件内容

能用ls命令查看

写write

w

2

能用echo、vi、vim添加内容到文件中

即容许修改文件内容

能用mkdir、touch执行建立操做

执行exec

x

1

命令、程序、脚本必须得有x执行权限,才能运行

能用cd命令打开此目录

7=4+2+1=rwx     5=4+1=r-x    6=4+2=rw-    4=r

777=rwx  rwx  rwx    755=rwx r-x r-x     644=rw- rr--  600=rw-  ---  ---

 

权限中的三类用户:

用户类别

英文代号

权限的范围

用户本身user

u

权限中的前3位

本组用户group

g

权限中的中间3位

其余用户other

o

权限中的最后3位

全部用户all

a

会影响到权限中的9位

 

chmod命令

说明:chmod是change  mode的缩写。用whatis  chmod和whereis  chmod可分别查询chmod命令的相关信息。

功能:修改权限的命令:chmod  [选项]  权限  文件名或目录名

经常使用选项:--help

-v    显示执行过程

-R    递归修改目录及其子目录的全部文件权限。

 

权限修改中的代号:

u

g

o

a

+

-

=

用户

其余用户

全部用户

添加权限

减掉权限

设置新的权限

 

实例:用head命令将/etc/passwd文件中的前3行导入到/b.txt文件中,而后执行如下权限修改操做。

head   -3   /etc/passwd  > /b.txt     (>大于号是重定向覆盖输出,即将本来显示在屏幕上的信息覆盖写入到>指定的文件中)

cat  /b.txt

ls  -l   /b.txt

chmod  -v  0   /b.txt        清除文件的全部权限

chmod  -v  u+rw   /b.txt       给文件的属主(user)权限设置成rw可读可写

chmod  -v  g+r    /b.txt       给文件的属组(group)权限设置成r可读

chmod  -v  o+r    /b.txt       给文件的其余(other)用户权限设置成r可读

chmod  -v   a+x   /b.txt       给文件的全部(all)用户设置x可执行权限

chmod  -v   u=rw,g=r,o=r /b.txt   或chmod  -v  644   /b.txt   给文件的属主、属组、其余人从新受权

chmod  -v   a-r   /b.txt       给文件的全部用户减掉r可读的权限

rm  -f   /b.txt      删除/b.txt文件

 

 

chown命令

说明:chown是change  owner的缩写。用whatis  chown和whereis  chown可分别查询chown命令的相关信息。

功能:修改文件的拥有者(属主)和拥有组(属组):chown  [选项]   用户名:组名     文件名

经常使用选项:--help

-v    显示操做过程

-R    递归修改目录及其子目录的全部属主、属组。

 

实验1:在根目录下建立一个文件/a.mp3,而后查看文件的详细信息,修改文件的属主为bin,再修改文件的属组为adm,最后同时修改文件的属主和属组为root,删除此/a.mp3文件。

cd   /         进入根目录

touch   a.mp3      在当前目录建立a.mp3文件

ls  -l   /a.mp3     查/a.mp3文件的权限

chown   -v   bin   /a.mp3       修改/a.mp3文件的属主为bin

ll  a.mp3

chown   -v    :adm   /a.mp3      修改/a.mp3文件的属组为adm

chown   -v   root.root   /a.mp3

rm  -f  /a.mp3

 

 

 

umask命令

文件权限的掩码:umask  [权限]

umask默认值:root用户的是022,普通用户的是002。

umask的功能:会影响到用户建立的新文件、目录的最终权限。

实验测试:用mkdir在根目录下建立/dir目录,用touch建立文件/file,而后分别查看/dir、/file的详细信息,最后删除文件和目录。

umask     查看当前的umask值,它表示要去掉的权限

mkdir   /dir

touch   /file

ls  -ld   /dir    查看/dir目录的详细信息,也能够ll  -d  /dir

ls  -l   /file     查看/file文件的详细信息,也能够ll  /file

rm  -rf  /dir  /file

文件、目录最终权限的算法:满权限-umask权限=最终权限

目录的默认满权限:777     例如:777-022=755     777-031=746       rwx  rwx  rwx

文件的默认满权限:666     例如:666-022=644     666-031=646       rw-  rw-   rw-

满权限

777

666

666

umask

022

022

031

计算过程

 

 

777-022

rwx  rwx  rwx

---   -w-   -w-

666-022

rw-  rw-  rw-

---   -w-   -w-

666-031

rw-  rw-   rw-  满权限

---   -wx   --x  要去掉的权umask限

权限结果

rwx  r-x   r-x

即755

rw-  r--   r--

即644

rw-   r--  rw-

即646

---------------------

UGO权限管理中必须会的内容:

一、熟悉r读、w写、x执行权限

二、熟悉ls  -l和ls  -ld查看文件、目录属性中的权限

三、用chmod修改u、g、o权限

四、用chown修改文件的属主和属组

五、明白umask的做用,熟悉权限值是如何计算的

 

 

 

二、FACL文件访问控制列表

FACL:文件访问控制列表file  access  control  list,控制文件和目录访问权限的一种方式,FACL的级别高于普通的UGO权限(即用chmod设置的权限)。

 

facl应用场合:A用户建立的某个文件,精确到只想让B、C用户读写,就能够用FACL权限实现。

 

getfacl命令

查看文件、目录的FACL权限:getfacl    文件名

例如:getfacl   /etc/passwd

说明:文件和目录的默认ACL权限跟UGO权限的值相同。

 

setfacl命令

设置文件的ACL权限:setfacl   [选项]   权限  文件名

经常使用选项:

选项

功能

选项

功能

--help

显示命令帮助

-k

删除默认的ACL权限

-m

即modify,设置或修改ACL权限

-R

递归设置ACL权限(对目录及其子文件)

-x

删除指定用户的文件的ACL权限

-d

即default,设置默认的ACL权限(仅用于目录,目录中新建立的文件会继承ACL权限)

-b

删除全部的ACL权限



 

setfacl案例

需求:进入当前用户的家目录,在当前目录中建立a.txt文件,对a.txt文件设置ACL权限,让adm用户对此文件有rw-权限,让lp组对此文件有r--权限。查看a.txt文件的ACL权限。最后删除a.txt文件。

功能

命令操做

进入当前用户的家目录

cd   或  cd  ~

在当前目录下建立a.txt文件

touch  a.txt

查a.txt文件的ACL权限

getfacl  a.txt

在a.txt文件上添加adm用户的ACL权限

setfacl  -m  u:adm:rw-   a.txt

在a.txt文件上添加bin组的ACL权限

setfacl  -m  g:bin:rw-   a.txt

查a.txt文件的ACL权限

getfacl  a.txt

强制删除a.txt文件

rm  -f   a.txt

注意:若是ACL权限不起做用,说明分区挂载时没有用acl选项来启动文件系统的ACL权限功能。

 

三、文件的特殊权限(三种S权限)

SUID权限:

功能:命令的执行者临时拥有命令的属主(root)权限(仅对有执行权限的二进制程序[即命令]有效

设置suid权限的方法:chmod  u+s  文件名

例1:依次查看/bin/cat、/etc/shadow文件的属性,切换到u1用户,用cat 查看/etc/shadow文件,exit退出u1的登陆。

 

SGID权限:

功能:在该目录中建立的文件自动继承此目录的属性只能够对目录设置一般用于作文件共享时对某个目录设置g+s权限

设置SGID权限:chmod  g+s   目录名

好比咱们将某个部门的工做目录给予了SGID权限,这样全部人建立的文件都归相同的工做组,这样方便之后的管理。

chmod命令用于修改文件或目录的权限,格式为:”chmod [参数] 权限 文件或目录名称”。

chown命令用于修改文件或目录的所属主与所属组,格式为:“chown [参数] 所属主:所属组 文件或目录名称”。

chmod与chown的命令参数很简单记——对于文件不加参数,遇到目录加大写-R(递归,修改目录内全部文件的属性)

建立工做目录并给予SGID权限:

mkdir  /d1

chmod  -v  777  /d1

chmod  -v  g+s  /d1

切换至普通用户u1,在该目录建立文件:

su   u1

touch   /d1/a

ll  -d  /d1/a      验证此文件的属组是哪一个组,会发现a文件的属组跟/d1目录相同,都是属于root组。

exit   退出u1用户的登陆

rm  -rfv  /d1    删除/d1目录

 

 

SBIT(Sticky Bit)权限:

功能:只容许root和文件的属主删除目录中的文件(仅对目录有效,一般用于作文件共享的目录)

添加t权限的方法:chmod  o+t   目录

通常老师但愿学生能够将做业上传到某个特定目录——但为了不某些小破坏份子,想禁止删除其余人文件的话,那就要设置SBIT位了,固然也能够叫作特殊权限位之粘滞位(粘着位)

 

案例:查看/tmp目录的权限,建立用户u一、u2,临时切换到u1用户,建立文件/tmp/u1f,设置u1f文件权限为777,退出u1用户的登陆,而后切换到u2用户,用u2用户删除/tmp/u1f文件,看是否能删除。

查看/tmp目录的属性:ls  -ld   /tmp     发现/tmp目录有t权限

建立用户u1:useradd  u1

建立用户u2:useradd  u2

切换到u1用户:  su  - u1

建立文件/tmp/u1f: touch  /tmp/u1f

修改/tmp/u1f权限为777: chmod  -v  777   /tmp/u1f

退出u1用户的登陆:exit

切换到u2用户:su   u2

查看/tmp/u1f文件的属性:ll  /tmp/u1f

删除/tmp/u1f文件:rm  -f  /tmp/u1f      会提示“没法删除”(由于/tmp目录有t权限)。

退出u2用户的登陆:exit

 

强调:删除该文件时会提示错误,即使权限很充足,但由于特殊权限SBIT的缘故,一样会有没法删除其余人的文件的状况

四、文件的隐藏属性attribute (文件系统权限)

文件的隐藏属性attribute (文件系统权限)

问题:如何让root也没法删除某个文件?

答:给这个文件用chattr设置i或a属性便可。这样能够防止root用户误删除重要文件。

 

问题:文件权限除了读写执行与SUID、SGID、SBIT外还有一种隐藏属性,例如明明有权限删除某个文件却报错了,或者仅能为某个文件追加内容而不能减小内容,遇到这种很“奇怪”的文件,就要怀疑是文件被设置隐藏属性了。

chattr命令

chattr命令用于设置文件的隐藏属性(特殊属性),格式为:“chattr [选项] 文件”。

选项

做用

+/-i

将没法对文件内容进行修改,若对目录设置后则仅能修改子文件而不能新建或删除。

+/-a

仅容许补充(追加)内容.没法覆盖/删除(Append Only)。一般用于日志文件。

S

文件内容变动后当即同步到硬盘(sync)。

s

完全从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)。

A

再也不修改这个文件的最后访问时间(atime)。

b

再也不修改文件或目录的存取时间。

D

检查压缩文件中的错误。

d

当使用dump命令备份时忽略本文件/目录。

c

默认将文件或目录进行压缩。

u

当删除此文件后依然保留其在硬盘中的数据,方便往后恢复。

t

让文件系统支持尾部合并(tail-merging)。

X

能够直接访问压缩文件的内容。

 

 

 

lsattr命令

lsattr命令用于显示文件的隐藏权限,格式为:“lsattr [选项] 文件”。

选项

做用

a

显示全部文件和目录。

l

显示隐藏属性的全称(默认简写成一个字母)。

R

递归处理,将指定目录下的全部文件及子目录一并处理。

d

若目标文件为目录,请加此参数。

任务:用root用户体验文件的隐藏权限i、a。

功能

命令操做

将echo命令后的字符覆盖写入到/a.txt文件中

echo  hello  > /a.txt

查看/a.txt文件内容

cat  /a.txt

查看/a.txt文件的

lsattr   /a.txt

给文件添加隐藏权限a

chattr  +a   /a.txt

将echo后的字符追加写入到/a.txt文件中

echo  hi  >> /a.txt

查看文件内容

cat  /a.txt

删除/a.txt文件,此时没法删除,由于有a权限

rm  -f  /a.txt

给/a.txt文件去掉a权限

chattr  -a   /a.txt

删除/a.txt文件,此时正常删除

rm -f /a.txt

相关文章
相关标签/搜索