用户的三种身份

所有者

由于Linux是个多人多工的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生,为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个所有者的角色就显的相当的重要了。
在某些情况下,文件所有者可以将文件设置成只有所有者可以访问和修改文件的权限,那么其他人就不能访问和修改这个文件了。

所属组

所属组是具有相同特征用户的逻辑集合。
简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限。一种方法是分别对多个用户进行文件访问授权,如果有很多用户的话,这种方式会进行大量无意义的重复操作。另一种方式就是建立一个用户组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。

其他人

其他既不是所有者,也不在所属组中的用户,就被划分到了其他人。

文件属性

使用ls命令查看文件属性

使用 ls -al 命令查看所有文件的文件属性:

[root@localhost home]# ls -al
总用量 36
drwxr-xr-x.  3 root root    93 7月  11 03:56 .
dr-xr-xr-x. 17 root root  4096 7月   3 16:12 ..
-rw-r--r--.  2 root root 10240 7月  11 01:28 hello
-rw-r--r--.  2 root root 10240 7月  11 01:28 hello-hard
lrwxrwxrwx.  1 root root     5 7月  11 03:56 hello-soft -> hello
-rw-r--r--.  1 root root   506 7月  11 02:27 hello.zip
-rw-r--r--.  1 root root   308 7月  11 02:39 test.zip
drwxr-xr-x.  4 root root    33 7月  11 03:53 zip
[root@localhost home]#

可以看到每一行的内容格式都是相同的,拿第一行举例说明:

1)首先,第一列 drwxr-xr-x 表示的是文件的类型和权限。
2)第二列 3 表示的是文件的连接数。硬链接会增加这个数值,软连接不会。
3)第三列 root 表示的是文件的拥有者。
4)第四列 root 表示的是文件的用户组。
5)第五列 93 表示的是文件的大小,单位是Byte。
6)第六列 7月 表示的是文件最后被修改的月份。
7)第七列 11 表示的是文件最后被修改的日期。
8)第八列 03:56 表示的是文件最后被修改的时间。
9)第九列 . 表示的是文件的名称。如果文件名称是以“.”开头的,说明该文件是隐藏文件。

文件的类型和权限

需要重点说明的是,在文件属性的第一列 drwxr-xr-x 是用来表示文件的类型和权限的,这一列共有10个字符,其含义如下:
1)文件类型
第一个字符“d”表示该文件的类型是目录文件,常见的文件类型如下:

-:常规文件(file)。
d:目录文件(directory)。
b:块设备文件(block device),如硬盘。支持以block为单位进行随机访问。
c:字符设备文件(character device),如键盘。支持以character为单位进行线性访问。
l:符号链接文件(symbolic link),又称软链接文件。
p:命名管道文件(pipe)。
s:套接字文件(socket),用于实现两个进程进行通信。

2)文件权限
在接下来的字符中,以三个为一组,并且都是“rwx”三个参数的组合。其中,“r”表示可读(read),“w”表示可写(write),“x”表示可执行(execute)。注意,“rwx”三个参数的位置不会变,如果没有相应的权限,则使用“-”代替。

1 第一组rwx为所有者的权限,表示可读可写可执行。
2 第二组r-x为所属组的权限,表示可读不可写可执行。
3 第三组r-x为其他人的权限,表示可读不可写可执行。

chmod 文件授权

chmod命令是我们进行权限管理最常用的命令。该命令有两种用法,一种是包含字母和操作符表达方式的文字配置方法;另一种是包含数字的配置方式。

语法:

chmod [-cfvR] [--help] [--version] mode file...

参数说明:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

选项说明:

  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
  • –help : 显示辅助说明
  • –version : 显示版本

示例一: 通过操作符表达式的文字配置方式
将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,所属群组可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

示例二: 用数字方式授权
读、写、执行分别用数字表示为:r=4,w=2,x=1 一组权限可以用一组数字表示,比如 777表示 rwx rwx rwx, 640表示rw- r-- --x

chmod 777 filename  #给User,Group,other分别授权读写和执行权限。
chmod 444 filename  #授予只读权限
chmod 777 * #给当前目录所有文件授权
chmod -R 777 jack/ #给jack目录和下面的所有文件即文件夹,都授予读写和执行权限

示例三: 网站根目录权限遵循:
文件644 文件夹755  权限用户和用户组www,其余文档777权限是不正常的
如出现文件权限问题时,请执行下面3条命令:

chown -R www.www /www/wwwroot/
find /www/wwwroot/ -type d -exec chmod 755 {} \;
find /www/wwwroot/ -type f -exec chmod 644 {} \;