在 Linux 中,要修改一个文件夹或文件的权限,需要用到 chmod 命令。
一、基本语法
chmod [who] [ + / - / = ] [mode] [文件名]
其中,各选项的含义如下:
**1、第一项:**权限所有者
(1)u:表示”用户(user)”,即:文件或目录的所有者。
(2)g:表示“同组(group)用户”,即:与文件有相同组ID的所有用户。
(3)o:表示“其他(others)用户”。
(4)a:表示“所有(all)用户”,它是系统默认值。
**2、第二项:**操作符号
(1)+ :添加某个权限。
(2)- :取消某个权限。
(3)= :赋予给定权限,并取消之前其它所有权限。
**3、第三项:**设置mode所表示的权限,可用下述字母的任意组合(也可以用数字来代替)
(1)r:可读。–> 4
(2)w:可写。–> 2
(3)x:可执行。–>1
(4)X:有目标文件对某些用户是可执行的,或该目标文件是目录时才追加x属性。
(5)s:在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
(6)t:保存程序的文本到交换设备上。
(7)u:与文件属主拥有一样的权限。
(8)g:与和文件属主同组的用户拥有一样的权限。
(9)o:与其他用户拥有一样的权限。
二、示例
1、把 index.html 文件修改为可写可读可执行:$ chmod 777 index.html
2、要修改目录下所有文件属性可写可读可执行:$ chmod 777 *.*
3、把文件夹名称与后缀名用*来代替就可以了。比如:修改所有htm文件的属性:$ chmod 777 *.htm
4、修改文件夹属性的方法,把目录 /images/xiao 修改为可写可读可执行:$ chmod 777 /images/xiao
5、修改目录下所有的文件夹属性:$ chmod 777 * ( 把文件夹名称用*来代替就可以了)
6、要修改文件夹内所有的文件和文件夹及子文件夹属性为可写可读可执行:$ chmod -R 777 /upload
三、总结 Linux 下目录和文件的权限区别
1、文件:
读文件内容(r)、写数据到文件(w)、作为命令执行文件(x)。
2、目录:
读包含在目录中的文件名称(r)、写信息到目录中去(增加和删除索引点的连结)、搜索目录(能用该目录名称作为路径名去访问它所包含的文件和子目录)
3、具体而言:
(1)有只读权限的用户不能用cd进入该目录:还必须有执行权限才能进入。
(2)有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件。
(3)必须有读和执行权限才可以ls列出目录清单,或使用cd命令进入目录。
(4)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。
4、查看目录/文件权限的语句:
$ ls -l [文件名]
出现这些信息:-rw-rw-r--
(一共有10位数)
其中:
(1)最前面那个 – 代表的是类型
(2)中间那三个 rw- 代表的是所有者(user)
(3)然后那三个 rw- 代表的是组群(group)
(4)最后那三个 r– 代表的是其他人(other)
除了第一位后面的那9位数:
(1)r:表示文件可以被读(read)
(2)w: 表示文件可以被写(write)
(3)x:表示文件可以被执行(如果它是程序的话)
(4)-:表示相应的权限还没有被授予
三、总结
当明白了上面之后,那么我们常见的以下的一些权限就很容易都明白了:
<1> -rw——- (600):只有所有者才有读和写的权限
<2> -rw-r–r– (644):只有所有者才有读和写的权限,组群和其他人只有读的权限
<3> -rwx—— (700):只有所有者才有读、写、执行的权限
<4> -rwxr-xr-x (755):只有所有者才有读、写、执行的权限,组群和其他人只有读和执行的权限
<5> -rwx–x–x (711):只有所有者才有读、写、执行的权限,组群和其他人只有执行的权限
<6> -rw-rw-rw- (666):每个人都有读、写的权限
<7> -rwxrwxrwx (777):每个人都有读、写、执行的权限