Linux文件权限详解
Linux⽂件权限详解
#前⾔:我们知道,⽆论什么东西,涉及到安全性的,⽐如⽂件、⽂件夹、磁盘(就如window系统的磁盘,我们就可以通过bitlocker技术将磁盘给加密锁起来)、服务器,等都需要设置权限管理,以保证安全性,接下来让我们来探讨以下Linux的⽂件权限
1.概述
权限是操作系统⽤来限制对资源访问的机制,权限⼀般分为读、写、执⾏。
系统中的每个⽂件都拥有特定的权限、所属⽤户及所属组,通过这样的机制来限制哪些⽤户、哪些组可以对特定⽂件进⾏什么样操作。
#Linux的权限是基于UGO模型进⾏控制
1.U代表User(⽤户),G代表Group(组),O代表Other(其他)
2.每⼀个⽂件的权限基于UGO进⾏设置
3.权限三个⼀组(rwx),对应UGO分别设置
#查看权限
[root@ctos3 ~]# ls -ld test
drwxr-xr-- 2 root root 6 Mar  901:37 test
#讲解:第⼀个d是⽂件类型,后⾯9位3个为⼀组
#⽂件权限说明
linux⽂件或⽬录的权限位是由9个权限位来控制,每三位⼀组,
它们分别是⽂件属主(Owner)的读、写、执⾏,⽤户组(Group)的读、写、执⾏以及(Other)其它⽤户的读、写、执⾏
其中
r(read)读权限,可以读取⽂件内容,可以列出⽬录内容⽤数字表⽰为4
w(write)写权限,可以修改⽂件内容,可以在⽬录中创建删除⽂件⽤数字表⽰为2
x(excute)执⾏权限,可以作为命令执⾏,可以访问⽬录内容⽤数字表⽰为1
- 没有权限,⽤数字表⽰为0
2.修改⽂件所属⽤户、所属组
坐位体前屈图片#1.使⽤chown命令改变⽂件/⽬录的所属⽤户
修改格式:chown ⽤户⽂件名/⽬录名
#例⼦,将的所属⽤户从root更改为demo⽤户
[root@ctos3 ~]# ls -
最有前景的专业
-rw-r--r-- 1 root root 0 Mar  901:
[root@ctos3 ~]# chown    #更改
[root@ctos3 ~]# ls -
-rw-r--r-- 1 demo root 0 Mar  901:
#参数介绍
1.-R 参数递归的修改⽬录下的所有⽂件的所属⽤户
#例⼦:将/test⽬录下的所有⽂件和⽤户所属⽤户修改成demo
[root@ctos3 ~]# chown -R demo /test/
[root@ctos3 ~]# ls -l /test/
drwxr-xr-x 3 demo root 16 Mar  901:55 aa
2.加个;也可以快速改回所属⽤户和所属组
#2.使⽤chgrp改变⽂件/⽬录的所属组
死灵加点
命令格式:chgrp ⽤户⽂件/⽬录名
#例⼦:
[root@ctos3 ~]# chgrp  demo /test/
[root@ctos3 ~]# ls -ld /test/
drwxr-xr-x 3 demo demo 16 Mar  901:55 /test/
#注意点:⼀般都是⽤chown修改⽤户和组的了格式chown -R ⽤户.组 + ⽂件#3.使⽤chmod命令修改⽂件/⽬录的权限
命令格式:chmod +模式 +⽂件
模式为如下格式:
1.u、g、o、分别代表⽤户、组和其他
2.a可以代指ugo
3.+、-代表加⼊或删除对应权限
4.r、w、x代表三种权限
#修改例⼦:
chmod u+  #在user⽤户那⾥添加rw权限
chmod     #在group组那⾥去掉x权限
chmod go+  #在组和其他⽤户添加r权限
chmod u=  #将⽤户权限设置为rx权限
#提⽰:chmod命令也⽀持以数字⽅式修改
-r=4 (2的2次⽅)
-w=2(2的1次⽅)
-x=1 (2的0次⽅)
使⽤数字表⽰权限时,每组权限分别对应数字之和:
rw=4+2=6
rwx=4+2+1=7
r-x=4+1=5
#例⼦:
chmod   == rw-rw-r
chmod   == rwxrwxr-x
3.扩展权限
#3.1.默认权限
每⼀个终端都拥有⼀个umask属性,来确定新建⽂件、⽂件夹的默认权限
umask使⽤数字权限⽅式表⽰,如:022
⽬录的默认权限是777-umask就是755
⽂件的默认权限是:666-umask就是644
⼀般,普通⽤户的默认umask是0222,root⽤户的默认umask是0222
也就是说,对于普通⽤户来讲:
新建⽂件的权限是:666-002=664
新建⽬录的权限是:777-002=775
#例⼦:
#创建⽬录,默认权限为755
[root@ctos3 ~]# ls -ld /test1/
drwxr-xr-x 2 root root 6 Mar  902:09 /test1/
#创建⽂件,默认权限为644
[root@ctos3 ~]#
[root@ctos3 ~]# ls -
-
rw-r--r-- 1 root root 0 Mar 
#可以使⽤umask查看设置的umask值
[root@ctos3 ~]# umask
0022
#如果想要创建的⽂件权限多少,可以⾃⼰定义
[root@ctos3 ~]# umask 035  #设置默认umask为035,创建出来的⽂件默认权限为642
[root@ctos3 ~]# touch fil035
[root@ctos3 ~]# ls -l fil035
-rw-r---w- 1 root root 0 Mar  902:25 fil035
#注意为什么是642,⽽不是631呢,因为是奇数的话就会加1,从之前默认权限6就会加到7,⽤7-3就是4,7-5就是2,0为偶数所以还是6,所以为642 [root@ctos3 ~]# umask 022  #设置022,创建⽂件的权限为644
[root@ctos3 ~]# touch fil022
暑假安全教育讲话稿
[root@ctos3 ~]# ls -l fil022
-rw-r--r-- 1 root root 0 Mar  902:25 fil022
#3.2特殊权限
linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限
suid      ⽤户对应的权限位
sgid      ⽤户组对应的权限位
sticky    其他⽤户对应的权限位(只能是删除⾃⼰,不能删除别⼈的。。但是有个例外,就是⽂件所有者就可以删除)
与普通权限⼀样,特殊权限也可以使⽤数字⽅式表⽰
-SUID=4
-SGID-2
-Sticky=1
#设置特殊权限
#1.设置suid针对⽤户的)
命令格式:chmod  4755 file 或者  chmod u+s file
#例⼦:
[root@ctos3 ~]# which passwd
/usr/bin/passwd
[root@ctos3 ~]# ls -l `which passwd`
-rwsr-xr-x. 1 root root 27832 Jun 102014 /usr/bin/passwd
[root@ctos3 ~]# chmod #设置test⽂件的s为权限
[root@ctos3 ~]# ls -
-
rwSr--r-- 1 demo root 0 Mar  901:
#2.设置sgid(针对组的)
命令格式:chmod 2755 file  或者  chmod g+s file
#例⼦:
[root@ctos3 ~]# chmod 2755 /test
[root@ctos3 ~]# ls -ld /test
drwxr-sr-x 3 demo demo 16 Mar  901:55 /test
#3.设置sticky(可以将⾃⼰⽂件保护起来)
命令格式:chmod o+t file
#例⼦:
[root@ctos3 ~]#
[root@ctos3 ~]# chmod o+
[root@ctos3 ~]# ls -
-rw-r--r-T 1 root root 0 Mar 
#查系统中设置了suid的⽂件
[root@ctos3 ~]# find /usr/bin/ -type f -perm 4755 -exec ls -l {} \;
-rwsr-xr-x. 1 root root 32008 Apr 112018 /usr/bin/fusermount
-rwsr-xr-x. 1 root root 64240 Nov  52016 /usr/bin/chage
-rwsr-xr-x. 1 root root 78216 Nov  52016 /usr/bin/gpasswd
-rwsr-xr-x. 1 root root 41776 Nov  52016 /usr/bin/newgrp
-rwsr-xr-x. 1 root root 44320 Apr 112018 /usr/bin/mount
-rwsr-xr-x. 1 root root 32184 Apr 112018 /usr/bin/su
-
rwsr-xr-x. 1 root root 32048 Apr 112018 /usr/bin/umount
-rwsr-xr-x. 1 root root 27680 Apr 102018 /usr/bin/pkexec
-rwsr-xr-x. 1 root root 57576 Apr 102018 /usr/bin/crontab
-rwsr-xr-x. 1 root root 27832 Jun 102014 /usr/bin/passwd
怎么把照片缩小到200k#有关suid和sgid总结
1.suid是针对命令和⼆进制程序的
2.suid作⽤是让普通⽤户以root(或其他)的⽤户⾓⾊运⾏只有root(或其他)账号才能运⾏的程序或命令,或程序命令对应本来没有权限操作的⽂件等
3.sgid与suid不同的是,sgid既可以针对⽂件也可以针对⽬录设置
4.sgid是针对⽤户组权限位的
4.查看和修改⽂件属性命令lsattr,chattr
#使⽤lsattr命令显⽰⽂件属性,使⽤chattr命令修改⽂件属性
#例⼦:
root@ctos3 ~]# mkdir attribute
[root@ctos3 ~]# cd attribute/
[root@ctos3 attribute]# echo "file attribution" >
[root@ctos3 attribute]# lsattr
---------------- ./
#根据上⾯操作。使⽤lsattr查看没有赋予任何属性,下⾯就使⽤chattr来为⽂件添加属性
[root@ctos3 attribute]# chattr +
南昌航空大学专业
[root@ctos3 attribute]# lsattr
----i----------- ./
#提⽰:添加i属性到⽂件之后,即使是root⽤户也不能修改、删除⽂件,可以加a权限,但是添加了也
不能删除⽂件,知道将这两个权限删除,才能删除修改⽂件[root@ctos3 attribute]# chmod
chmod: changing permissions of ‘’: Operation not permitted
[root@ctos3 attribute]#
rm: remove regular file ‘’? y
rm: cannot remove ‘’: Operation not permitted

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。