Linux的档案权限与目录管理
使用者与群组
- 档案拥有者
- 群组
- 其他人
Linux文件属性
第一栏
代表这个档案的类型与权限
第一个字符代表这个档案的类型:
d:目录
-:档案
|:链接档(link file)
b:可随机存取装置
c:一次性读取装置
s:资料接口文件(socket)
p:数据输送文件(FIFO,pipe)
后每3个为一组
第一组:档案拥有者权限
第二组:群组权限
第三组:其他人权限
第二栏
代表有多少档名链接到此节点(i-node)
第三栏
代表这个档案的拥有者账号
第四栏
代表档案所属群组
第五栏
这个档案的大小,默认单位为bytes
第六栏
这个档案的创建日期或者是最近的修改日期
第七栏
这个档案的档名
改变文件的属性与权限
chgrp:改变所属群组
chgrp [-R] dirname/filename ...
-R:递归改变
chown:改变档案拥有者
chown [-R] 账号名称 档案或目录
chown [-R] 账号名称:组名 档案或目录
-R:递归改变
chmod:改变权限
chmod [-R] xyz 档案或目录
-R:递归变更
数字类型代表档案权限
r:4,w:2,x:1
Linux文件名限制
应避免的特殊字符:
*?<>;&![]|\'"`(){}
Linux目录配置
Linux目录配置依据-FHS
- /(root):与开机系统有关
- /usr(unix software resource):与软件安装、执行有关
- /var(variable):与系统运作过程有关
根目录的意义与内容
根目录所在分割槽应越小越好
目录 | 应放置内容 |
---|---|
/bin | /bin下放置的是在单人维护模式下还能被操作的命令。/bin下的命令可以被root和一般账号所使用,主要有:cat、chmod、chown、date、mv、mkdir、cp、bash等常用指令 |
/boot | 这个目录主要防止开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需配置文件等 |
/dev | 在Linux系统上,任何装置与接口设备都是以档案的形态存在于这个目录中 |
/etc | 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的起始档等等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,但是只有root有权利修改。比较重要的档案有:/etc/inittab、/etc/init.d/、/etc/modprobe.conf、/etc/X11/、/etc/fstab、/etc/sysconfig/等等。 |
/etc/init.d/ | 所有服务的预设启动脚本都是放在这个目录下 |
/etc/xinetd.d/ | 这就是所谓的super daemon管理的各项服务的配置文件目录 |
/etc/X11/ | 与X Window有关的各种配置文件都在这里,尤其是xorg.conf这个X Server的配置文件 |
/home | 这是系统默认的用户家目录。新增一个一般用户账号时,默认的用户家目录都会规范到这里来。~:代表目前用户的家目录。~a:代表a的家目录 |
/lib | /lib下放置的是开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库 |
/media | /media下放置的是可移除的装置。如:/media/floppy、/media/cdrom等 |
/mnt | 用来暂时挂载额外装置,与/media用途相同 |
/opt | 这个是给第三方协力软件放置的目录 |
/root | 系统管理员的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能拥有root的家目录,所以我们希望root的家目录与根目录放置在同一个分割槽中 |
/sbin | Linux有非常多指令是用来设定系统环境的,这些指令只有root才能用来设定系统,其他用户最多只能用来查询。放在/slib下的为开机过程所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些服务器软件程序,一般放置到/usr/sbin当中。至于开机自行安装的软件所产生的系统执行文件,则放置到/usr/local/sbin/当中。常见的指令包括:fdisk、fsck、ifconfig、init、mkfs等等 |
/srv | src可视为service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。 |
/tmp | 这是让一般用户或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以需要定期清理一下 |
/lost+found | 这个目录是使用标准的ext2/ext3文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下。这个目录通常会在分割槽的最顶层存在 |
/proc | 这个目录本身是一个虚拟文件系统,放置的数据都是在内存当中,所以本身不占任何硬盘空间 |
/sys | 这个目录跟/proc类似,也是一个虚拟文件系统,主要也是记录与核心相关的信息 |
不可与根目录分开的目录
- /etc:配置文件
- /bin:重要执行档
- /dev:所需要的装置档案
- /lib:执行档所需的函式库与核心所需的模块
- /sbin:重要的系统执行文件
/usr的意义与内容
/usr里面放置的数据属于可分享与不可变动的,是Unix Software Resource的缩写,类似于C:\Windows\ + C:Program files\这两个目录的综合体
目录 | 应放置档案内容 |
---|---|
/usr/X11R6 | 为X Window System重要数据所放置的目录,之所以取名为X11R6是因为最后的X版本为第11版,且该版的第6次释出之意 |
/usr/bin | 绝大部分的用户可使用的指令都放在这里,与/bin的不同之处在于与开机过程无关 |
/usr/include | c/c++等程序语言的档头(header)与包含档(include)放置处,当以tarball方式(.tar.gz的方式安装软件)安装某些数据时,会使用到里面的许多包含档 |
/usr/lib | 包含各应用软件的函式库、目标档案、以及不被一般使用者惯用的执行档或脚本 |
/usr/local | 系统管理员在本机自行安装自己下载的软件,建议安装到此目录,这样会比较方便管理 |
/usr/sbin | 非系统正常运作所需要的系统指令,最常见的就是某些网络服务软件的服务指令 |
/usr/share | 放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据,几乎都是文本文件 |
/usr/share/man | 联机帮助文件 |
/usr/share/doc | 软件杂项的文件说明 |
/usr/share/zoneinfo | 与时区有关的时区档案 |
/usr/src | 建议放置原码的目录,核心原码建议放置到/usr/src/linux目录下 |
/var的意义与内容
/usr是安装时会占用较大硬盘容量的目录,/var是在系统运作后才会渐渐占用硬盘容量的目录。/var目录主要针对常态性变动的档案,包括快取(cache)、登录档(log file)以及某些软件运作所产生的档案,包括程序档案(lock file、run file)
目录 | 应放置档案内容 |
---|---|
/var/cache | 应用程序本身运作过程中会产生的一些暂存档 |
/var/lib | 程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录 |
/var/lock | |
/var/log | 登录文件放置的目录,里面比较重要的档案:/var/log/messages、/var/log/wtmp(记录登入者的信息)等 |
/var/mail | 放置个人电子邮件信箱的目录,这个目录也被放置到/var/spool/mail目录,通常这两个目录互为链接文件 |
/var/run | 某些程序或者是服务启动后,会将他们的PID放置在这个目录下 |
/var/spool | 这个目录通常放置一些队列数据 |
目录树
- 目录树的起始点为根目录
- 每一个目录不止能使用本地端的partition的文件系统,也可以使用网络上的filesystem
- 每一个档案在此目录树中的文件名(包含完成路径)都是独一无二的
绝对路径与相对路径
- 绝对路径:由根目录开始写的文件名或目录名称
- 相对路径:相对于目前目录的文件写法
- .:代表当前的目录,也可以用./来表示
- ..:代表上一层目录,也可以用../来表示