首页 > 代码库 > 第六章笔记 文件权限 所有人/组管理

第六章笔记 文件权限 所有人/组管理

###文件权限###

 

***文件属性的查看***

 

ls -l filename

 

-|rw-r--r--.|1| root| root|   46 |Oct  1 05:03 |filename

— ———— —  ——  ——   ——     ————         ——  

1      2         3    4     5        6          7                  8

 

*** 1. "-": 文件类型

    - #普通文件

    d #目录

    c #字符设备

    s #套接字

    p #管道

    b #快设备

    l #连接

技术分享

***2."rw-r--r--":文件读写权限

rw-|r--|r--

 u   g   o

 

u 所有人的权限

g 所有组的权限

o 其他人的权限

 

*** 3."1":

对文件:文件内容被系统记录的次数

对目录:目录中文件属性的字节数(文件名大小)

 

***4."root":文件所有人

 

***5."root":文件所有组

 

***6."46":文件内容的大小

 

***7."Oct  1 05:03":文件最后一次被修改的时间

 

***8."filename":文件名字

 

###文件所有人/所有组的管理###

 

chown  username file|dir         #更改文件的所有人

chown  username:groupname file|dir #更改所有人所有组

chown -R username dir         #更改目录本身及里面所有内容的所有人

chgrp -R groupname dir         #更改目录本身及里面所有内容的所有组

技术分享

         

 

         监控命令

      watch -n 1 ls -lR /mnt

 

技术分享

 

 

###文件普通权限###

rw-|r--|r--

 u   g   o

u:文件所有人对文件可执行权限

g:文件组成员对文件可执行权限

o:其他人对文件可执行权限

u优先匹配,g次优先o当u,g不匹配时匹配

 1.r

对文件:可以查看文件中的字符

对目录:可以查看目录中文件的信息

 

2.w

对文件:可以更改文件内字符

对目录:可以在目录中添加删除文件

 

3.x

对文件:可以运行文件内记录的程序动作(如 .sh | .bin.)

对目录:可以进入目录中(当不能进入目录时无法对目录中的文件进行操作)

 

***字符方式修改该文件权限***

chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir

 

chmod u-x file1      #file1所有人去掉x权限

chmod g+w file1      #file1所有人添加w权限

chmod u-x,g+w file1     #file1所有人去掉x权,用户组组添加w权限

chmod ugo-r file2     #file2的所有人、用户组、其他人去掉r权限

chmod ug+x,o-r file3   #file3所有人、用户组添加x权限,其他人去掉r权限

技术分享

***数字方式修改该文件权限***

linux中

r=4

w=2

x=1

文件权限数字表示方式

rw-|r--|r--

 u   g   o

u=rw-=4+2+0=6

g=r--=4+0+0=4

o=r--=4+0+0=4

所以文件权限rw-r--r--表示为644

 

*chmod 修改后权限值 file

 chmod   777  file

 

*数字权限1~7含义

7=rwx

6=rw-

5=r-x

4=r--

3=-wx

2=-w-

1=--x

0=---

 

###系统默认权限的设定###

 

从系统存在角度来说,开放权力越,系统存在意义越高

从系统安全角度来说,开放权力越,系统安全性越高

所以系统设定新建文件或目录会去掉一些权限

设定方式

umask #查看系统保留权限(默认为022)

umask 077 #修改该系统保留权限为077,此设定为临时设定,只当前shell中生效

 

***永久设定方式***

 

*vim /etc/bashrc ##shell

 70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

 71        umask 002   #普通用户umask

 72     else

 73        umask 077      #超级用户umask                                                                      

 74     fi

 

vim /etc/profile ##系统

 59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

 60     umask 002   #普通用户umask

 61 else

 62     umask 077       #超级用户umask   (!修改后权限为666-unmask,即600)                                                                                      

 63 fi

 

以上两个文件umask设定值必须保持一致

source /etc/bashrc

source /etc/profile

让设定立即生效

技术分享

 

 

####5.特殊权限####

1.suid ##冒险位

之针对二进制可执行文件,(例如 .sh)

文件内记录的程序产生的进程的所有人为文件所有人,和进程发起人身份无关

(任何人都以文件所有人身份执行该程序)

 设定方式:

chmod u+s file

suid=4

chmod 4xxx file

 

2.sgid #强制位

对文件:只针对二进制可执行文件(.sh  .bin)

    任何人运行二进制文件,程序时程序产生的进程的所有组都是文件的所有组,和程序发起人组的身份无关

    (任何人执行文件时都以文件所在组的的身份执行该程序)

 

对目录:当目录有sgid权限后,目录中新建的所有文件的所有组, 都自动归属到目录的所有组之中,和文件建立者所在的组无关

    (任何人在目录中创建文件,该文件的所在组都为目录的所在组)

 设定方式:

 

chmod g+s file|dir

sgid=2

chmod 2xxx file|dir

 技术分享

技术分享

技术分享

 

 

技术分享

 

3.sticky ##粘制位

t权限:

只针对与目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除

 

设定方式:

chmod o+t direcotry

chmod 1777 direcotry

1代表t

 技术分享

 

第六章笔记 文件权限 所有人/组管理