一、简述权限
文件系统的权限管理机制的建立,约束了用户对数据的操作。
1、对系统安全而言
管理员的操作权限非常大,足以破坏系统,权限机制将管理员与普通用户之间区分开,防止系统被随意破坏。
2、对用户而言
Linux是一个多用户的操作系统,不同用户间为了防止其他人破坏数据或访问数据,文件系统的权限管理是非常必要的。
二、文件权限说明
-
文件权限的设定对象分为三类
1、owner:文件拥有者
2、group:定义的用户组
3、other:其他人
针对不同对象设定各自的权限
-
文件权限对于文件的意义
r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x (execute):该文件可以提请内核启动为进程。
-
文件权限对于目录的意义
r (read contents in directory):
表示具有读取目录结构列表的权限,可ls 列出文件列表;
w (modify contents of directory):
表示具有对目录结构进行更改的权限
1.建立新的文件与目录;
2.删除已经存在的文件与目录(不论该文件的权限为何!)
3.将已存在的文件或目录进行更名;
4.搬移该目录内的文件、目录位置。
x (access directory):
表示具有进入该目录的权限。对目录拥有x权限十分重要,如果没有该权限,不能在目录下做任何操作,拥有rx可以使用ls -l 命令;光有w权限,没有x,不能对目录结构进行任何改动。
三、权限管理命令
chmod [OPTION]… MODE[,MODE]… FILE…
该命令分为三种执行模式
1、赋权模式:直接操作一类用户所有权限
chmod u=,g=,o=
2、授权模式:操作一类用户单一权限
chmod u[+|-],g[+|-],o[+|-]
3、八进制模式:直接三类用户权限码
chmod 741 FILE
-
权限码说明
权限:八进制:十进制
r–:100:4
-w-:010:2
–x:001:1
例如,rwxr-xr-x ->755
-
递归选项-R
-
目录X权限用法
chmod -R +X /testdir
递归的时候只对目录加x权限,不对文件加x权限(原文件已具有x权限除外)
四、文件反向掩码umask
在Linux上创建新文件的默认权限由umask来决定
-
新建目录默认权限
777-umask
-
新建文件默认权限
因为新建文件带有可执行权限是一件危险的事情,所以Linux上新建文件不允许带有x权限
666-umask,结果位如果是奇数(带有x权限)则将其权限+1
-
umask相关命令
umask:查看
umask -S:模式方式显示
umask xxx:设定
umask -p:输出可被调用
五、文件系统的特殊权限
-
普通用户运行passwd程序的问题
首先讲一下安全上下文:
任何一个可执行程序能否发起,由发起者对其是否有执行权限决定的。
程序启动为进程后,进程继承发起者的属主属组。
当进程访问文件时,应用继承而来的身份来执行操作。
如此一来,普通用户运行passwd修改自己的密码时,必然要对/etc/shadow 文件进行读写,而我们知道此文件设置的权限极为严格,只有管理员用户才可读写,普通用户运行的passwd进程身份是其他人,无法对此文件读写。而实际上我们操作时可以修改自己的密码,这是因为passwd二进制文件具有特殊文件权限。
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
-
特殊权限介绍
Linux文件系统上有三个特殊权限位,
setuid,setgid,sticky bit
权限位上代替x位置,–s–s–t
-
setuid
chmod u+s FILE chmod u-s FILE
作用于可执行二进制文件有效。
表示任何用户执行该文件发起的进程,继承文件所有者的身份,而不是发起者。
让本来没有相应权限的用户运行此类程序时,可以访问原来没有权限的资源。
-
setgid
chmod g+s FILE|DIR chmod g-s FILE|DIR
作用于可执行二进制文件时,
表示任何用户执行该文件发起的进程,继承文件所属组的身份。
作用于目录时,
表示在目录下新建文件的所属组为此目录的所属组
-
sticky bit
chmod o+t DIR chmod o-t DIR
只作用于目录
表示该目录下的文件,除管理员和目录属主外,其他用户只可以删除自己的文件。
原创文章,作者:cutemsyu,如若转载,请注明出处:http://www.178linux.com/27512