一.用户和用户组
1.Linux的每个文件中,依据权限分三种身份
- 用户
- 用户组
- 其他人(others)
2.Linux用户身份和用户组记录的文件
在linux系统默认的情况下账号、密码、用户组信息分别记录在:
- /etc/passwd : 记录系统上的账号、一般用户、root相关信息
- /etc/shadow : 记录个人的密码信息
- /etc/group : 记录Linux所有的组名
至于更多的与账号用户组信息有关的设置,还有这三个文件的格式,以后学到在做记录。
二.Linux文件权限的概念
1.Linux文件属性
利用 ls -l(或ll) 命令显示文件属性,第一个字段是文件的权限,共10位,第一位是文件类型,接下来三个为一组共三组,为用户、用户组、其他人的权限,权限有r,w,x 三种。
[root@www ~]# ls -al
total 156
drwxr-x--- 4 root root 4096 Sep 8 14:06 .
drwxr-xr-x 23 root root 4096 Sep 8 14:21 ..
-rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg
-rw------- 1 root root 199 Sep 8 17:14 .bash_history
-rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout
-rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile
-rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc
-rw-r--r-- 1 root root 100 Jan 6 2007 .cshrc
drwx------ 3 root root 4096 Sep 5 10:37 .gconf
drwx------ 2 root root 4096 Sep 5 14:09 .gconfd
-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log
-rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ]
[ 权限 ] [连接] [拥有者][群组] [文件容量] [ 修改日期 ] [ 档名 ]
对文件来讲,权限的效能为:
- r : 可读取此文件的实际内容,如读取文本文件的文字内容等
- w : 可以编辑、新增或者修改该文件的内容(但不含删除该文件)
- x : 该文件具有可以被系统执行的权限
- r : (read contents in directory)表示具有读取目录结构列表的权限
- w : (modify contents of directory)表示具有更改该目录结构列表的权限
- x : (access directory)代表用户能否进入该目录成为工作目录的用途
2.Linux下的文件类型与扩展名
第一个字符所代表的是文件类型。
- 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
- 当为[ - ]则是普通文件,例如上表档名为『install.log』那一行;
- 若是[ l ]则表示为连结档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
- 若是[ s ]则表示为数据接口文件
- 若是[ p ]则表示特殊的文件类型,主要目的在解决多个程序同时访问一个文件所造成的错误问题
Linux下的"扩展名"使用来表示该文件是什么种类,帮助我们更好的了解文件的用途而已,下面有数种常用的扩展名:
- *.sh : 脚本或批处理文件(scripts)
- *.Z、*.tar、*.tar.gz、*.zip : 经过打包的文件
- *.html、 *.php : 网页相关文件
三.文件属性和权限
1.chgrp : 改变文件所属用户组
请记得,要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误!例如:
[root@www ~]# chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@www ~]# chgrp users install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[root@www ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 发生错误讯息~找不到这个群组名~
2.chown : 改变文件所有者
语法及举例:
[root@www ~]# chown [-R] 账号名称 文件或目录
[root@www ~]# chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦连同次目录下的所有文件都变更
范例:将install.log的拥有者改为bin这个账号:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
范例:将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
3.chmod : 改变文件权限
数字类型改变文件权限
用数字代表各个权限,各权限的分数对照如下:
- r : 4
- w : 2
- x : 1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:
[-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0
[root@www ~]# chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
符号类型改变文件权限
chmod ug
o
a +(加入)
-(除去)
=(设定) r
w
x
文件或目录
[root@www ~]# chmod u=rwx,go=rx .bashrc
# 注意!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!
[root@www ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod a+w .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod a-x .bashrc
[root@www ~]# ls -al .bashrc
-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc