专题推荐
专题推荐

Linux常用命令:chmod命令修改文件或目录的权限

2020-02-28 20:55 分类:Linux常用命令 阅读(次阅读) 标签:,

我们在使用Linux vps的时候需要用到chmod,设置Linux vps安全的时候也需要用到chmod.

了解Linux的权限知识,是非常重要的这关系到Linux vps安全,chmod与chgrp就是Linux设置权限的命令.

Linux chown命令与Linux chgrp命令与Linux chmod命令的区别是:

Linux chown命令是修改文件或目录所属的用户,Linux chown命令可以理解是 “change owner” 的缩写
Linux chgrp命令是修改文件或目录所属的用户组,Linux chgrp命令可以理解为英文change group的意思.
Linux chmod命令是修改服务器文件的执行权限

Linux chown命令与Linux chgrp命令与Linux chmod命令的相关教程:

Linux常用命令:chmod命令修改文件或目录的权限

Linux常用命令:chown命令修改文件或目录所属的用户

Linux常用命令:chgrp命令修改文件或目录所属的用户组

当我们通过Xshell访问我们的Linux vps通过ls命令输出web文件夹的列表的时候:

[root@localhost www.vpsyi.com]# ls -l
total 220
drwxr-xr-x  2 www www  4096 Feb 23 22:41 ErrorPages
-rwxr-xr-x  1 www www  1150 Jan 28 14:42 favicon.ico
-rwxr-xr-x  1 www www   420 Dec  1  2017 index.php
-rwxr-xr-x  1 www www 19935 Dec 19 07:07 license.txt
-rwxr-xr-x  1 www www  7005 Dec 19 07:08 readme.html
-rwxr-xr-x  1 www www  6939 Sep  3 08:41 wp-activate.php
drwxr-xr-x  9 www www  4096 Feb 23 22:41 wp-admin

以第9行的wp-admin文件夹为例(为了节约空间,我删除了很多行),我专门做了一个图片解释一下权限怎么体现出来.

Linux常用命令:chmod命令修改文件或目录的权限

先要知道Linux 系统中

文件的基本权限由 9 个字符组成,我们可以使用数字来代表各个权限,各个权限与数字的对应关系如下:

r (可读取 Read )--> 4
w (Write,写入 )--> 2
x (eXecute,执行 )--> 1

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

你可以这样理解文件权限:
1、目录的只读访问代表只能浏览内容,不能运行文件,也不能修改文件。
2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件,比如游客组没有w权限,那就无法浏览网页

Linux 系统中网站文件一般设置为什么权限?

拿 rwxrwxr-x 来说,所有者、所属组和其他人分别对应的权限值为:
所有者 可读/可修改/可执行 = rwx = 4+2+1 = 7
所属组 可读/不可修改/可执行 = r-x = 4+1 = 5
其他人 可读/不可修改/可执行 = r-x = 4+1 = 5
所以,此权限对应的权限值就是 755

我们一般网站的目录权限是755或者775,这样代表访客无法修改文件,仅能执行与读取文件,而文件所有者www用户可以修改.

但是切记不可777

777代表访客可以修改你的程序文件,这样访客无需复杂操作就可以修改代码加入木马或者上传木马文件.

也不能把文件设置为555,这代表谁都不能修改这个文件,都是只读状态(担心程序有漏洞,设置为全站只读的时候可以这样).

不能设置为770,这样访客无法读取与执行这个php文件.

所以我们一般把文件设置为755

Linux chmod命令的语法:

[root@localhost ~]# chmod [-R] 权限值 文件名

-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。

Linux chmod命令的示范:

1.将backup.sh设置为所有人都可执行可写入.(backup.sh为文件而不是目录,所以无需前面带-R参数)

[root@localhost ~]ls
-rw-r--r--  1 root root     1583 Feb 13 22:19 backup.sh
[root@localhost ~]# chmod 777 backup.sh
[root@localhost ~]ls
-rwxrwxrwx  1 root root     1583 Feb 13 22:19 backup.sh

2.将www网站程序所在目录,全站设置为755权限,这样代表访客无法修改文件,仅能执行与读取文件,而文件所有者www用户可以修改.

[root@localhost ~]ls
drw-r--r--  1 root root     1583 Feb 13 22:19 www
[root@localhost ~]# chmod -R 755 www
[root@localhost ~]ls
drwxrw-rw-  1 root root     1583 Feb 13 22:19 www

3.你会注意到:Linux VPS每日异地备份网站数据与数据库上传到异地ftp空间

这篇文章的末尾有个chmod +x 那么+x代表什么呢?

+x代表赋予文件可执行权限:

[root@localhost ~]# chmod +x /root/backup.sh

请先看下图,backup.sh之前不是可执行文件,文件名称是灰色的,而文件权限是 -rw-r–r– 

chmod +x backup.sh

输入可执行命令后,文件名称变为了绿色. 文件权限变为-rwxr-xr-x 即所有用户均可执行.

文件可执行,那么备份脚本才有可运行权限.

Linux chmod命令使用字母修改文件权限

这就是Linux chmod命令使用字母修改文件权限

文件的基本权限就是 3 种用户身份(所有者、所属组和其他人)搭配 3 种权限(rwx).

chmod 命令中用 u、g、o 分别代表 3 种身份,还用 a 表示全部的身份(all 的缩写)。

chmod 命令仍使用 r、w、x 分别表示读、写、执行权限。

注意: chmod +x 和chmod a+x 是一样的,一般没有明确要求,可以就用chmod +x

Linux chmod命令使用字母修改文件权限示范:

1. chmod命令增加test.txt 所属组的 写 权限

[root@localhost ~]# ll test.txt 
-rw-r--r--. 1 root root 0 6月  23 20:20 test.txt
[root@localhost ~]# chmod g+w test.txt 
[root@localhost ~]# ll test.txt 
-rw-rw-r--. 1 root root 0 6月  23 20:20 test.txt

2. chmod命令删除test.txt所有权限

[root@localhost ~]# ll test.txt 
-rw-r--r--. 1 root root 0 6月  23 20:20 test.txt
[root@localhost ~]# chmod 0 test.txt 
[root@localhost ~]# ll test.txt 
----------. 1 root root 0 6月  23 20:20 test.txt

3. test.txt 增加所属组的写权限,删除其他用户的 读 权限

[root@localhost ~]# ll test.txt
-rw-r--r--. 1 root root 0 6月  23 20:20 test.txt
[root@localhost ~]# chmod o-r,g+w test.txt 
[root@localhost ~]# ll test.txt
-rw-rw----. 1 root root 0 6月  23 20:20 test.txt

4.想要增加 backup.sh 文件的每种用户都可做写操作的权限,可以使用如下命令:

你也可以试试: chmod +w backup.sh 和chmod a+w backup.sh 是一样的

[root@localhost ~]# ll backup.sh
-rwxr-xr-x. 1 root root 176 23 20:20 backup.sh
[root@localhost ~]# chmod a+w backup.sh
[root@localhost ~]# ll backup.sh
-rwxrwxrwx. 1 root root 176 23 20:20 backup.sh

 

 

 

 


本文地址: https://www.vpsyi.com/linux-chmod.html