新闻中心

如何使用chmod修改文件夹权限

作者 / 无忧主机 时间 2012-08-27 02:46:36

Chmod是什么?这是一个linux系统的权限设置命令。我们要修改站点目录文件权限,我们就可以用chmod这个命令进行修改。然而,使用php虚拟主机的用户是没有服务器管理权限的,那么我们修改文件权限该怎么做类?我们一般的做法是: A、使用FTP工具自带chmod功能,直接使用工具自带的权限设置功能,就可以完成设置。其原理,也是使用chmod命令进行赋权。这个是我们最常用的方法。 B、  使用php代码,通过php脚步中调用chmod,来实现对文件夹或文件的权限设置。这就是我们今天教程中要重点说明的地方。 无忧主机(www.51php.com)小编将用drupal来诠释chmod命令的使用,并通过翻译一篇drupal官方技术文档来说明,希望能够让您深刻了解chmod的应用。 译文: Drupal 6.x版本的话是可以使用Take_control模块来修改web服务器上文件/文件夹的权限的。 提醒:使用下文中中提到的脚本来修改文件/文件夹权限后,您是无法撤销设置的!所以处理起来要相当相当相当的小心。 什么情况下用脚本语言来修改权限比较好呢? 1、当使用FTP工具修改php虚拟主机文件夹目录文件权限失败。 2、当您在“/files”文件夹下,无法修改drupal脚本创建的目录。 上面两种情况的话可能有站长朋友们遇到过了,那么现在来看看解决方案吧。其实吧,说简单点呢就是告诉apache服务器归还文件/文件夹的管理权限。但是呢,机器它不是人,跟机器聊天当然要用它听的懂的语言啊!因为是站点的脚本创建的文件,当我们所在的用户群没有权限的话,别说是删除,移动都不太可能吧! 所以呢,适当的懂点php脚本语言的命令行对我们来说是个不错的选择,因为我们可以和机器沟通了!让它干什么,它就干什么!而我们要做的就是上传并运行,当然运行完后要移除,这个大家都懂的。下面我们就用php代码中应用chmod命令的实例:

<?php
`chmod -R a+w sites/default/files`;
?>
运行上面php脚本后的效果就是在您所在的群组的用户都拥有了对...sites/default/files下所有文件(包括文件夹)的写和删除权限,但实际操作中当然可以按照您自身的需要看定义。 如果说上面代码对文件夹的操作范围太小,而我们心里又想把站点上的所有文件改动改动呢?那就和无忧主机小编(www.51php.com)一起带着邪恶的念头继续看下面一段小代码。把下图中的代码复制到记事本中保存,并将文件名称为51php.php。改完后放在网站的根目录下,并在浏览器中输入http://www.域名.com/51php.php那这个邪恶的小代码就会以递归的方式让您网站的所有文件和文件夹都拥有写的权限。
<?php
file_fix_directory(dirname(__FILE__));
function file_fix_directory($dir, $nomask = array('.', '..')) {
if (is_dir($dir)) {
// Try to make each directory world writable.
if (@chmod($dir, 0777)) {
echo "<p>Made writable: " . $dir . "</p>";
}
}
if (is_dir($dir) && $handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $nomask) && $file[0] != '.') {
if (is_dir("$dir/$file")) {
// Recurse into subdirectories
file_fix_directory("$dir/$file", $nomask);
}
else {
$filename = "$dir/$file";
// Try to make each file world writable.
if (@chmod($filename, 0666)) {
echo "<p>Made writable: " . $filename . "</p>";
}
}
}
}

closedir($handle);
}
}
?>
注意:上述php脚步使用完后马上删除这个文件。 原文:http://drupal.org/node/34028   纯Linux环境下高端免备案【香港独立IP地址】 php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名

本文地址:https://www.51php.com/drupal/7868.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服