linux学习入口:Linux查询手册
功能:
修改文件/文件夹的权限
背景:
在linux中,相对对于每个文件而言,用户都被分为了三类:
所有者(u):user,通常是创建者,也可以把所有者修改为别的指定用户账户
所属组(g):group,给这个组下面的所有人都设权限
其它人(o):other,除了上面包含的人,都是其它人
权限示例:-rwxr--r--
第一位:文件类型,有三种常见值(- 文件,d 目录,l 软链接文件);还有一些不常见的类型,例如字符设备文件、块设备文件、套接字文件、管道符文件,一般不需要用户操作。
后9位:每3位一组,每组分别代表了所有者、所属组、其它人对于该文件的权限
每一位的值:r 可读 ,w 可写 ,x 可执行
语法:
1.可以这样用(了解一下就行,一般不用这种方式)
chmod [{ugoa}{+-=}{rwx}] [文件或目录]
示例:
说明:
- 第一个位置上,u 表示该文件的拥有者,g 表示与该文件的拥有者属于同组者,o 表示其他人,a 表示这三者所有;
- 第二个位置上,+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限;
- 第三个位置上,r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当 该文件是个子目录 或者 该文件已经被设定过 为可执行。
2.更常用的方式(一定要掌握)
chmod [mode=421 ] [文件或目录]
示例:
除了上面的r,w,x的表示方式,还有一种用数字代表的方式:读的权限等于4,写的权限等于2,运行的权限等于1。
通过4、2、1的组合,得到以下几种权限:
0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)
以755为例:
1-3位7等于4+2+1,rwx,所有者具有读取、写入、运行权限;
4-6位5等于4+1+0,r-x,同组用户具有读取、运行权限但没有写入权限;
7-9位5,同上,也是r-x,其他用户具有读取、运行权限但没有写入权限。
因此也就有了常用的linux文件权限:
444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx
详细说明:
参数 | 功能 | 示例 | 备注 |
-R | 对当前目录下的所有文件(包含子目录)进行相同的权限变更(即以递回的方式逐个变更) |
备注:
1. chmod 4755 filename可使此程序具有root的权限
例如:
root用户创建了一个上网认证程序netlogin,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令,使其他用户也能运行netlogin。
但是netlogin执行时可能需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。
这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。
2. 管理员在文件夹picture下新建文件test.txt,然后将picture文件夹的权限设置为777,然后新建一个普通用户xiaoming,使用小明账号登录系统,能否删除test.txt?
答案是可以
权限 | 对文件的含义 | 对目录的含义 | |
r | 读权限 | 可以查看文件内容 可执行命令:cat/more/less/head/less | 可以列出目录中的内容 可执行命令:ls |
w | 写权限 | 可以修改文件内容 可执行命令:vim | 可以在目录中创建、删除文件 可执行命令:touch/mkdir/rmdir/rm |
x | 执行权限 | 可以执行文件 原来可能是脚本、命令 | 可以进入目录 可执行命令:cd |
所以,删除一个文件的权限需求:对这个文件所在的目录有写权限