LINUX.ORG.RU

Мистика с файлами

 , ,


0

1

Что-то я не могу понять, где файл.
Сделал php-скрипт, в котором сгенерировал имя файла и записал в файл данные.
Ошибок нет. Вывел имя файла, решил посмотреть на сам файл в системе. Нет такого файла!
В PHP-скрипте прочитал из файла данные - всё работает.
А файла по-прежнему нет!
Вопрос: как так?

PHP-скрипт

<?php
ini_set('display_errors', 'on');
$fileName = sys_get_temp_dir() . '/pw.txt';
if ($f = fopen($fileName, 'a+')) {
    fwrite($f, 'pw!');
    fclose($f);
    if ($f = fopen($fileName, 'r')) {
        $s = fread($f, 100);
        echo $s, '<br />', $fileName;
        fclose($f);
    } else {
        die('cannot open file for reading');
    }
} else {
    die('cannot open file for writing');
}
?>

Вывод PHP-скрипта pw!pw!pw!pw!pw!pw!pw!pw!pw!
/tmp/pw.txt

Результат команды ls

~/www $ls -l /tmp/pw.txt
ls: невозможно получить доступ к /tmp/pw.txt: Нет такого файла или каталога
~/www $ls -l /tmp
итого 84
-rw-rw-rw- 1 ftpusr ftpusr     0 ноя 29 14:35 contentad_auth_token
-rw-rw-rw- 1 ftpusr ftpusr     0 ноя 29 14:34 contentad_log.txt
drwx------ 4 ftpusr ftpusr  4096 ноя 15 13:30 Google_Client
drwx------ 3 root   root    4096 ноя 10 09:23 systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-dovecot.service-DpGYWi
drwx------ 3 root   root    4096 ноя 10 09:23 systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-exim.service-pl3fMK
drwx------ 3 root   root    4096 ноя 29 14:23 systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-httpd.service-T9Lfzx
drwx------ 3 root   root    4096 ноя 10 09:23 systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-mariadb.service-RkaQ2z
drwx------ 3 root   root    4096 ноя 23 11:56 systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-named.service-NLS4Nd
drwx------ 3 root   root    4096 ноя 10 14:10 systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-nginx.service-tKcBUu
drwx------ 3 root   root    4096 ноя 10 09:23 systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-ntpd.service-j5VIGg
-rw------- 1 ftpusr ftpusr 49083 ноя 29 15:38 ycmd_45864_stderr_iWW5Gp.log
-rw------- 1 ftpusr ftpusr    34 ноя 29 09:08 ycmd_45864_stdout_z97hZ7.log



Последнее исправление: PeleWin (всего исправлений: 2)
Ответ на: комментарий от kostik87

Так ведь я как раз и вывел имя файла.
echo $s, '<br />', $fileName;

Результат: /tmp/pw.txt

PeleWin
() автор топика
Ответ на: комментарий от no-such-file

Вывел. Директория /tmp
Список файлов в директории привёл в исходном сообщении. Сгенерированного файла там нет...
Скрытые файлы тоже посмотрел - файла нет...

PeleWin
() автор топика
Ответ на: комментарий от PeleWin

Уже хотел было потешить свое ЧСВ, а ты тут сам уже ответ нашел, да еще и написал...Жестокий, бесчувственный человек :)

Oberstserj ★★
()

У меня такое с redis было. Тебе systemd создаёт дополнительную директорию в tmp. Судя по тому, что это у тебя PHP, готов поспорить твой файл где-то внутри systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-nginx.service-tKcBUu или systemd-private-0ac6e77c73f74e46b1e58a22c0c685de-httpd.service-T9Lfzx. Чтобы отключить такое поведение, добавь в соответствующий юнит (nginx или httpd) строчку PrivateTmp=False.

CYB3R ★★★★★
()
Последнее исправление: CYB3R (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.