Linux文件权限与目录配置

一、使用者与群组

  1. 文件拥有者(User)

  2. 群组概念(Group)

  3. 其他人概念(Other)

  4. Linux 用户身份与群组记录文件

    root 相关信息记录在**/etc/passwd**

    个人密码记录在**/etc/shadow**

    所有的组名记录在**/etc/group**

二、Linux 文件权限概念

1、Linux文件属性

su -  	#切换身份root
ls 		#查看文件指令

ls 是list的意思,重点在显示文件的文件名与相关属性。而选项**-al**则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为 . 的文件)。

[txj@localhost ~]$ ls -al

drwx------. 16 txj  txj  4096 3月  28 15:06 .
drwxr-xr-x.  3 root root   17 3月   8 11:00 ..

  1. 第一栏代表这个文件的类型与权限**(permission)**

    第一个字符代表这个文件是 目录、文件或链接文件等等 :

    1. 当为[ d ]则是目录,例如上表档名为.config的那一行;

    2. 当为[ - ]则是文件,例如上表档名为initial-setup-ks.cfg那一行;

    3. 若是[ l ]则表示为连结档(link file);

    4. 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

    5. 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

    以三个为一组,且均为rwx 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

  2. 第二栏表示有多少档名连结到此节点

  3. 第三栏表示这个文件目录的拥有者账号

  4. 第四栏表示这个文件的所属群组

  5. 第五栏为这个文件的容量大小,默认单位为 bytes

  6. 第六栏为这个文件的建档日期或者是最近的修改日期:

    修改系统配置文件 /etc/locale.conf

  7. 第七栏为这个文件的档名

    如果档名之前多一个**.** ,则代表这个文件为 隐藏档 ,例如上表中的.config 那一行,该文件就是隐藏档。

    Tips:对于更详细的 ls 用法,使用 ls --help 或 man ls 或 info ls 去看看他的基础用法!

    Linux文件权限重要性
    1、系统保护功能
    2、团队开发软件或数据共享功能
    3、未将权限设定妥当的危害

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

修改权限指令:
chgrp :改变文件所属群组
chgrp [-R] dirname/filename ...

chown :改变文件拥有者
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录

chmod :改变文件的权限, SUID, SGID, SBIT 等等的特性

如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!

复制文件:

cp 来源文件 目标文件

Linux 文件的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的 read/write/execute 权限,先复习一下刚刚上面提到的数据:文件的权限字符为:-rwxrwxrwx, 这九个权限是三个三个一组的!

数字类型改变文件权限
r:4
w:2
x:1

chmod [-R] xyz 文件或目录

符号类型改变文件权限
chmod a+x filename

3、目录与文件权限意义

  1. 权限对文件的重要性

    文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。

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

  2. 权限对目录的重要性

    r (read contents in directory)
    表示具有读取目录结构列表的权限,所以当你具有读取®一个目录的权限时,表示你可以查询该目录下的文件名数据。

    w (modify contents of directory)
    这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:

    建立新的文件与目录;
    删除已经存在的文件与目录(不论该文件的权限为何!)
    将已存在的文件或目录进行更名;
    搬移该目录内的文件、目录位置。

    ** x (access directory)**:目录的 x 代表的是用户能否进入该目录成为工作目录

建立目录可用 mkdir(make directory),建立空文件可用 touch来处理

4、Linux文件种类与拓展名

文件种类:
纯文本档(ASCII)
二进制文件(binary)
数据格式文件(data)

文件拓展名:
在 Windows 底下, 能被执行的文件扩展名通常是 .com .exe .bat 等等,而在 Linux 底下,只要你的权限当中具有 x 的话,例如[ -rwxr-xr-x ] 即代表这个文件具有可以被执行的能力喔!

三、Linux目录配置

1、Linux目录配置依据-FHS

目录 放置文件内容
/var 与系统运作过程有关
/home 系统默认的用户家目录
/root 系统管理员(root)的家目录
/bin 系统有很多放置执行文件的目录,但/bin 比较特殊
/boot 这个目录主要在放置开机会使用到的文件,包括 Linux 核心文件以及开机选单与开机所需配置文件等
/dev 在 Linux 系统上,任何装置与接口设备都是以文件的型态存在于这个目录当中的。
/etc 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等。
/lib 系统的函式库非常的多,而/lib 放置的则是在开机时会用到的函式库, 以及在/bin 或/sbin 底下的指令会呼叫的函式库而已。
/media /media 底下放置的就是可移除的装置啦!包括软盘、光盘、DVD 等等装置都暂时挂载于此
/mnt 如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。
/opt 第三方协力软件放置的目录。
/sbin 放在/sbin 底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。
/tmp 这是让一般用户或者是正在执行的程序暂时放置文件的地方。
/usr 与软件安装/执行有关

2、目录树

目录树**(directory tree)**

目录树的启始点为根目录 (/, root);

每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。

每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的

3、绝对路径与相对路径

绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;

相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 …/…/home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法

. :代表当前的目录,也可以使用 ./ 来表示;

… :代表上一层目录,也可以 …/ 来代表。

 uname -r # 查看核心版本
 uname -m # 查看操作系统的位版本