redhat7 文件的权限-笔记

文件权限

在linux中一切都是文件,可是每一个文件的类型不尽相同,linux系统使用不一样的字符来加以区分,常见的字符以下:linux

字符 含义
- 普通文件
d 目录文件
l 连接文件
b 块设备文件
c 字符设备文件
p 管道文件

每一个文件都有全部者和全部组,而且有各自的权限,读(r)写(w)执行(x),对于文件和目录rwx含义是不用的ide

  • 文件:
    r 读取文件内容的权限
    w 修改文件内容的权限
    x 执行文件内容的权限
  • 目录:
    r 查看目录下文件的权限
    w 穿件、删除、修改目录下文件的权限
    r 进入目录的权限

示例以下:code

lrwxrwxrwx.   1 root root    7 Feb  7 19:53 bin -> usr/bin
dr-xr-xr-x.   3 root root 4096 Feb  7 12:08 boot

文件的特殊权限

SUID
SUID是一种对二进制程序进行设置的特殊权限,能够上二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
命令是chmod u+s 文件名,将全部者的权限由rwx变成rws,其中x变成s表示拥有了SUID权限,若是本来全部者的权限是rw-就会变成rwS,其中-会变成大写的S
例如passwd命令:继承

[root@localhost /]# ll /bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jan 30  2014 /bin/passwd

SGID
SGID主要实现两种功能:it

  • 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
  • 在某个目录中建立的文件自动继承改目录的用户组
    命令是chmod g+s 文件名,将全部组的权限由rwx变成rws,其中x变成s表示拥有了SGID权限,若是本来全部组的权限是rw-就会变成rwS,其中-会变成大写的S
    示例:
    建立一个目录test,属主和属组是test,将目录的权限设置为777,其余用户均可以在test目录下建立本身的文件,属主和属组都是用户本身
    设置SGID后,其余用户在test目录下建立的文件,属组将会变成test
    [root@localhost /]# chmod 777 /test
    [root@localhost /]# ls -l /test
    drwxrwxrwx.   2 test test    6 Feb  7 20:36 test
    [root@localhost /]# su -l developer -c "touch /test/a.txt"
    [root@localhost /]# chmod g+s /test
    [root@localhost /]# ls -l /test
    drwxrwsrwx.   2 test test    6 Feb  7 20:36 test
    [root@localhost /]# su -l developer -c "touch /test/b.txt"
    [root@localhost /]# ls -l test/
    -rw-r--r--. 1 developer developer   0 Feb  7 20:37 a.txt
    -rw-r--r--. 1 developer test 0 Feb  7 20:37 b.txt

SBIT
对一个目录设置了SBIT权限后,改目录中的文件只能被其全部者执行删除操做,其余用户没有删除权限。
命令是 chmod o+t 目录名 ,文件的其余人权限部分的x执行权限会被替换成t或者T,本来有x执行权限则会写成r,本来没有x执行权限则会被写成T。
例如系统中的/tmp目录,全部用户均可以在/tmp目录下建立文件,可是不能删除其余用户建立的文件。table

相关文章
相关标签/搜索