咱们能够经过 ls -l 命令查看文件的类型、文件大小、文件权限详细信息,例如:linux
$ 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表明的是该文件的大小bash
分解一下,以下图所示:spa
文件类型 文件所属用户权限 文件所属组权限 其它用户权限 文件所属用户 文件所属组 文件大小 d rwx rwx --- root root 4096
其中:code
一、文件类型d表示是的目录class
Linux文件类型: -:普通文件 d:目录文件 l:符号连接 c:字符设备文件 b:块设备文件
二、rwx表示的是读(r)、写(w)、执行(x),没有权限(-)file
三、用户分三类,分别为:文件所属者(u),文件所属组(g),其它用户(o)权限
2、普通文件权限二进制
读权限(r):能够查看文件内容,大小,类型信息命名
写权限(w):能够修改文件内容脚本
执行权限(x):能够执行文件(脚本文件)
3、目录文件权限
读权限(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表明所有用户;使用 +、-、=来分配权限,其中+表示增长权限,-表示删除权限,=表示设置权限
一、假设咱们想为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(执行)权限
二、假设咱们想为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(读)权限,已经被删除
三、假设咱们想为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 + 数字 + 文件,来便捷设置权限
下面举例子来讲明:
一、为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,相比使用字母加符号的方式,数字设置权限显然方便的多
二、假设不一样时使用三个数字结合的话,假设只使用一个数字,则该数字表明其它用户的权限,文件所属用户及所属组用户权限将变为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