`
yuky1327
  • 浏览: 126580 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

再次谈谈linux下文件夹权限的问题

阅读更多
Linux的文件权限是linux能有如此安全性能的最大的保障之一,有朋友可能会知道,很多攻击windows的方法都是通过漏洞获取到创建用户的权限从而达到控制计算机的目的,在linux下,Root帐户有最大的权限,可以干任何事情,其他用户只能拥有自己的文件的所有权限和该改组成员赋予的文件的权限,下面开始对文件权限的一个说明。

读权限R。简单的说就是打开文件查看内容的权限,在web服务器中,若文件没有打开权限,则web服务器则视为该文件不存在,发送404 file not  found错误,用数字4表示。

写权限W。一个文件若没有写的权限,那么该文件则无法更改,文件夹若没有写权限,则该文件夹下无法创建新文件,用数字2表示。

执行权限X。程序文件若要执行,必须有执行权限,否则无法执行。打开一个文件夹也是执行,所以文件夹若没有执行权限,则无法被打开。用数字1表示。

谁拥有这个权限文件所有者组内用户公共用户
可读=4 0 0 0
可写=2 0 0 0
可执行=1 0 0 0
实际权限,纵向相加 0 0 0



公共用户为所有者和组内用户之外的用户,比如访问web时候,linux可能用公共的用户去读取文件,这里不妨理解成是访客所能操作的那个用户。

下面举例(再次提醒,文件夹和文件不一样):

文件所有用户可写: 666 (3类用户均可读写)
谁拥有这个权限 文件所有者 组内用户 公共用户
可读=4 4 4 4
可写=2 2 2 2
可执行=1 0 0 0
实际权限,纵向相加 6 6 6



接上面的,假设我们吧文件夹设置成0666会怎么样,结果很明显,因为该文件夹没有执行权限,无法被打开,所以设置成0666则无法被访问到。

文件夹只可文件所有者有全部权限,组内用户、公共用户可读和执行(755)。一般web根目录文件夹都要这样设置,才安全。再次提示:文件夹没有执行权限,则该用户无法打开。正常的服务器,若根目录权限也为0777,则会出现500错误
谁拥有这个权限 文件所有者 组内用户 公共用户
可读=4 4 5 4
可写=2 2 0 0
可执行=1 1 1 1
实际权限,纵向相加 7 5 5



如果php需要在某文件夹下创建文件,请把该文件的权限全部设置:即可都可写和可执行777
谁拥有这个权限 文件所有者 组内用户 公共用户
可读=4 4 4 4
可写=2 2 2 2
可执行=1 1 1 1
实际权限,纵向相加 7 7 7



为了安全起见,正常的php文件应该设置成:所有者可读可写,组用户可读,公共用户可读 644
谁拥有这个权限 文件所有者 组内用户 公共用户
可读=4 4 4 4
可写=2 2 0 0
可执行=1 0 0 0
实际权限,纵向相加 6 4 4



其他权限,请大家自行思考。

对于那些建议把所有文件和文件夹都设置成 777的人,我只能说你要么在误导别人,要么在残害新手!

使用方式 : chmod [-cfvR] [--help] [--version] mode file...

说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。

把计 :

mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本

范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt

将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt

将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt

将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *

此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。

范例:
chmod a=rwx file


chmod 777 file

效果相同
chmod ug=rwx,o=x file


chmod 771 file

原文出自:
http://wenson.iteye.com/blog/212739
http://www.storyday.com/html/y2009/2415_once-again-under-linux-to-talk-about-the-issue-of-folder-permissions.html
         
分享到:
评论

相关推荐

    Android 蘑菇街界面设计源码-IT计算机-毕业设计.zip

    Android是一种基于Linux的操作系统,广泛应用于智能手机和平板电脑。开发者使用Java或Kotlin语言,通过Android Studio集成开发环境(IDE)进行编程。源码中的每个文件都是构建应用程序不可或缺的部分,包括布局文件...

    untitled.zip

    在Linux环境下,可以使用命令行工具如`unzip`来解压ZIP文件。 在处理ZIP文件时,有一些常见的注意事项: 1. 压缩和解压缩过程中可能会影响文件的原始属性,比如时间戳、权限等,因此在处理重要文件时,要确保备份...

    nacos-server-1.4.0.zip

    2. **配置启动参数**:进入解压后的目录,找到`conf`文件夹下的`application.properties`文件。这里你可以根据实际需求配置Nacos的各项参数,如数据库连接信息、端口号等。 3. **启动Nacos**:在Nacos的根目录下,...

    宝塔部署电影网站的源代码

    3. 数据库管理:创建、修改、删除MySQL数据库,分配权限,管理数据库用户。 4. 文件管理:通过内置的FTP客户端或文件管理器,可以便捷地上传、下载、编辑服务器上的文件。 5. 安全设置:包括防火墙规则、SSL证书配置...

    Debian Packaging Tutoria(Debian 打包教程)

    Debian是Linux世界中一个非常重要的发行版,其软件包管理系统是其核心特色之一。Debian打包教程,正如标题所示,是一份详细指导如何创建和维护Debian软件包的文档。教程涵盖了从基础到高级的各种知识,对于想要为...

Global site tag (gtag.js) - Google Analytics