Linux文件权限与目录配置
1。Linux中的用户与群组
Linux是真正的多用户多任务,同一时刻可以允许多个用户同时使用Linux。
Linux的用户及群组功能是相当健全好用的一个安全防护。
2。Linux文件权限
Linux拥有用户及群组的概念,就需要针对这些用户和群组设置文件或者目录的权限,成为文件或者目录的权限与属性。
a. 查看文件的权限和属性,使用命令ls
ls -l 显示各个文件或目录的权限及属性信息;
ls -a 显示所有的文件或目录,包括隐藏文件dot file(以.开头的)
ls -la 多条选项的话,可以这样写
举例:
root@hemin-desktop:/home# ls -l
总用量 20
drwxr-xr-x 39 hemin hemin 4096 2007-11-24 13:37 hemin
drwx------ 2 root root 16384 2007-10-31 07:11 lost+found
b. 解释所列文件权限及属性:
1) 第一栏,如drwxr-xr-x,一般10个属性。
第一个代表文件类型,为目录、文件或者链接文件:
d表示目录
- 表示文件
l 表示链接文件
b 表示设备文件中可供储存的接口设备
c 表示设备文件中的串行端口设备,如鼠标,键盘
接下来9位共3组属性,以'rwx'形式
r 表示可读
w 表示可写
x 表示可执行
3组中第一组为'拥有者的权限, user', rwx表示文件的拥有者可以读写及执行;
3组中第二组为'群组的权限, group', r-x表示和文件的拥有者属于同一群组的用户,可读可执行但是不能写;
3组中第三组为'其他非本群组的用户的权限, others',r-x表示其他人可以读和执行,不可以写;
注意:对于一个目录如果允许进入,则需要开启r和x属性,否则只有r也无法进入。
2)第二栏表示链接占用的节点,若为目录,通常与该目录下有多少子目录有关;
3) 第三栏表示这个文件(或目录)的拥有者;
4) 第4栏表示拥有者的群组;
在linux每个用户有自己的用户ID,同时还有附属的群组ID。举例群组代号为testgroup, 群组下各个用户的代号为test1, test2, test3。
[-rwxrwx---]表示文件,文件的所有者可以读写执行,和该文件所有者属于同一群组的用户也可以读写执行,其他不属于该群组的用户不具备任何读写执行的权限。
5) 第5栏表示文件的大小
6) 第6栏表示该文件的建档日期或最近的修改日期。
7) 第7栏表示该文件的文件名,dot file(即以.开头的文件)为隐藏文件。
还需要注意的是Windows下一个文件是否具有可执行能力是由其后缀名实现的,例如.exe, .bat等,在Linux下,文件是否能够执行,是由是否具有x这个属性来决定的,和后缀没有绝对的关系。
举例解释
root@hemin-desktop:/home# ls -l
总用量 20
drwxr-xr-x 39 hemin hemin 4096 2007-11-24 13:37 hemin
drwx------ 2 root root 16384 2007-10-31 07:11 lost+found
第一行表示:
最后的hemin为一个目录(d),对于用户hemin具备rwx即读写执行权限;对于和hemin用户同属组群hemin的其他用户具备r-x即具备读和执行权限,但是不具备写权限;最后不属于hemin群组的其他用户具备r-x即读和执行权限。 39表示链接个数,与hemin目录下的子目录个数有关系;4096表示hemin目录下文件的大小; 2007-11-24 13:37表示该目录的最后修改日期; hemin表示目录名称。
c. Linux文件属性的重要性
不同于Windows中文件,Linux中文件都附加了很多属性,尤其是群组的概念,更加安全更加易于管理。
3。更改文件权限
修改群组,拥有者,修改各种身份的权限;
a. 修改群组;
使用chgrp,但是改变的目标群组名称必须在/etc/group中存在,否则会显示错误。
语法
chgrp 群组名称 文件或目录
举例:
ls -l
-rw-r--r-- 1 root root 100 2007-11-24 14:40 new
chgrp hemin new
ls -l
-rw-r--r-- 1 root hemin 100 2007-11-24 14:40 new
b. 修改拥有者chown
使用chown命令修改文件的所有者,但是文件的拥有者必须已经存在于系统中,及拥有者必须在/etc/passwd文件中存在。
如果要将目录下的所有子目录或文件同时修改,加-R参数即可,表示递归的意思。
chown [-R] 用户名称 文件或者目录
chown [-R] 用户名称:用户群组 文件或者目录
chown不但可以修改用户名,而且可以同时修改用户名称和用户组群。
经常使用的需要变更文件的拥有者,是在文件复制给其他人的时候。
c. 修改各种身份的权限chmod
两种方法修改文件权限;
1) 数字类型修改
9个属性共3个组,分别对应拥有者,拥有者所属群组,其他用户
rwx三位的每一位用二进制表示,可以转化为一个0-7之间的数。
这样9位属性就可以表示为3位的
chmod [-R] xyz 文件或目录
例如
-rwxr-xr--转化为数字类型为- 111 101 100这样表示为754
-rwxrwxrwx可以表示为777
2) 符号类型修改
9个属性分为3组,分别属于user, group, others三组,可以使用u, g, o分别代表。
此外a代表all即全部三组u, g, o
权限属性可以用r, w, x表示
这样采用如下方式
chmod u/g/o/a +/-/= r/w/x 文件或目录
其中+表示添加之后权限;-表示删除之后的权限;=号表示设定之后的权限
举例:
chmod u=rwx,go=rx .bashrc
表示设置拥有者具备rwx权限,用户群组和其他用户都只有rx权限;
即rwxr-xr-x 755
使用数字类型修改应如下
chmod 755 .bashrc
4。Linux支持的文件格式与文件种类,后缀名
a. 文件格式
文件格式是OS存取数据的格式。Windows下的文件格式有FAT, FAT32, NTFS文件格式。
Linux的正统的文件格式为ext2,目前Linux支持的文件格式非常多,不过必须将想要支持的文件格式编译到Linux的内核里。
举例,如果Windows和Linux安装在一个硬盘里,Linux也不能访问到Windows的分区,因为不支持Windows的文件格式;Windows的核心也不支持Linux的文件系统,因此在Windows下是看不到Linux分区的。
目前很多Linux发行版本,都预先将一些文件格式编译到其内核里面,进而支持多种文件格式。
要查看Linux支持的文件格式,可以查看系统的/lib/modules/'uname -r'/kernel/fs,知道Linux支持的文件格式。
一般Linux的正统文件格式是ext2,但是最近发布的Linux默认采用ext3或者reiserfs格式,因为具备日志管理功能。
Ubuntu系统默认支持多种文件格式,因此能够访问到Windows分区。
b. 文件种类
Linux主要有如下几类文件种类:
1)正规文件,就是一般类型的文件,ls -l之后第一个属性为-的文件,可以分为两种
纯文本文件ASCII码文件,UNIX系统最多的一种类型;
二进制文件binary,通常出了脚本之外,执行文件就是这种;
2)目录directory: ls -l第一个属性为d
3)链接文件link file: 类似Windows下的快捷方式,第一个属性为l
Linux下的链接文件可以视为一个文件或目录的快捷方式,但和Windows下的快捷方式又不太一样,Windows下修改快捷方式无法修改主程序,Linux修改链接文件主程序会做相应改变。
4) 设备文件(device): 与系统外设相关的文件,通常位于/dev目录下,可以分为两种
块block设备文件:用于储存数据以提供系统存取的接口设备,一般都指硬盘,ls -l的第一个属性为b
字符character设备文件:用于串行端口的接口设备,例如键盘,鼠标,ls -l的第一个属性为c
c. Linux文件的后缀名
Linux文件的后缀名没有意义。因为Linux下一个文件能不能被执行,与其ls -l第一栏的10个属性有关系,与文件名没有关系。
与windows不同,在Windows下,可执行文件的后缀名如.exe等。
在linux只要文件的文件属性中有x,即代表这个文件可以被执行。
在linux也适当地以文件后缀名表示文件类型,比如
批处理文件(脚本): 以.sh代表,因为批处理脚本使用shell编写
打包或者压缩文档: 以.Z, .tar, .tar.gz, .zip, .tgz表示,这是因为压缩软件不同而不同,如gunzip, tar等
网页文件:如html, php等
Perl文件:.pl
FAQ:
Unix与Linux系统的文件名最多可以容许255个字符;
-rwxrwxrwx表示文件拥有者可以读写执行,和文件拥有者同属一个组群的用户可以读写执行,其他用户也可以读写执行;
将一个文件file的属性改为-rwxr-xr--可以采用的指令:
数字方式:chmod 754 file
符号方式:chmod u=rwx,g=rx,o=r file
PS: 符号方式在原有基础上修改不大时用比较方便
更改一个文件的拥有者与群组的指令:chown 用户名:群组 file
Linux传统的文件类型为ext2, 现在常用的带有日志功能的文件格式有ext3和reiserfs.
如下目录主要放置什么数据
/etc/ 启动及系统的数据文件都放在该目录下,还有应用程序的配置文件
/etx/rc.d/init.d 存放开关机过程中用到的脚本文件
/boot 存放Linux核心与启动相关文件的地方
/usr/bin, /bin 系统执行文件的放置目录,一般用户可以使用
/usr/sbin, /sbin 系统执行文件的放置目录,root用户可以使用的
/dev 存放与设备有关的文件
/var/log 主要放置可变的信息和数据,log放置错误信息文件
文件名以'.'开头,表示该文件为隐藏文件,显示该文件使用ls -a及属性ls -al
5. Linux目录配置
查看如下图片