UNIX/LINUX文件权限安全分析


在终端输入: ls -l xxx.xxx (xxx.xxx是文件名),那么就会出现相类似的信息,主要都是这些:

    -rw-rw-r——

    一共有10位数,其中:

    最前面那个-代表的是类型

    中间那三个rw-代表的是所有者(user)

    然后那三个rw-代表的是组群(group)

    最后那三个r——代表的是其他人(other)

    然后再解释一下后面那9位数:

    r表示文件可以被读(read)

    w表示文件可以被写(write)

    x表示文件可以被执行(如果它是程序的话)

    -表示相应的权限还没有被授予

    现在该说说修改文件权限了

    在终端输入:chmod o+w xxx.xxx

    表示给其他人授予写xxx.xxx这个文件的权限

    chmod go-rw xxx.xxx

    表示删除xxx.xxx中组群和其他人的读和写的权限

    其中:

    u代表所有者(user)

    g代表所有者所在的组群(group)

    o 代表其他人,但不是u和g (other)

    a 代表全部的人,也就是包括u,g和o

    r表示文件可以被读(read)

    w表示文件可以被写(write)

    x表示文件可以被执行(如果它是程序的话)

    其中:rwx也可以用数字来代替

    r——4

    w——2

    x——1

    -——0

    当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:

    -rw——(600)只有所有者才有读和写的权限

    -rw-r——r—— (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限-rwx—— (700) 只有所有者才有读,写,执行的权限-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限-rwx——x——x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限

    -rw-rw-rw-(666)每个人都有读写的权限

    -rwxrwxrwx(777)每个人都有读写和执行的权限

    来源:Magicbreaker的专栏

    使用ls -l命令,如下列:

    total 74434

    -rwxrwxr-x 2 user dba 39921 1月16 12:50 file1

    drwxrwxr-x 2 user dba 4096 1月16 15:29 folder

    total 74434表示该目录中所有文件所占的空间

    2表示该文件硬链接的数目

    39921 表示该文件的长度,用字节表示,不是K字节-rwxrwxr-x 代表该文件或目录的读写执行权限,第一位表示该文件类型(7种)

    d目录l符号链接(指向另一个文件)s套接字文件b块设备文件

    c字符设备文件p命名管道文件-普通文件

    第一段 rwx 表示文件属主权限: r,w,x(执行)

    第二段 rwx 表示文件属主缺省组权限: r,w,x第三段 r-x 系统中其他用的权限: r,x

    注意:如果一文件的属性为-r——,文件属主仍可以通过重定向的方式向该文件写入

    chmod命令:分为符号模式和绝对模式两种:

    符号模式格式:

    chmod [who] operator [permission] filename

    who含义:

    u文件属主权限g同组用户权限o其他用户权限a所有用户

    operarot含义:

    +增加权限-取消权限=设定权限

    permission含义:

    r读权限w写权限x执行权限s文件属主和组set-ID

    t 粘性位 l 给文件加锁,使其他用户无法访问

    如果在一个目录上出现"t"位,就表示该目录中的文件只有其属主才可以删除,即使同组用户或赋予和属主同等权限;如果在文件上出现"t"位,就表示该脚本或程序在执行时会被放在交换区(虚存)

    例:chmod u+x filename表示属主增加写权限

    chmod u+x o-w filename 如果原来的权限是 -rw-r——rw- ,改变后为 -rwxr——r——

    绝对模式:

    chmod [mode] filename mode有3个8进制数字组成,比如chmod 777 filename

    参数R:比如chmod -R 644 /usr/*表示一次将/usr目录下的文件连同子目录的文件改变成644

    目录权限覆盖文件权限,意思如果文件可写,但是其目录不能写,那么仍然不能写此文件

    suid/guid命令:

    suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。同样的原则也适用于guid,执行相应脚本的用户将具有该文件所属用户组中用户的权限。

    设置方法:(使用ls -l |grep '^……s'查看suid权限的文件)

    chmod 4711结果rws——x——x使用4来设置suid

    chmod 6711结果rws——s——x使用4+2来设置suid和guid

    chmod 2711结果rwx——s——x使用2来设置guid

    也可以使用 chmod u+s filename 来设置,如果看到是S,则表示该权限位未被设置,没有实际意义

    chown/chgrp命令:

    chown -R -h owner[:group] filename

    改变文件属主,-R表示所有目录,-h表示改变符号链接文件不影响其目标文件

    chgrp -R -h group filename用于改变文件属组

    id [user] , group [user] 显示user所属组,如不加则是查看自己

    umask命令:

    用于确定创建文件的缺省模式。可以写入自己的。profile或。bash_profile中umask是从权限中取消权限,计算的时候目录以777来计算,文件以666计算,也即umask 002 之后,目录权限为 rwxrwxr-x(775), 文件权限为 rw-rw-r——(664)

    符号链接-软链接:

    命令格式:ln [-s] source_path target_path可以是目录也可以是文件

    链接一旦创建成功,链接目录将具有777权限,但实际目录的权限未改变


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3