2010-04-12 2 views
2

Что касается прав доступа к файлам, когда вы используете скрипт php для распаковки tar-файла, кто является «владельцем» пользователя созданных файлов?Кто владеет файлом tar tar tar exp?

Мне интересно, был ли мой пользователь ftp, потому что я загрузил файл сценария? Или apache владеет файлом? Я знаю, что их флаги установлены для сохранения исходных разрешений, которые я не хочу (файлы, созданные и заархивированные кем-то другим). Я хочу, чтобы мой пользователь был создателем/владельцем файлов.

PS Его облачная среда. Ниже приведен код, который я загрузил. Я выполнил, посетив страницу в браузере. Я могу изменить права доступа к файлам в Dreamweaver ... Означает ли это, что я владелец?

exec('wget http://wordpress.org/latest.tar.gz '); exec('tar -xzvf latest.tar.gz');

ответ

5

Скорее всего, если работать с Apache, пользователь, который апач работает как.

+0

Есть много сценариев, где это не самый вероятный :) –

+0

@ Тим Да, это правда. –

3

Независимо от того, какой пользователь запускает PHP. Его либо имя пользователя системного веб-сервера, либо владелец веб-сайта (через suexec). Если он принадлежит серверу, вероятно, nobody или www-data.

Главное, что пользователь PHP (серверная сторона) работает как. Try this, чтобы узнать.

1

Вы можете сделать echo shell_exec('whoami'); И это выведет имя пользователя. Для меня он выдал apache

И да, apache будет владеть файлами. Например, если вы делаете что-то вроде этого, как корень:

[email protected]# cp /home/user/foo /home/user/foo2 
[email protected]# ls -l /home/user 
-rw-rw-r-- 1 user user  232 Apr 12 12:00 foo 
-rw-rw-r-- 1 root root  232 Apr 12 12:01 foo2 
+0

Нет, apache будет _not_ всегда иметь файлы. Существует такая вещь, как suexec :) Когда вы копируете файл как root, _root_ владеет целевым файлом, так как _root_ создал его. –

+0

kool, я побежал echo exec('whoami');, и он вернул моего пользователя ftp. Благодарю. – Ken

Смежные вопросы