一. Linux文件权限与目录配置
- 使用者与群组
- 文件拥有者-可以设定文件权限
- Linux文件权限概念
- ls -al: ls显示文件的文件名与相关属性,-al表示列出所有的文件详细的权限和权限
第一个字符代表这个文件是『目录、文件或链接文件等等』:
当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
当为[ - ]则是文件,例如上表档名为『install.log』那一行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。 - 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
第一组为『文件拥有者的权限』,以『install.log』那个文件为例, 该文件的拥有者可以读写,但不可执行;
第二组为『同群组的权限』;
第三组为『其他非本群组的权限』。
- 档名之前多一个『 . 』,则代表这个文件为『隐藏档』,例如上表中的.gconf那一行,该文件就是隐藏档
- chgrp :改变文件所属群组
- chown :改变文件拥有者
- chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
- 可以使用数字来代表各个权限,各权限的分数对照表如下:r:4 , w:2 , x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
- 设定Linux底下的文件名时, 最好可以避免一些特殊字符比较好!例如底下这些:* ? > < ; & ! [ ] | ‘ " ` ( ) { }
- ls -al: ls显示文件的文件名与相关属性,-al表示列出所有的文件详细的权限和权限
- Linux目录配置
FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:- / (root, 根目录):与开机系统有关;
- /usr (unix software resource):与软件安装/执行有关;
- /var (variable):与系统运作过程有关。
- /etc:配置文件
- /bin:重要执行档
- /dev:所需要的装置文件
- /lib:执行档所需的函式库与核心所需的模块
- /sbin:重要的系统执行文件
注:这五个目录千万不可与根目录分开在不同的分割槽 - 两个特殊的目录:
. :代表当前的目录,也可以使用 ./ 来表示;
.. :代表上一层目录,也可以 ../ 来代表。 - 有五个目录不可与根目录放在不同的partition,分别为/etc, /bin, /lib, /dev, /sbin五个。
二. Linux文件与目录管理
- 目录与路径
几个常见的处理目录的命令吧:- cd:变换目录
- pwd:显示目前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
不同身份使用者默认的PATH不同,默认能够随意运行的命令也不同(如root与vbird);
PATH是可以修改的,所以一般使用者还是可以透过修改PATH来运行某些位於/sbin或/usr/sbin下的命令来查询;
使用绝对路径或相对路径直接指定某个命令的档名来运行,会比搜寻PATH来的正确;
命令应该要放置到正确的目录下,运行才会比较方便;
本目录(.)最好不要放到PATH当中。
- 文件与目录管理
- 复制、删除与移动: cp, rm, mv
- 文件内容查阅
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
- od 以二进位的方式读取文件内容!
- 非纯文字档: od
- 修改文件时间或建置新档: touch
- 将某个文件日期修订为目前 (mtime 与 atime)
4.文件与目录的默认权限与隐藏权限 - 文件默认权限:umask
- 文件隐藏属性:chattr (配置文件隐藏属性) lsattr (显示文件隐藏属性)
- 文件特殊权限: SUID, SGID, SBIT
- Set UID
/etc/shadow 就不能让 vbird 这个一般帐户去存取的,为什么 vbird 还能够修改这个文件内的密码呢? 这就是 SUID 的功能啦 - vbird 对於 /usr/bin/passwd 这个程序来说是具有 x 权限的,表示 vbird 能运行 passwd;
- passwd 的拥有者是 root 这个帐号;
- vbird 运行 passwd 的过程中,会『暂时』获得 root 的权限;
- Set GID
使用者若对於此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
用途:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同。
/etc/shadow 就可以被 vbird 所运行的 passwd 所修改。
- Sticky Bit
当使用者对於此目录具有 w, x 权限,亦即具有写入的权限时;
当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件
- 观察文件类型:file
- 命令与文件的搜寻
- 命令档名的搜寻:which (寻找『运行档』)
- 文件档名的搜寻:whereis (寻找特定文件),locate
- updatedb:根据 /etc/updatedb.conf 的配置去搜寻系统硬盘内的档名,并升级 /var/lib/mlocate 内的数据库文件;
- locate:依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字档名。
三.Linux磁盘与文件系统管理
- 磁盘与目录的容量
- df:列出文件系统的整体磁盘使用量;
- du:评估文件系统的磁盘使用量(常用在推估目录所占容量)
- 磁盘的分割、格式化、检验与挂载
- 磁盘分区: fdisk
- 磁盘检验: fsck, badblocks
- 磁盘参数修订:mknod,e2label,tune2fs,hdparm
4.配置启动挂载: - 启动挂载 /etc/fstab 及 /etc/mtab
- 系统挂载的一些限制:
根目录 / 是必须挂载的﹐而且一定要先于其它 mount point 被挂载进来。
其它 mount point 必须为已创建的目录﹐可任意指定﹐但一定要遵守必须的系统目录架构原则
所有 mount point 在同一时间之内﹐只能挂载一次。
所有 partition 在同一时间之内﹐只能挂载一次。
如若进行卸除﹐您必须先将工作目录移到 mount point(及其子目录) 之外。
- 内存置换空间(swap)之建置:
- 使用实体分割槽建置swap
四.文件的压缩与打包
- Linux 系统常见的压缩命令
- *.Z compress 程序压缩的文件;被 compress 压缩的原始文件会不见,而压缩文件会被创建起来, 而且扩展名会是 *.Z
- *.gz gzip 程序压缩的文件;
- *.bz2 bzip2 程序压缩的文件;
- *.tar tar 程序打包的数据,并没有压缩过;
- *.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
- *.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
- 打包命令: tar
- 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
- 查 询:tar -jtv -f filename.tar.bz2
- 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
拿掉了根目录,假设你将备份数据在 /tmp 解开,那么解压缩的档名就会变成『/tmp/etc/xxx』。 但『如果没有拿掉根目录,解压缩后的档名就会 是绝对路径, 亦即解压缩后的数据一定会被放置到 /etc/xxx 去!』如此一来,你的原本的 /etc/ 底下的数据, 就会被备份数据所覆盖过去了
- 完整备份工具
- dump,
- restore
- 光盘写入工具
- mkisofs:创建映像档
- cdrecord:光盘烧录工具
- 其他常见的压缩与备份工具
- dd
- cpio