美文网首页
linux下chmod(): Operation not per

linux下chmod(): Operation not per

作者: DragonersLi | 来源:发表于2020-12-11 22:19 被阅读0次

查看thinkphpruntime下的log错误日志:12_error.log内容有条如下:

[ error ] [2]chmod(): Operation not permitted[/www/wwwroot/xxx/application/common.php:791] 

打开common.php找到791行:chmod($dir,0777);更改权限报错!

/**
 * 记录日志
 * @param $name 文件名称
 * @param $data 记录内容
 * @return bool|int 写入字符长度
 */
function dlog($name,$data)
{
    $day = date("Y-m-d");
    $name = empty($name)?$day:$name;
    //$dir = LOG_PATH . $day . "/";
    $dir = ROOT_PATH.'logs'.DS.$day.DS;
    is_dir($dir) || @mkdir($dir, 0777, true);
    @chmod($dir, 0777);//更改权限【此行791报错】
    $file = $dir . $name.".log";
    $content = date("H:i:s") . "     " . json_encode($data, JSON_UNESCAPED_UNICODE) . "\r\n";
    return @file_put_contents($file, $content, FILE_APPEND);
}

ls -al查看logs目录为root用户组的root用户;

[root@xxxxxx]# ls -al
total 152
drwxrwxrwx  11 root root  4096 Oct 19 16:44 .
drwxr-xr-x   6 root root  4096 Dec  4 17:11 ..
-rwxr-xr-x   1 www  www    479 Mar 26  2020 404.html
-rwxrwxrwx   1 root root  1339 Jun  3  2020 alipayCertPublicKey_RSA2.crt
-rwxrwxrwx   1 root root  5130 Jun  3  2020 alipayRootCert.crt
-rwxrwxrwx   1 root root  1683 Jun  3  2020 appCertPublicKey.crt
drwxr-xr-x   7 root root  4096 Nov 25 13:23 application
-rwxrwxrwx   1 root root  1124 Jul  2  2019 build.php
-rwxrwxrwx   1 root root  1084 May 13  2020 composer.json
-rw-r--r--   1 root root 48406 May 13  2020 composer.lock
drwxrwxrwx  15 root root  4096 Aug 27 17:45 extend
-rwxr-xr-x   1 www  www      1 Mar 26  2020 .htaccess
-rwxr-xr-x   1 www  www   1079 Mar 26  2020 index.html
drwxrwxrwx 235 root root 12288 Dec 11 00:00 logs
drwxrwxrwx   6 root root  4096 Nov 20 10:14 public
-rwxrwxrwx   1 root root    26 Jul  2  2019 robots.txt
drwxrwxrwx   5 www  www   4096 Sep 26 21:43 runtime
drwxr-xr-x   5 root root  4096 Nov 25 13:24 themes
-rwxrwxrwx   1 root root   771 Oct 13  2019 think
drwxrwxrwx   5 root root  4096 Oct 14  2019 thinkphp
-rw-r--r--   1 root root    42 Nov 24 17:07 .user.ini
drwxrwxrwx  18 root root  4096 Jul  8 11:29 vendor
drwxr-xr-x   2 root root  4096 Jul  3 15:41 .vscode
-rwxrwxrwx   1 root root   678 Jul  2  2019 web.config

总结:root用户执行chmod报错,更改权限为其它用户组的用户报错解决!

# chmod -R 777 logs/ 第一步执行此命令发现没用,报错依旧
drwxrwxrwx 235 root root 12288 Dec 11 00:00 logs


#chown -R www logs/ 更改用户为www
drwxrwxrwx 235 www  root 12288 Dec 11 00:00 logs



#chgrp -R www logs/ 更改用户组为www
drwxrwxrwx 235 www  www  12288 Dec 11 00:00 logs


直接更改用户和用户组chown -R www:www public/

相关文章

网友评论

      本文标题:linux下chmod(): Operation not per

      本文链接:https://www.haomeiwen.com/subject/iqdprxtx.html