这是一个非常狭隘的问题(与“过于宽泛”的问题相反) 此脚本的输出
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$filename = '/tmp/password';
$handle = fopen($filename, 'r');
if ($handle)
{
$username = fgets($handle);
$password = fgets($handle);
echo 'user='.$username.'<br>';
echo 'pass='.$password.'<br>';
}
else
{
echo 'handle= is false<br>';
}
if (file_exists($filename))
{
echo "filename $filename exists<br>";
}
else
{
echo "filename $filename does not exists<br>";
}
$dir = '/tmp';
$files_of_tmp_dir = scandir($dir);
print_r($files_of_tmp_dir);
?>
导致显示以下内容
Warning: fopen(/tmp/password): failed to open stream: No such file or directory in /var/www/html/mydomain/read_credentials.php on line 8
handle= is false
filename /tmp/password does not exists
Array ( [0] => . [1] => .. [2] => httpd_lua_shm.23475 )
问题: 为什么只有一个用户文件'httpd_lua_shm.23475',howerver
此命令:
[root@newhostname tmp]# ls -l /tmp | wc -l
返回23。
和
ls -l /tmp
在这23个文件中不输出文件名'httpd_lua_shm.23475'。
这里有没有黑客,谁可以简单解释这种“过于宽泛”的行为? :)
好吧,只有悲惨的人没有读过这个问题,但谁只能投票。
UPD:
仔细阅读,问题(!)。 列为输出的单个文件不在/ tmp文件夹中,即使在root下也是如此。 root下的/ tmp文件夹中不存在“httpd_lua_shm.23475”。你在谈论权限。 stackoverflow中没有黑客?来吧! :)
UPD 2: 问题仅在/ tmp文件夹中说明。其他文件夹在工作方面也可以。要找出原因并张贴和回答。
答案 0 :(得分:1)
运行php脚本的用户在tmp
目录中具有与root不同的权限。