Linux 的文件权限

用户与用户组

linux最优秀的地方,就在于多用户、多任务环境

  • 文件所有者

    • 在多人同时使用主机的情况下,考虑每个人的隐私权及个人喜好的工作环境
  • 用户组

    • 在团队开发的时候尤其重要
    • 每个账号(用户)都可以有多个用户组的支持
  • 其他人

    • 不属于“文件所有者及所属用户组中用户”的其他用户

root用户极其特殊,拥有最高权限

Linux用户身份与用户组记录的文件

  • /etc/passwd

    • 系统上的所有账号、一般身份用户及root的相关信息
  • /etc/shadow

    • 个人密码
  • /etc/group

    • 所有的组名

Linux文件权限

对数据安全性及系统保护有重要意义

Linux文件属性

ls -al

显示当前目录下所有文件及目录的详细信息

-a 显示所有,包括隐藏文件(文件名以.开始的)

-l 显示详细信息

  • ls -al 输出7列信息

    • -rw-r—r— 1 root root 42304 Sep 4 18:26 install.log
  • 第一列表示这个文件的类型与权限(permission),共计10个字符

    • 第一个字符表示文件类型

      • -表示文件
      • d表示目录
      • l表示连接文件
    • 剩下九个每3个一组,分别为“文件所有者”“同用户组”“其他非本用户组”的权限,均含有“rwx”三个参数组合

      • r表示可读
      • w表示可写
      • x表示可执行
      • 注意:这三个权限的位置不会改变,如果没有相应权限,用-占位
  • 第二列表示有多少个文件名连接到此节点(i-node)

    • 每个文件都会将它的权限与属性记录到文件系统的i-node
  • 第三列表示这个文件或目录的“所有者账号”
  • 第四列表示这个文件的所属用户组
  • 第五列表示这个文件的大小,默认单位B
  • 第六列表示这个文件的创建日期或者最近修改日期

    • ls -l —full-time显示完整时间
  • 第七列表示该文件名

更改文件属性与权限

  • chgrp
    • 改变所属用户组
    • chgrp users filename.log 把filename.log加到users用户组
    • -R 递归更改,适合于嵌套目录
  • chown

    • 改变所有者
    • chown bin install.log
    • -R 递归更改,适合于嵌套目录
    • 可以用于同时修改所有者和用户组,用:隔开
      • 如 chown hanrd:root install.log
      • hanrd所有者,root用户组
      • 只改用户组 chown .root install.log
  • chmod

    • 改变权限
    • 数字类型

      • r-4、w-2、x-1,各个值相加
      • rwx = 7
      • chmod 740 filename
    • 符号类型

      • u-所有者
      • g-本用户组
      • o-其他非本用户组
      • a-所有上述三种身份
      • +添加权限、-除去权限、=设置权限
        • chmod u=rwx,go=rw .bashrc
        • chmod a+w .bashrc

目录与文件的权限意义

  • 文件

    • r-可以读取文件实际内容
    • w-可以编辑修改文件内容,不能删除文件
    • x-具有被执行权限,执行成功与否与文件内容有关
  • 目录

    • r-获取目录结构列表,详细信息获取不到
    • w-更改该目录结构列表的权限,与文件名变动有关

      • 新建文件或目录
      • 删除文件或目录
      • 重命名
      • 移动文件、目录位置
    • x-能否进入该目录作为工作目录

linux文件种类与扩展名

  • 普通文件

    • -表示
    • 纯文本文件 - ASCII
    • 二进制文件
    • 数据格式文件,具有特殊格式,存储数据
  • 目录

    • d表示
  • 连接文件

    • l表示

扩展名

一个文件能不能被linux执行,与它的第一列的10个属性有关,与文件名后缀一点关系没有

文件名长度限制

  • 单一文件或者目录最大容许的文件名为255个字符
  • 完整路径名、文件名最大4096个字符
  • 文件名尽量避免特殊字符