zoukankan      html  css  js  c++  java
  • 鸟哥的linux私房菜——第6章 Linux的文件权限与目录配置

    1. Linux用户身份与用户组记录的文件(账号、密码、用户组信息)

    • /etc/passwd:账户相关信息
    • /etc/shadow:个人密码
    • /etc/group:组名信息

    2. 显示Linux文件属性:ls -al

    (1)第一列代表文件的类型与权限(10个字符)

    • 第一个字符代表文件类型:d代表目录、—代表文件、l表示连接文件、b表示设备文件里可供存储的接口设备、c表示设备文件里的串行端口设备(如键盘、鼠标等一次性读取设备)
    • 后九个字符,每3个为一组,均为 r(可读)、w(可写)、x(可执行)三个字符参数的组合,这三个参数的位置固定,没有相应权限则标为“—”
    • 三组权限的对应对象分别为“文件所有者”、“同用户组”和“其他非本用户组”

    注:由于文件和目录所记录的数据内容不同,二者的权限意义不同

    (2)第二列表示有多少文件名连接到此节点(i-node):每个文件都会将它的权限与属性记录到文件系统的一个i-node中,每个文件名会连接到一个i-node;该属性记录有多少不同的文件名连接到同一个i-node号码

    (3)第三列表示所有者账号

    (4)第四列表示所属用户组

    (5)第五列为文件大小

    (6)第六列为创建日期或修改日期:ls -l --full-time  //显示完整的时间格式

    (7)第七列为文件名:以'.'开头的为隐藏文件

    3. 改变文件属性与权限

    (1)chgrp:改变所属用户组(组名必须在/etc/group中存在

    用法:chgrp [-R] 目录名/文件名  // -R 表示进行递归的持续更改,即同时改变子目录下的所有文件和目录

    (2)chown:改变文件所有者(用户名必须在/etc/passwd中有记录

    用法:chown [-R] 账号名称[:组名] 文件/目录  //可以同时修改组名

    示例:当使用cp命令复制时,会复制执行者的属性与权限,此时需要修改所有者和用户组,使得目标用户可以修改

    (3)chmod:改变文件权限

    • 使用数字修改权限:r—4、w—2、x—1

       示例:chmod 777 .bashrc  // 7 = 4 + 2 + 1 = rwx

    • 符号类型改变权限:u—user、g—group、o—others、a—all

       示例:chmod u=rwx,go=rx .bashrc  //中间权限设置是连在一起的,无空格

    4. 目录与文件的权限意义

    文件是存放实际数据的所在,目录的主要内容是记录文件列表名

    (1)文件的权限

    • r:可以读取文件
    • w:可以编辑、新增或者修改文件内容(不包括删除
    • x:该文件具有可以被系统执行的权限

    (2)目录的权限

    • r:可以读取目录结构列表,即可以利用ls命令查看目录下的文件名数据
    • w:可以更改目录结构列表,包括新建文件与目录、删除文件与目录(无论文件权限如何)、重命名文件与目录、移动文件与目录等与“文件名变动”有关的操作
    • x:代表用户可以进入该目录称为工作目录

    注:要开放目录给任何人浏览,至少需要给予r和x权限,否则他人无法进入目录读取文件;

      仅有r的情况下,用户仅能读取文件名列表,但是不能获取详细信息

    5. Linux文件种类与扩展名(任何设备都是文件

    (1)文件种类(''):纯文本文件、二进制文件、数据格式文件

    (2)目录('d'):第一个属性为d

    (3)连接文件('l'):类似Windows的快捷方式

    (4)设备与设备文件(device):与系统外设及存储相关的文件,一般位于/dev目录

    • 块设备文件:第一个属性为b,提供系统随机访问的接口设备,如硬盘、软盘等,可以随机地在硬盘的不同块进行读写
    • 字符设备文件:第一个属性为c,串行端口的接口设备,如键盘、鼠标等;特征为“一次性读取”,不能够截断输出,如不能让鼠标直接“跳到”另一界面,而是“滑动”到目标位置

    (5)套接字(sockets):第一个属性为s,数据接口文件,通常用于网络数据连接,位于/var/run目录

    (6)管道(FIFO,pipe):第一个属性为p,解决多个程序同时访问一个文件所造成的错误问题,first-in-first-out(FIFO)

    (7)文件扩展名:文件扩展名仅有指示说明的意义,具体是否可执行由x属性决定

    • *.sh:脚本或批处理文件(scripts)
    • *Z、*.tar、*.tar.gz、*.zip、*.tgz:经过打包的压缩文件
    • *.html、*.php:网页相关文件

    6. Linux目录配置

     (1)目录配置标准:Filesystem Hierarchy Standard,FHS

    目录的四种交互形态

    • 可分享的:可以分享给其他主机系统挂载使用的目录
    • 不可分享的:自身机器上运行的设备文件或是与程序有关的socket文件
    • 不变的:不经常变动的数据,如函数库、文件说明文件、系统管理员所管理的主机服务配置文件
    • 可变动的:经常改变的数据,如登录文件、新闻组等

    (2)FHS针对目录架构对下的三层目录进行了定义:

    /(root,根目录):与开机、还原、系统修复等操作有关(最重要);FHS建议标准:根目录所在分区应越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较好,根目录所在的文件系统也较不容易发生问题。

    根目录的子目录说明

    注:开机过程中仅有根目录会被挂载,其他分区是在开机完成之后才会持续进行挂载的行为。因此,根目录下与开机过程有关的目录就不能够放在与根目录不同的分区(不能与根目录分开

    • /etc:配置文件
    • /bin:重要执行文件
    • /dev:所需要的设备文件
    • /lib:执行文件所需的函数库和内核所需的模块(/lib/modules
    • /sbin:重要的系统执行文件

    /usr(UNIX操作系统软件资源,UNIX Software Resource的缩写):可分享,不可变动;系统默认的软件安装目录,类似于Windows的"C:Windows"和"C:Program files"

    /var:针对系统运行过程中常态性变动的文件,包括缓存、登录文件以及某些软件运行产生的文件等

    (3)目录树

    • 目录树的起始点为根目录 /
    • 每个目录不仅可以使用本地端的文件系统,也可以使用网络上的文件系统。例如,可以利用Network File System(NFS)服务器挂载某特定目录
    • 每个文件在此目录树中的文件名(完整路径)都是独一无二

    目录树架构示意图

    (4)路径

    • 绝对路径:以根目录 / 开头的文件或目录名称,如/home/zh/.bashrc
    • 相对路径:相对于目前路径的文件名写法,如 ./home/zh 或者 ../home/zh

    两个特殊的相对目录:

    •  .. 代表了当前的目录,也可以使用 ./ 来表示;常用 ./command 执行当前目录文件
    • .... 代表了上一层目录,也可以使用 ../ 来表示 ;常用 cd .. 返回上一层目录

     注:绝对路径的正确度比较好,但是书写比较麻烦(如切换路径时);写shell script脚本对系统进行管理时,务必使用绝对路径的写法保证正确性

  • 相关阅读:
    将maven项目托管到github
    HDOJ_1215_七夕节
    HDOJ_1108_最小公倍数
    HDOJ_1061_Rightmost Digit
    HDON_1021_Fibonacci Again
    HDOJ_1008_Elevator
    HDOJ_1235_统计同成绩学生人数
    HDOJ_2006_求奇数的乘积
    HDOJ_1201_18岁生日
    HDOJ_1019_大二写_Least Common Multiple
  • 原文地址:https://www.cnblogs.com/hg-love-dfc/p/10293219.html
Copyright © 2011-2022 走看看