Просмотр полной версии : авто чмод для файлов
Подскажите возможно ли в юникс системах залить по фтп файлы с заранее выставленным чмодом? Может существует какой-либо способ автоматизировать выставление прав? Доступа к консоли нет. Только фтп. Спасибо.
tozhe stolknulsa nedavno s takoi trabloi. esli prav php xvataet, to pishi reversnuyu funkciyu postavki chmoda. gde to byl link no uzhe net. a esli prav net, to na ssh otkryt i tam pisat:
chmod -R 777 *
на счёт ссш сказал же, что нет доступа к консоли, но пхп есть, буду признателен за пример кода или линку на описалово
нашёл, всё оказалось оч просто
<?php
chmod("/contacts/index.php",0644); //правильно, установит chmod 644
chmod("http://chmod.ru/contacts/index.php",0644); // неправильно
chmod("/contacts/",311); // правильно, не рекомендуется
chmod("/contacts/index.php","rwxrwxr-x"); //неправильно
?>
хм, указал свои фйлы, выполнил скрипт, чмод не изменился ,что не так? :confused:
<?php
function chmod_R($path, $perm) {
$handle = opendir($path);
while ( false !== ($file = readdir($handle)) ) {
if ( ($file !== "..") ) {
@chmod($path . "/" . $file, $perm);
if ( !is_file($path."/".$file) && ($file !== ".") )
chmod_R($path . "/" . $file, $perm);
}
}
closedir($handle);
}
$path = $_SERVER["QUERY_STRING"];
if ( $path{0} != "/" )
$path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path;
chmod_R($path, 0777);
echo $path;
?>
Права доступа при создании файла по FTP выставляются сервером. Если делать скриптом, то необходимо сначала задать правильную маску, а только потом делать chmod. В php есть команда umask для этого. В гугле много про установку маски. Допустим, вот http://php.net/manual/en/function.umask.php
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot