1. 文件权限基本知识
文件的属性有10位如-rwxrwx—分别是(-ugr),其中第一个代表文件的类型,主要有以下几种:
[d] 表示目录;
[-] 表示普通文件;
[l]表示链接文件;
[b]表示为设备文件中的可供存储的接口设备;
[c]表示设备文件中的串行端口设备,如键盘、鼠标等。
问题:什么是设备文件?
答案:设备文件形式上也是文件系统中的文件,与普通文件不同的是,它没有具体的内容,对设备文件的读写操作实际上是与某个设备的;
输入输出操作关联在一起。设备文件是系统中重要的文件,不要随便修改。/dev中大都是设备文件
注意Linux文件名限制为单一文件最大允许名为255个字符,包含完整路径名称及目录(/)之完整文件名为4096个字符
对于目录文件,特别注意x权限,如一个目录文件的权限表示为drwxr–r–。该文件是root所有,虽然其他用户也有读权限,但却不能进入该目录,因为x与目录的关系很重要如果你不能再改目录下执行任何指令,那么也就不能执行ls。cd等命令,也就无法进入,因此,如果您想特别开放某个目录,请记得将该目录的x属性也开放*。
- 能不能进入一个目录,就看该目录有没有x权限,若没有就不能切换到该目录下,也无法执行该目录下的任何指令,即使你有r权限
- 如果您想特别开放某个目录,请记得将该目录的x属性也开放。
Linux文件的重要性
- 系统保护的功能
比如有些文件通常只有root才能读写或执行,如/etc/shadow的权限设置为[-rx——-]- 团队共享
比如可以将一个文件共享给同一团队的不同用户,设置权限为[-rwxrwx—]
2.改变文件属性与权限
- 改变群组chgrp
chgrp 群组名称 文件或目录,注意群组名称一定要在/etc/group中存在。 - 改变拥有者chown
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:群组名称 文件或目录
要注意账号名称必须是在/etc/passwd中存在的。
还可以直接修改群组名称,
-R参数:将目录下的所有子目录或文件同时修改。
#-R参数递归修改目录中的文件
chgrp -R root /david
#用户名:组名
chown root:root install.log
chown root.root install.log
问题:什么时候需要使用以上这两个命令?
答案:将文件复制给其他人的时候。如意文件是root所有,复制给其他人还是root所有,如不更改,则没法用。(其实可以强制修改)
- 改变权限chmod
不详细讲。举一些例子:我么以vi编辑一个 shell文本后,它的属性一般为-rw-rw-rw-即666的属性,如果要将它变为可执行文件,并且不让别人修改,即-rwxr-xr-x,即755的属性,chmod 755 文件名即可。
还有一种方式chmod +/-/= 来更改即可
Linux 支持的文件格式与文件种类
- 文件格式
什么是文件格式,就是你的操作系统用来存取数据的的格式。 - 文件种类
主要有以下几种:
一般文件:包含文本文件(ASCII文件)和二进制文件。
目录文件;
链接文件;
设备文件
- 块设备文件,主要有硬盘
- 字符设备文件,也就是一些串行端口的设备,如键盘、鼠标等。
- Linux文件的后缀名
- Linux不靠后缀名没有意义,主要靠其权限;
- 常用的后缀名用来标识,如sh,tar等等。
3.Linux目录配置FHS
事实上,FHS仅注定了三个目录:
- /
- /usr(unis software resource):与软件安装/执行有关
- /var(variable):与系统运作有关
- /bin:系统可执行文件的目录,在/bin底下爱的指令可以被root和一般账号所使用
- /boot:开机会用到的文件
- /dev:任何装置或接口设备都是以文件形式存在于这个目录当中,比较重要的有/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*
- /etc:系统的配置文件存放于此,比较重要的有/etc/inittab,/etc/init.d(所有服务的预设启动脚本都是在这,如要启动或关闭iptables的话 [/etc/init.d/iptable start] [/etc/init.d/iptable stop])等
- /home:新增一个一般者使用账号时,默认家目录会放在这里
- /lib:放置开机时会用到的函数库及在/bin或/sbin下的指令会调用的库,尤其注意/lib/modules这个目录,防止核心相关模块,如驱动
- /mnt:挂在一些额外的装置
- /opt:放置i第三方软件
- /root:希望和/放在一个分区中
- /sbin:Linux中很多设置指令只能root才能用,其他用户顶多查询,因此/sbin底下的为开机过程中所需要的,包括开机、修复、还原系统等。至于其他服务器软件程序则放在/usr/bin中
- /srv:service的缩写,是一些网络服务启动后,这些服务所需要取用的数据的目录,常见服务如WWW,FTP等,如WWW服务器需要的网页资料就可以放置在/srv/www里
- /tmp:临时目录,防止临时数据
下面再说下比较重要的目录
1. /lost+found:这个目录使用标准的ext2/etx3文件系统格式才会产生的一个目录,目的在于文件系统文件系统发生错误时,将一些遗失的片段防止在此目录中
2. /proc:这个目录存在一个虚拟文件系统中,放置的数据都是在内存当中,如系统核心,进程信息,网络状态等;因为这个目录下的数据都是在内存中,不占有硬盘空间,比较重要的有如/proc/cpuinfo,/proc/dma,/proc/interrupts,/proc/net/*等
3. /sys:这个目录其实跟/proc非常类似,也是个虚拟的文件系统
/usr的意义与内容
- /usr/bin:绝大部分用户的可使用指令放在这!
- /usr/include:c/c++等语言的头文件在此
- /usr/lib:各种应用程序的库
- /usr/sbin:非系统正常运作所需要的系统的指令
- /usr/share:防止文件共享的地方,如/usr/share/man联机帮助文件,/usr/share/doc软件杂项的文件说明
- /usr/src:一般建议源代码防止这里
/var的意义与内容
/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运行后才会渐渐占用硬盘容量的目录,因为/var目录主要针对经常变动的文件,包括cache,log file以及某些软件运作产生的文件,如成勋文件或MySql数据库的文件等等- /var/cache/:应用程序运行中会产生一些中间文件
- /var/lib/:应用程序执行过程中,需要用到的数据文件的目录,如MySql的数据库放置到/var/lib/mysal,而rpm的数据库则放到/var/lib/rpm去
- /var/log/:重要,登录文件放置的目录,较重要的文件如/var/log/messages,/var/log/wtmp(记录登录信息)
- /var/run/:某些程序运行后 后,将他们的PID防止在这个目录下
- /var/spool/
主机的硬盘划分
通常一般的大型主机都不会讲所有的数据都放置在一个硬盘分区中(就是只有一个”/”目录),有以下几个原因:- 安全考虑:系统文件一般放在/usr/中,个人数据在/home中,一些系统启动数据放在/etc/中。以免被人侵入后数据全丢失。
- 便利性。。。。
以下简单参考:
自己安装时候划分如下:/boot 500M,/swap(虚拟内存)内存两倍,
剩下的是/ 。这个事比较简单的划分了。