「Linux」鸟叔私房菜 第五章读书笔记

  1. 云栖社区>
  2. 博客>
  3. 正文

「Linux」鸟叔私房菜 第五章读书笔记

王__12 2018-08-18 16:49:20 浏览1719
展开阅读全文

第五章 Linux 的文件权限与目录配置

5.1 使用者与群组

  • 1.文件拥有者 User
  • 2.群组概念 Group
  • 3.其他人的概念 Others

5.2 Linux文件属性

列出当前目录下的所有文件及目录

ls -ah

5.2.1 Linux 文件属性

输出结果:

-rw-r--r-- 1 root root 2494 7月  23 21:40 weather_test.py

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

  • 当为[ d ]则是目录;
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为连结档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

2.接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表 可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

  • 第一组为『文件拥有者可具备的权限』;
  • 第二组为『加入此群组之账号的权限』;
  • 第三组为『非本人且没有加入本群组之其他账号的权限』。

3.第二栏表示有多少档名连结到此节点(i-node):
4.第三栏表示这个文件(或目录)的『拥有者账号』
5.第四栏表示这个文件的所属群组
6.第五栏为这个文件的容量大小,默认单位为bytes
7.第六栏为这个文件的建档日期或者是最近的修改日期
8.第七栏为这个文件的档名

  • 如果档名之前多一个『 . 』,则代表这个文件为『隐藏档』

5.2.2 如何改变文件属性与权限

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

1.改变所属群组, chgrp

[root@study ~]# chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
   都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@study ~]# chgrp users initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 root users 1864 May 4 18:01 initial-setup-ks.cfg [root@study ~]# chgrp testing initial-setup-ks.cfg
chgrp: invalid group: `testing' <== 发生错误讯息啰~找不到这个群组名~

注意:要被改变的组名必须要在/etc/group 文件内存在才 行,否则就会显示错误!

2.改变文件拥有者,chown

[root@study ~]# chown [-R] 账号名称 文件或目录
[root@study ~]# chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
范例:将 initial-setup-ks.cfg 的拥有者改为 bin 这个账号: [root@study ~]# chown bin initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 bin users 1864 May 4 18:01 initial-setup-ks.cfg
范例:将 initial-setup-ks.cfg 的拥有者与群组改回为 root:
[root@study ~]# chown root:root initial-setup-ks.cfg [root@study ~]# ls -l
-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg

用户必须是已经存在系统中的账 号,也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。
chown 也可以使用『chown user.group file』,亦即在拥有者与群组间加上小数
点『 . 』也行! 不过很多朋友设定账号时,喜欢在账号当中加入小数点(例如 vbird.tsai 这样的账号格式),这就会 造成系统的误判了! 所以我们比较建议使用冒号『:』来隔开拥有者与群组啦!此外,chown 也能单纯的修改所属 群组呢! 例如『chown .sshd initial-setup-ks.cfg』就是修改

3.改变权限, chmod
数字类型改变文件权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

举个栗子:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0
[root@study ~]# chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

符号类型改变文件权限 ,就可以借由 u, g, o 来代表三种身份的权限!此外, a 则代表 all 亦即全部
的身份!那么读写的权限就可以写成 r, w, x 啰

[root@study ~]# chmod u=rwx,go=rx .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格符! [root@study ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Dec 29 2013 .bashrc

5.2.3 目录与文件之权限意义

1.权限对文件的重要性

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

2.权限对目录的重要性

  • r (read contents in directory):
    表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的 文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来
  • w (modify contents of directory):
    这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底 下这些权限:

    • 建立新的文件与目录;
    • 删除已经存在的文件与目录(不论该文件的权限为何!)
    • 将已存在的文件或目录进行更名;
    • 搬移该目录内的文件、目录位置。
  • x (access directory):
    目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执 行,目录的 x 代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你 目前所在的目录啦!举例来说,当你登入 Linux 时, 你所在的家目录就是你当下的工作目录。而变换目录 的指令是『cd』(change directory)啰!
组件 内容 迭代物件 r w x
文件 详细资料 data 文件文件夹 读到文件内容 修改文件内容 执行文件内容
目录 文档名 可分类抽屉 读到档名 修改档名 进入该目录的权限(key)

5.2.4 Linux 文件种类与扩展名

5.3 Linux目录配置

5.3.1 Linux 目录配置的依据--FHS

Filesystem Hierarchy Standard (FHS)标准

5.3.2 目录树(directory tree)

ls -al /

5.3.3 绝对路径与相对路径

  • 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
  • 相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正开头不是 /就属于相对路径的写法
  • . :代表当前的目录,也可以使用 ./ 来表示;
  • .. :代表上一层目录,也可以 ../ 来代表。

网友评论

登录后评论
0/500
评论
王__12
+ 关注