Linux文件权限

作者: honehou | 来源:发表于2016-10-09 12:37 被阅读0次

    Linux安全性模型

    1. Linux使用User(用户)和Group(群组)控制使用者对文件的存取权限
    2. 用户使用账号和口令登录Linux
    3. 每个文件都有owner(所有者),并且owner属于某个Group
    4. 每个程序都有owner和Group

    用户

    1. 每个用户都有一个唯一的User ID
    2. User的信息存储在/etc/passwd
      1)存储用户名用户名和home目录等信息
      2)密码存储在/etc/shadow
    3. 每个User都有一个home目录
    4. User未经授权将禁止读写或执行其他User的文件
    5. root用户解读
      1)它是超级管理员账号,拥有至高无上的权限
      2)一般不要随意使用root登录操作系统

    用户群组

    1. 每个User都属于一个Group,具有唯一的标识符gid
    2. Group信息存储于/etc/group
      1)保存gid、成员等信息
      2)密码存储在/etc/gshadow
    3. 系统会为每个User关联一个和User同名的Group
      1)每个User至少存在于自己同名的Group中
      2)User也可以加入其他的Group
    4. 在同一个Group中的成员可以共享其他成员的文件

    目录和文件的权限意义

    Linux系统中的每个文件都有三种权限,分别是:读(read)、写(write)、执行(execute)。

    1. 权限对文件的作用
      r(read):读取文件内容,如读取文本的文字内容等
      w(write):可以编辑、新增、修改文件的内容,但不含删除该文件
      x(execute):具有被系统执行的权限。注意:在Linux中,文件是否能否被执行是由文件是否具有x权限决定的,与文件名的扩展名无关。
    2. 权限的目录的作用
      r(read contents in directory):具有读取目录结构列表的权限,与用户能否进入该目录无关。
      w(modify contents of directory):具有更改该目录结构列表的权限,包括新建文件或目录、删除文件和目录(不论该文件权限如何)、对文件或目录进行重命名、转移文件或目录位置。
      x(execute directory):具有进入该目录的权限,使该目录成为工作目录,即目前所在的目录。如果没有x权限,即使有r权限,也无法切换到该目录执行该目录下的命令。
    3. 总结
      对文件来说,最高权限是x
      对目录来说,最高权限是w

    权限的设定

    1. 核心原则
      在最小权限的情况下,能够实现要求即可!
    2. 文件属性
      使用ls -l来查看文件的属性,如下:
    -rw-r--r--. 1 root root 17 Sep 15 14:55 test.txt
    

    对于第一列的-rw-r--r--.(即文件权限,没有相应的权限用-代替)解释如下:

    文件属性说明
    第二列的数字1代表有多少文件名连接到此节点(i-node)。每个文件都将它的权限和属性记录到文件系统的 inode 中,不过文件名却是存放在目录文件中的。因此会有多个文件名连接到一个 inode 的情况,这就是硬链接,而该列就是指的硬链接数。
    第三列代表文件/目录的所有者
    第四列代表文件/目录的所属组
    第五列代表文件的大小
    之后分别是文件的修改时间、文件名
    1. 改变文件权限和属性
      1)改变文件所有者:chown(change owner)
    [root@www ~]# chown [-R] 账号名称 文件名/目录名
    [root@www ~]# chown [-R] 账号名称:组名 文件名/目录名
    —R:进行递归,可修改子目录下的文件
    

    2)改变所属用户组:chgrp(change group)

    [root@www ~]# chgrp [-R] 文件名/目录名
    —R:进行递归,可修改子目录下的文件
    

    3)改变文件权限:chmod(change mode)

    [root@www ~]# chmod [-R] mode 文件名/目录名
    —R:进行递归,可修改子目录下的文件
    

    Linux的基本权限有9个,即owner、group、others三种身份各有自己的r/w/x权限,三个为一组。各权限对应的数字是:r—>4,w—>2,x—>1.
    每种身份(owner、group、others)的三个权限(r/w/x)分数是累加的,如-rw-r–r–转换数字是:

    owner=rw-=4+2+0=6   group=r–=4+0+0=4  others=r–=4+0+0=4
    

    所以该文件的权限数字是644

    修改test.txt的权限为777
    [root@www ~]# chmod 777 test.txt
    

    参考教程:
    http://www.jikexueyuan.com/course/565.html
    http://www.imooc.com/view/481
    如有错漏,欢迎指出

    相关文章

      网友评论

        本文标题:Linux文件权限

        本文链接:https://www.haomeiwen.com/subject/bqypyttx.html