2014-11-17 2 views
2

manual говоритДействительно ли команда PHP link() требует повышенных привилегий в Windows?

Примечание: Для Windows только: Эта функция требует PHP для работы в повышенной режиме или с отключенным UAC.

Но на моей машине с Windows 8 я могу запустить mklink /H без повышенных привилегий, поэтому я не понимаю, почему PHP потребует этого. С другой стороны, если я запустил mklink без H, чтобы создать символическую ссылку, я должен получить повышенные привилегии, хотя это не комментируется в документах PHP для symlink().

У меня нет установки Windows на PHP, поэтому я не могу ее протестировать (и мне интересно, как это относится к Windows 7, Vista или тому подобное). Являются ли документы неправильными?

ответ

1

Вам не нужно быть запущен как администратор, чтобы создать жесткую ссылку. Тем не менее, в отличие от UNIX, вы должны получить do доступ для записи к цели ссылки.

Я бы предположил, что автор документа пытался создать жесткую ссылку на файл, доступ к которому имел только администратор, и поэтому неправильно сделал вывод, что доступ администратора необходим для создания жестких ссылок ,

+0

Спасибо. Это всегда было так, поскольку жесткие ссылки были введены в Windows? – user2667066

+0

У меня нет старых систем, на которых я могу проверить, но вряд ли это изменилось. –

1

Я проверил это на моей ОС Windows 8.1 машина, и он, кажется, работает нормально (работает через Apache/CGI)

<pre><?php 
var_dump(file_exists('f1')); 
var_dump(file_exists('f2')); 

var_dump(touch('f1')); 
var_dump(link('f1','f2')); 

var_dump(file_exists('f1')); 
var_dump(file_exists('f2')); 

var_dump(file_put_contents('f1', 'test')); 
var_dump(file_get_contents('f2')); 

Выход:

boolean false 
boolean false 
boolean true 
boolean true 
boolean true 
boolean true 
int 4 
string 'test' (length=4) 
+0

Чтобы уточнить, работает ли он как служба Windows? Если это так, то это, вероятно, работает с привилегиями учетной записи «system» (в основном суперпользователем) –

+0

@JonathanGray нет, его работает как пользовательский процесс. Также пыталась ссылка «php -r» ('f1', 'f2'); "из окна cmd и работала нормально. – Petah

+0

О, ладно. Это могут быть расширенные разрешения для Windows 8.1, которые я предполагаю. –

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