您的位置:首页 > 运维架构 > Linux

Linux权限管理简介

u2462947 2016-02-26 22:11 61 查看

一、权限简介

我们可以通过 ls -l 命令查看文件的类型、文件大小、文件权限详细信息,例如:

$ ls -l
drwxrwx--- root root 4096 2月  25 21:53 soft
-rw-r--r-- root root 6140 11月 12 15:58 file

其中第一个d代表的是文件的类型,rwxrwx--- 代表的是权限信息,第一个 root 代表的是该文件的所属用户,第二个 root 代表的是该文件所属的用户组,4096代表的是该文件的大小

分解一下,如下图所示:

文件类型   文件所属用户权限   文件所属组权限    其它用户权限   文件所属用户   文件所属组    文件大小
d           rwx            rwx            ---         root         root        4096

其中:

1、文件类型d表示是的目录

Linux文件类型:

-:普通文件

d:目录文件

l:符号链接

c:字符设备文件

b:块设备文件

2、rwx表示的是读(r)、写(w)、执行(x),没有权限(-)

3、用户分三类,分别为:文件所属者(u),文件所属组(g),其它用户(o)

二、普通文件权限

读权限(r):可以查看文件内容,大小,类型信息

写权限(w):可以修改文件内容

执行权限(x):可以执行文件(脚本文件)

三、目录文件权限

读权限(r):可以查看目录中的文件名列表(仅能查看文件名,不能查看内容、大小等信息)

写权限(w):可以对目录及目录下所有文件执行:新建、复制、删除、重命名操作

执行权限(x):可以进入目录

目录常用的权限组合为:读执行(rx)及读写执行(rwx)

注:如果想在目录下进行新建文件、复制文件、删除文件、重命名文件,则必须拥有目录的写权限,因为文件名是存储在目录空间中的,而文件内容才是存储在文件空间中,如果没有目录的写权限,则没有文件名的修改权限,也就无法进行新建、复制、删除、重命名操作

四、文件权限分配

如果想更改文件的权限,可以通过 chmod 指令来进行,查看该指令帮助,可以使用

$ man chmod

或者使用

$ chmod --help

我们先新建一个文件,使用名为 file 的文件

$ touch file

使用 ls -l 查看下新建文件的详细信息

$ ls -l
-rw-r--r-- root root 0 2月 26 21:30 file

可以看到 file 为普通文件,root用户是该文件的所有者,root组是该文件的所属组,其中root用户拥有读写权限,root组用户及其它用户只拥有读权限

我们可以使用chomd为文件进行权限的分配,使用u、g、o、a代表不同的用户类别,其中a代表全部用户;使用 +、-、=来分配权限,其中+表示增加权限,-表示删除权限,=表示设置权限

1、假设我们想为file所属的用户添加执行权限,也就是x权限,那么我们可以使用:

$ ls -l
-rw-r--r-- root root 0 2月 26 21:30 file
$ chmod u+w file
$ ls -l
-rwxr--r-- root root 0 2月 26 21:30 file

可以看到root用户已经拥有了file文件的x(执行)权限

2、假设我们想为file文件,删除其它用户的读权限,那么我们可以使用:

$ ls -l
-rwxr--r-- root root 0 2月 26 21:30 file
$ chmod o-r file
$ ls -l
-rwxr----- root root 0 2月 26 21:30 file

可以看到其它用户的r(读)权限,已经被删除

3、假设我们想为file文件,设置其所属组的权限为写和执行权限,那么我们可以使用

$ ls -l
-rwxr----- root root 0 2月 26 21:30 file
$ chmod g=wx file
$ ls -l
-rwx-wx--- root root 0 2月 26 21:30 file

可以看到所属组用户的r(读)权限已经被删除,权限被设置为了w(写)和x(执行)

五、文件权限的快捷操作

使用u、g、o代表用户类型,+、-、=设置权限,r、w、x代表权限类型,这三种组合来设置权限,比较麻烦,linux有一种更加便捷的方式来设置权限,也就是使用数字

其中r用4表示,w用2表示,x用1表示,至于为何是421,因为1代表是的二进制1,2代表的是二进制11,4代表的是二进制111,该三组数字的组合相当巧妙,三组任意相加都不会产生重复

可以使用 chmod + 数字 + 文件,来便捷设置权限

下面举例子来说明:

1、为file文件所属用户赋于读写执行权限,为file文件所属组用户赋于读执行权限,为其它用户赋于读执行权限,可以使用下列执行便捷设置:

$ chmod 755 file
$ ls -l
-rwxr-xr-x root root 0 2月 26 21:30 file

因为7=4+2+1,所以7代表的是最高权限,也就是读+写+执行

因为5=4+1,所以5代表的是读+执行权限

也就是说 chmod 755 file 指令等同于 chmod u=rwx,g=rx,o=rx file,相比使用字母加符号的方式,数字设置权限显然方便的多

2、假设不同时使用三个数字结合的话,假设只使用一个数字,则该数字代表其它用户的权限,文件所属用户及所属组用户权限将变为0,举个例子:

$ chmod 7 file
$ ls -l
-------rwx root root 0 2月 26 21:30 file

也就是说 chmod 7 file指令等同于 chmod 007 file

同理,假设使用两个数字结合,则第一个数字代表所属组用户权限,第二个数字代表其它用户权限

$ chmod 47 file
$ ls -l
----r--rwx root root 0 2月 26 21:30 file

也就是说 chmod 47 file指令等同于 chmod 047 file
标签:  Linux 权限