Linux系统中,每个用户的角色和权限划分的很细致也很严格,每个文件(目录)都设有访问许可权限,利用这种机制来决定某个用户通过某种方式对文件(目录)进行读、写、执行等操作。
操作文件或目录的用户,有3种不同类型:文件所有者、群组用户、其他用户。最高位表示文件所有者的权限值,中间位表示群组用户的权限值,最低位则表示其他用户的权限值,所以,chmod 777中,三个数字7分别对应上面三种用户,权限值都为7。
文件或目录的权限又分为3种:只读、只写、可执行。
依照上面的表格,权限组合就是对应权限值求和,如下:
7 = 4 + 2 + 1 读写运行权限
5 = 4 + 1 读和运行权限
4 = 4 只读权限
因此,这样也就明白了 chmod 754 filename 命令的含义了。
chmod 命令在linux终端先输入ll,可以看到如:
-rwx-r--r-- (一共10个参数) 表示文件所属组和用户的对应权限。
第一个跟参数属于管理员,跟chmod无关,先不管。
2-4参数: 属于user
5-7参数: 属于group
8-10参数: 属于others
777和755分别是什么意思?
777 表示 rwxr-rwx-rwx 所有用户都可读可写可执行。
755 表示 创建者拥有读写可执行权限、同一组用户以及其他用户拥有读和执行权限。
示例:chmod 777 文件或目录
chmod 777 /rickie 运行命令后,rickie文件夹(目录)的权限就被修改为777(可读可写可执行)。
上述命令执行之前:
drwxr-xr-x 2 root root 41 Sep 12 16:04 rickie
执行之后:
drwxrwxrwx 2 root root 41 Sep 12 16:04 rickie
Linux给文件或目录赋权限还有一种容易理解方法比如:
chmod a-x 表示所有用户对此文件或目录将没有执行权限。
chmod a+x 表示所有用户对此文件或目录将有执行权限。
(1) 创建 hello.md 文件;
echo "hello rickie" > hello.md
(2) 添加执行权限
chmod a+x
“a”表示所有用户,“u”表示创建者、“g”表示创建者同组用户、“o”表示其他用户;
“+”表示添加权限,“-”表示取消权限;
“r”表示读权限、“w”表示写权限、“x”表示写权限。
更多官方的、详细的解释,可以使用下面的命令查看:
chmod --help 或者 man chmod