zoukankan      html  css  js  c++  java
  • Linux 的文件权限与目录配置

    用户和用户组

    • 文件所有者 (owner)
    • 用户组概念 (group)
    • 其他人概念 (others)

    Linux文件权限概念

    1. Linux文件属性

    要了解Linux文件属性,那么有个重要的命令必须提及–Sls。以root的身份登录Linux之后,执行“ls -al”,看到下面的内容:

    drwx—— 3 root root 4096 Sep 5 10:37 .gconf
    -rw-r–r– 1 root root 42304 Sep 4 18:26 install.log

    ls 是 “list” 的意思,而参数 “-al” 则表示列出所有的文件详细的权限与属性(包含隐藏文件)。

    • 第一列代表这个文件的类型与权限

    其中有十个字符。

    第一个字符代表这个文件是“目录、文件或者链接文件等”。

    [d] 代表目录
    [-] 代表文件
    [l] 表示为连接文件(linkfile[b] 表示设备文件里面的可供存储的接口设备
    [c] 则表示设备文件里面的串行端口设备,例如键盘、鼠标。

    接下来以3个为一组,且均为“rwx”的3个参数组合。其中[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute)。这三个权限的位置不会改变,如果没有权限就会出现减号[-]。

    第一组为“文件所有者的权限”
    第二组为“同用户组的权限”
    第三组为“其他非本用户组的权限”

    • 第二列表示有多少文件名连接到此节点
    • 第三列表示这个文件(或目录)的“所有者账号”
    • 第四列表示这个文件所属用户组
    • 第五列为这个文件的容量大小,默认单位为B
    • 第六列为这个文件的创建日期或者是最近的修改日期
    • 第七列为该文件名

    如果文件名之前多一个“.”,则代表这个文件为“隐藏文件”。

    2. 如何改变文件属性与权限

    常用于用户组、所有者、各种身份的权限修改命令:

    chgrp:改变文件所属用户组
    chown:改变文件所有者
    chmod:改变文件的权限
    • 改变所属所属用户组:chgrp

    • 改变文件所有者:chown

    • 改变权限:chmod

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

    权限对文件的重要性

    • r (read): 可读取此文件的实际内容。
    • w (write):可以编辑、新增或者修改该文件的内容(但不含删除该文件)。
    • x (execute):该文件具有可以被系统执行的权限。

    权限对目录的重要性

    • r (read contents in directory):表示具有读取目录结构列表的权限。

    • w (modify contents of directory):它表示你具有更改该目录结构列表的权限:
      新建新的文件与目录;
      删除已经存在的文件与目录(不论该文件的权限为何);
      将已存在的文件或目录进行重命名;
      转移该目录内的文件、目录位置。

    • x (access directory):代表用户能否进入该目录成为工作目录,所谓的工作目录就是你目前所在的目录。

    Linux目录配置

    1. Linux目录配置标准:FHS

    规范每个特定的目录下应该要放置什么样的数据。

    根目录 (/) 的意义与内容

    • /bin 系统有很多放置执行文件的目录,但bin比较特,其下放置的是在单用户维护模式下还能够被操作的命令。bin下面的命令可以被root与一般账号所使用,主要有cat, chmod, chown, date, mv, mkdir, cp , bash 等常用命令。

    • /boot 这个目录主要放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等。

    • /dev 在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录当中的。你只要通过访问这个目录下面的某个文件,就等于访问某个设备。

    • /etc 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的起始文件等。

    • /home 这是系统默认的用户主文件夹。

    • /lib 放置的是开机时会用到的库函数,以及在/bin 或 /sbin 下面的命令会调用的函数库。

    • /opt 这个是给第三方软件放置的目录。

    • /root 系统管理员的主文件夹。

    • /sbin 为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的命令。

    • /srv 可视为service的缩写,是一些网络服务启动后,这些服务所需要取用的数据目录。

    • /tmp 这是让一般用户或者是正在执行的程序暂时放置文件的地方。

    /usr 的意义与内容

    其实usr是 UNIX Software Resource的缩写,也就是“UNIX操作系统软件资源”所放置的目录,而不是用户的数据。

    因为是所有系统默认的软件都会放置到/usr下面,因此这个目录有点类似Windows系统的“C:Windows”和“C:Program files”这两个目录的综合体。

    一般来说,/usr的子目录建议有以下所示这些:

    • /usr/bin/ 绝大部分的用户可使用命令都放在这里。

    • /usr/include/ C/C++等程序语言的头文件与包含文件放置处。

    • /usr/lib/ 包含各应用软件的函数库、目标文件,以及不被一般用户惯用的执行文件或脚本。

    • /usr/local/ 系统管理员在本机自行安装自己下载的软件(非distribution默认提供者)。

    • /usr/sbin/ 非系统正常运行所需要的系统命令。

    • /usr/share/ 放置共享文件的地方。(/man 在线帮助文件 /doc 软件杂项的文件说明 /zoneinfo 与时区有关的时区文件)

    • /usr/src/ 一般源码建议放置到这里。内核源码则建议放置到/usr/src/linux/目录下。

    /var 的意义与内容

    如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是系统运行后才会渐渐占用硬盘容量的目录。因为/var目录主要针对常态性变动的文件,包括缓存、登录文件以及某些软件运行所产生的文件,包括程序文件(lock file,run file),或者例如MySQL数据库的文件等。

    • /var/cache 应用程序本身运行过程中会产生的一些暂存文件。

    • /var/lib 程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。MySQL的数据库放置到/var/lib/mysql/,而rpm的数据库则放到/var/lib/rpm目录下。

    • /var/lock/ 某些设备或者是文件资源一次只能被一个应用程序所使用,因此就得将该设备上锁,锁文件就放在此目录。

    • /var/run/ 某些程序或者服务启动后,会将它们的PID放置在这个目录下。

    2. 目录树

    • 目录树的起始点为根目录(/,root)。
    • 每一个目录不只能使用本地端的文件系统,也可以使用网络上的文件系统。
    • 每一个文件在此目录中的文件名(包含完整路径)都是独一无二的。

    image

  • 相关阅读:
    android系统移植与驱动开发概述
    产品常用网址
    Java泛型、反射、集合、多线程
    Java常用类
    Java异常处理
    Java面向对象(二)
    Java面向对象(一)
    Java基础知识
    友链
    退役了
  • 原文地址:https://www.cnblogs.com/lucare/p/9312609.html
Copyright © 2011-2022 走看看