本文要点:
一、用户与用户组
二、Linux文件权限
三、Linux目录配置
四、Linux支持的文件系统
一、用户和用户组
在Linux系统当中,默认情况下,所有的系统上的账号、一般用户以及root 的相关信息, 都是记录在/etc/passwd 这个档案内;它们的密码则是记录在/etc/shadow档案内; 此外,Linux所有的组名都记录在/etc/group档案内。
二、Linux文件权限
1、Linux文件属性
图1:文件属性示意图
图2:档案的类型与权限
1、第一个属性代表这个档案是“目录、档案或者连结文件等等”:
2、第二栏表示连结占用的节点(i-node):这个跟连结档(link file)比较有关系。如果是目录的话,第二栏的这个数字与该目录下有多少目录有关(这个数字包括当前目录,上一级目录和当前目录所包含的目录所占的节点数总和);
3、第三栏表示这个档案(或目录)的拥有者;
4、第四栏表示拥有者的群组;
5、第五栏表示这个档案的容量大小,默认单位为bytes;
6、第六栏表示这个档案的建档日期或者是最近的修改日期,分别是月份、日期及时间;
7、第七栏表示这个档案的档名,如果档名之前多一个[.],则代表这个档案为隐藏文件;
2、档案权限的改变:
chgrp:改变档案所属群组;
chown:改变档案所属人;
chmod:改变档案的属性(改变文件的权限,数字类型:r:4、w:2、x:1;符号类型:u、g、o代表三种身份,a代表all,运算符+、-、=);
如果要连目录下的所有次目录或者档案同时更改档案属性的话,直接加上-R的参数。
3、目录与档案权限
档案属性的意义:
r:可读取文档实际内容,如读取文本文件的文字内容等;
W:可以编辑、新增或者是修改该档案的内容(但不含删除该档案);
X:该档案具有被系统执行的权限。
目录属性的意义:
r:表示具有读取目录结构清单的权限,当用户具有读取一个目录的权限时,使用ls这个指令就能够将目录的内容列表显示出来。
w:建立新的档案与目录;
删除已存在的档案或目录(不论该档案或目录属于谁);
将已存在的档案或目录重命名;
改变该目录内的档案、目录位置;
x:与能否进入该目录有关。
说明:如果你在某个目录不具备x权限,那么你就无法切换到该目录下,也就无法执行该目录的任何指令,即使你具有该目录的r权限。
要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限是不可随便给。
4、档案种类及扩展名
档案种类:
d:则表示目录;
-:则表示普通文件;
l:则表示为连结档(link file);
b:则表示为装置文件里面的可供储存的接口设备(块设备文件);
c:则表示为装置文件里面的串行端口设备(字符设备文件),例如键盘、鼠标;
S:则表示套接字(sockets)(var/run);
P:则表示管道(FIFO,pipe)(var/run);
注意:linux档案能不能被执行,与他的第一栏的十个属性和文件内容有关,与文件名无关。Windows下,exe,bat,com都是可执行的文件。
Linux档案扩展名:
—*.sh:批文件处理文档(scripts),因为它使用shell编写,所以后缀就编成.sh;
—*Z、*.tar、*.tar.gz、*.zip、*.tgz:经过打包的压缩档,这是因为压缩软件分别为gunzip、tar等,由不同的压缩软件,而取其相关的后缀名;
—*.html、*.php:网页相关档案,分别代表HTML语法与PHP语法的网页档案,.html的档案可使用网页浏览器来直接开启,至于.php的档案,则可以透过client端的浏览器来浏览server端,以得到运算后的网页结果;
—程序语言perl的档案,其后缀名也可能取成.pl这种档名;
Linux文件名长度限制:
单一档案或目录的最大允许文件名为255个字符;
包含完整路径名称及目录(/)的完整路径名为4096个字符;
Linux文件名限制:
一般来说,设置linux文件名时,最好避免一些特殊字符,如:* ? > < ; & ! [ ] | \ ' " ` ( ) { }等,这些符号在命令行界面下有特殊的含义。
三、Linux目录配置
/etc:开机与系统数据文件均在这个目录下;
/bin、/sbin、/usr/bin、/usr/sbin:这是系统预设的执行文件的放置目录;
/usr/local:这是系统预设的让你安装你后来升级的套件的目录;
/home:这是系统将有账号的人的家目录设置的地方;
/var:存储在系统运行中可能会更改的数据。如www、ftp、db、mail、logmessages...
/usr/share/man、/usr/local/man:这两个目录为放置各类套件说明文档的地方。
/ :根目录,一般建议在根目录下只有目录,不要直接有文件。根目录是启动时系统第一个载入的分区,所以,所有启动过程会用到的文件都应该放在这个分区。如:/etc、/bin、/dev、/lib、/sbin 这5个子目录都应该与根目录连在一起,不可独立成为某个分区;
/bin:存储常用用户指令;
/boot:这个目录主要目的是存放Linux系统启动时用到的文件。启动会用到的Linux的核心文件。这个目录下面的文件vmlinuz就是linux的核心。如果引导程序选择grub,这个目录内还有/boot/grub子目录;
/dev:在Linux系统上,任何设备都以文件类型存放在这个目录中。访问这个目录下面的某个文件,就等于访问某台设备。设备又分为字符设备,例如键盘、鼠标等,块设备,例如硬盘、光盘等。在此目录下的文件会多出两个属性,分别是主设备号和辅助设备号;
/etc:存储系统、服务的配置目录与文件,一般这个目录下的文件是可以让一般用户看的,但只有root用户可以修改;
/home:存放个人主目录;
/ib:存放库文件,诸如核心模块、驱动;
/lost+found:存储fsck用的孤儿文件,系统出现异常,产生错误时,会将一些遗失的片段放于此目录下,通常这个目录会自动出现在某个分区最顶层的目录下;
/mnt:系统加载文件系统时用的常用挂载点;
/opt:第三方工具使用的安装目录;
/proc:虚拟文件系统,包含系统讯息等资料;
/root:root用户的主目录;
/sbin:存储系统管理用指令,这个目录是给root用户管理用的;
/tmp:临时文件的暂存点;
/usr:存放与用户直接相关的文件与目录;
四、Linux支持的文件系统
/lib/modules/uname-r/kernel/fs
Linux使用的文件系统有ext2、ext3,最新版本还支持reiserfs(基于平衡树结构的文件系统)。