Linux学习笔记(2)Linux 的档案属性与目录配置

来源:互联网 发布:京东上传软件 编辑:程序博客网 时间:2024/05/13 19:20

 

( 一 ) 一些命令

chgrp [-R] 组名称 dirname/filename

参数R:是递归改变的意思,一般指目录,让目录下所有的档案和目录都变成要改变的群组。

说明:改变档案所属的群组。

 

chown [-R] 档案名称:群组名称 档案名称或者目录

参数R:是递归改变的意思,一般指目录,让目录下所有的档案和目录都变成要改变的群组。

说明:改变档案或者目录的使用者和群组。

 

chmod [-R] xyz 档案或者目录

参数R:递归改变属性。

xyz说明:在Linux中r=4,w=2,x=1。比如有个档案的属性要修改为764,那么7=r(4)+w(2)+x(1),6=r(4)+w(2),4=r(4)。他的属性就是-rwxrw-r--了。

其他:也可以利用符号类型改变档案权限。

chmodu(使用者)
g(群组)
o(其他)
a(ugo)
+
-
=
r
w
x
档案或者目录名称

比如 chmod u=rwx,go=rx .bashrc和chmod a+w .bashrc

 

 

( 二 ) 使用者与群组

因为Linux是多用户同时使用的操作系统,所以就要有很强的安全措施,加入了权限user,group和others。比如说有一家三口爸爸,妈妈,儿子。如果儿子的日记相当于一个档案的话。

使用者 user   :在这里使用者就是儿子本人了。

群组   group  :爸爸妈妈可以进入儿子的房间,但不可以打开日记本,家庭成员就相当于群组了。

其它   others :儿子在外面还有个好朋友,坤仔,这个人就相当于其它的权限了。

 

( 三 ) Linux档案属性

 

 

1. 第一个就是档案的属性了。

 

第一个属性代表这个档案是目录、档案或连结文件等:
.当为[ d ]则是目录
.当为[ - ]则是档案
.若是[ l ]则表示为连结档(link file);
.若是[ b ]则表示为装置文件里面的可供储存的接口设备;
.若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。

接下来的属性中,三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(excute):
.第一组为『拥有人的权限』
.第二组为『同群组的权限』
.第三组为『其它非本群组的权限』

范例:若有一个档案的属性为『-rwxr-xr--』,简单的可由下面说明之:
[-][rwx][r-x][r--]
1   234   567 890
1 为: 代表这个文件名为目录或档案(上面为档案)
234为:拥有人的权限(上面为可读、可写、可执行)
567为:同群组使用者权限(上面为可读可执行)
890为:其它使用者权限(上面为仅可读)

2.表示此档案的连接文件的数量( Link File )。

3.表示这个档案或者目录的拥有者,图中的拥有者就是root。

4.表示这个档案或者目录的群组,图中的所属群为root。

5.表示档案的大小容量。

6.表示这个档案的建档日期或者修改的日期。

7.档案或者目录的名称。

 

另外,和权限有关的配置文件分别记录在:

/etc/passwd 和用户有关的内容。

/etc/shadow 存放密码的。

/etc/group 和群组有关系的信息。

 

( 四 ) Linux档案种类和附档名

属性的第一位就表示的档案类型。

.-表示正规档案,分为:

纯文字文件(ASCII),二进制文件(binary),数据格式文件(data)。

.d目录。

.l连接档,就相当于Windows下的快捷方式。

.-b设备装置文件中的存储档案,比如/dev/hda

.-c设备装置文件中的输入输出文件。

.-s资料接口文件 (sockets):既然被称为数据接口文件, 想当然尔,这种类型的档案通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个 socket 来进行数据的沟通了。最常在 /var/run 这个目录中看到这种档案类型了。
.-p数据输送文件 (FIFO, pipe): FIFO 也是一种特殊的档案类型,他主要的目的在解决多个程序同时存取一个档案所造成的错误问题。 FIFO 是 first-in-first-out 的缩写。

 

( 五 )FHS定义的目录结构

 

目录应放置档案内容应放置档案内容/根目录 root (/),一般建议在根目录底下只接目录,不要直接有档案在 / 底下。 根目录是开机的时候系统第一个挂载的 partition ,所以,所有开机过程会用到的档案, 应该都要放置在这个 partition 当中。举例说,/etc, /bin, /dev, /lib, /sbin 这五个次目录都应该要与根目录连在一起,不可独立成为某个 partition 呢!
/bin, /usr/bin, /usr/local/bin除了 /bin 之外,/usr/local/bin, /usr/bin 也是放置『使用者可执行的 binary file 的目录』喔!举例来说,ls, mv, rm, mkdir, rmdir, gzip, tar, cat, cp, mount 等等重要指令都放在这个目录当中。/boot这个目录主要的目的是放置 Linux 系统开机会用到的档案。开机会用到什么呢?没错~就是 Linux 的核心档案。这个目录底下文件名为 vmlinuz 的就是 Linux 的 Kernel 啦!重要的东西!而如果你的开机管理程序 (loader) 选择 grub 的话,那么这个目录内还有 /boot/grub 这个次目录呦!/dev在 Linux 系统上,任何装置与接口设备都是以档案的型态存在于这个目录当中的。 您只要透过存取这个目录底下的某个档案,就等于存取某个装置啰,主要又分为接口设备 (character device),例如键盘、鼠标等;以及储存设备 (block device), 例如硬盘、光盘等等。在此目录下的档案会多出两个属性,分别是 major device number , 与 minor device number 。我们的系统核心就是透过这两个 number 来判断装置的呢! 比要重要的档案有 /dev/null, /dev/tty[1-6], /dev/ttyS*, /dev/lp*, /dev/hd*, /dev/sd* 等等。/etc系统主要的设定文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等。一般来说,这个目录下的各档案属性是可以让一般使用者查阅的, 但是只有 root 有权力修改。并且在此目录下的档案几乎都是 ASCII 的纯文本文件哩。 不过, FHS 建议不要放置可执行文件在这个目录中喔。比较重要的档案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目录有:
• /etc/init.d/:所有服务的预设启动 script 都是放在这里的,例如要启动或者关闭 iptables 的话: /etc/init.d/iptables start /etc/init.d/iptables stop
• /etc/xinetd.d/:这就是所谓的 super daemon 管理的各项服务的设定文件目录。
• /etc/X11:与 X Window 有关的各种设定档都在这里,尤其是 xorg.conf 或 XF86Config 这两个 X Server 的设定档。
/home这是系统预设的使用者家目录 (home directory)。在你新增一个一般使用者账号时, 预设的使用者家目录都会规范到这里来。/lib, /usr/lib, /usr/local/lib系统会使用到的函式库放置的目录。 程序在运作的过程中,可能会呼叫一些额外的功能参数,那需要函式库的协助! 这些函式库就放在此处。比较重要的是 /lib/modules 这个目录内会摆放 kernel 的相关模块喔!/lost+found系统不正常产生错误时,会将一些遗失的片段放置于此目录下, 通常这个目录会自动出现在某个 partition 最顶层的目录下。/mnt /media这是软盘与光盘预设挂载点的地方;通常软盘挂在 /mnt/floppy 下,而光盘挂在 /mnt/cdrom 下,另外,目前也规划出另一个 /media 的目录呢!与 /mnt 有点类似。/opt这是给主机额外安装软件所摆放的目录。 不过,以前的 Linux 系统中,我们还是习惯放置在 /usr/local 目录下。/proc这个目录本身是一个『虚拟档案系统』喔!他放置的数据都是在内存当中, 例如系统核心、形成信息、接口设备的状态及网络状态等等。因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间啊!/root系统管理员 (root) 的家目录。之所以放在这里, 是因为我们提过,系统第一个开机就被挂载的 partition 为 / , 而我们希望 /root 能够与 / 放在同一块 partition 上面之故。/sbin, /usr/sbin, /usr/local/sbin放置一些系统管理员才会动用到的执行指令,例如: fdisk, mke2fs, fsck, mkswap, mount 等等。与 /bin 不太一样的地方,这几个目录是给 root 等系统管理用的。但是本目录下的执行文件还是可以让一般使用者用来『察看』而不能设定!/srv一些服务启动之后,这些服务所需要取用的数据目录。举例来说,WWW 服务器需要的网页资料就可以放置在 /srv/www 。/tmp这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以您需要定期的清理一下。当然,重要数据不可放置在此目录啊!/usr由 FHS 规范的第二层内容,在 /usr 此目录下,包含系统的主要程序、 图形接口所需要的档案、额外的函式库、本机端所自行安装的软件,以及共享的目录与文件等等, 都可以在这个目录当中发现。事实上,他有点像是 Windows 操作系统当中的『Program files』与 『WinNT』这两个目录的结合!在此目录下的重要次目录有:
• /usr/bin, /usr/sbin:一般身份使用者与系统管理员可执行的档案放置目录;
• /usr/include:c/c++等程序语言的档头 (header) 与包含档(include)放置处, 当我们以 tarball 方式 (*.tar.gz 的方式安装软件) 安装某些数据时,会使用到里头的许多包含档喔!;
• /usr/lib:各应用软件的函式库档案放置目录;
• /usr/local:本机端自行安装的软件预设放置的目录。目前也适用于 /opt 目录。 在你安装完了 Linux 之后,基本上所有的配备你都有了,但是软件总是可以升级的, 例如你要升级你的 proxy 服务,则通常软件预设的安装地方就是在 /usr/local (local 是『当地』的意思),同时,安装完毕之后所得到的执行文件,为了与系统原先的执行文件有分别, 因此升
级后的执行档通常摆在 /usr/local/bin 这个地方。给个建议啦, 通常鸟哥都会将后来才安装上去的软件放置在这里,因为便于管理呦;
• /usr/share:共享文件放置的目录,例如底下两个目录:
• /usr/share/doc:放置一些系统说明文件的地方,例如你安装了 grub 了,那么在该目录底下找一找,就可以查到 lilo 的说明文件了!很是便利!
• /usr/share/man:manpage 的文件档案目录;那是什么?呵呵! 就是你使用 man 的时候,会去查询的路径呀!例如你使用 man ls 这个指令时,就会查出 /usr/share/man/man1/ls.1.gz 这个说明档的内容啰!
• /usr/src:Linux 系统相关的程序代码放置目录,例如/usr/src/linux 为核心原始码!
• /usr/X11R6:系统内的 X Window System 所需的执行档几乎都放在这!
/var这个目录也很重要,也是 FHS 规范的第二层目录内容。他主要放置的是针对系统执行过程中, 常态性变动的档案放置的目录。举例来说,例如快取档案 (cache) 或者是随时变更的登录档 (log file) 都是放在这个目录中的。此外,某些软件执行过程中会写入的数据库档案, 例如 MySQL 数据库,也都写入在这个目录中!很重要吧!他底下的重要目录有:
• /var/cache:程序档案在运作过程当中的一些暂存盘;
• /var/lib:程序本身执行的过程中,需要使用到的数据文件放置的目录, 举例来说, locate 这个数据库与 MySQL 及 rpm 等数据库系统,都写在这个目录内。
• /var/log:登录文件放置的目录。很重要啊!例如 /var/log/messages 就是总管所有登录档的一个档案!
• /var/lock:某些装置具有一次性写入的特性,例如 tab (磁带机), 此时,为了担心被其它人干扰而破坏正在运作的动作,因此,会将该装置 lock (锁住)起来, 以确定该装置只能被单一个程序所使用啊!
• /var/run:某些程序或者是服务启动后,会将他们的 PID 放置在这个目录下喔!
• /var/spool:是一些队列数据存放的地方。举例来说,主机收到电子邮件后, 就会放置到 /var/spool/mail 当中,若信件暂时发不出去,就会放置到 /var/spool/mqueue 目录下, 使用者工作排程 (cron) 则是放置在 /var/spool/cron 当中! 需要特别注意的目录