Выставление прав доступа на файлы и папки (CHMOD) после загрузки на сервер

  • Автор темы Автор темы SAW
  • Дата начала Дата начала

SAW

Client
Регистрация
05.05.2011
Сообщения
148
Реакции
14
Баллы
18
Собственно учусь загружать на FTP сервер блоги. Соответственно возникла проблема - как выставлять прав доступа на файлы и папки/подпапки и файлы в них (CHMOD)?
 
Собственно учусь загружать на FTP сервер блоги. Соответственно возникла проблема - как выставлять прав доступа на файлы и папки/подпапки и файлы в них (CHMOD)?
Через C# сниппет
С использованием переменных:
Код:
Развернуть Свернуть Копировать
ZennoPoster.FtpChmode(project.Variables["IP"].Value, 21, "FTP", project.Variables["login"].Value, project.Variables["password"].Value, project.Variables["proxy"].Value, project.Variables["ftp_path"].Value, "774");
Без переменных:
Код:
Развернуть Свернуть Копировать
ZennoPoster.FtpChmode("IP_сервера", 21, "FTP", "login", "password", "proxy(можно оставить пустые кавычки)", "Путь_до_папки_или_к_файлу_на_сервере", "774");
 
  • Оценить
Реакции: SAW
Получается под каждый файл/папку нужно создавать отдельный экшн с такой строкой?
Пути до папок или файлов можно брать из переменной (напр. ftp_path) и прописать так:
project.Variables["ftp_path"].Value
т.е. как в первом примере.
И далее возвращаться к этому экшену.
 
  • Оценить
Реакции: SAW
Через C# сниппет
С использованием переменных:
Код:
Развернуть Свернуть Копировать
ZennoPoster.FtpChmode(project.Variables["IP"].Value, 21, "FTP", project.Variables["login"].Value, project.Variables["password"].Value, project.Variables["proxy"].Value, project.Variables["ftp_path"].Value, "774");
Без переменных:
Код:
Развернуть Свернуть Копировать
ZennoPoster.FtpChmode("IP_сервера", 21, "FTP", "login", "password", "proxy(можно оставить пустые кавычки)", "Путь_до_папки_или_к_файлу_на_сервере", "774");
Здравствуйте! Воспользовался данным снипетом. При работе выдает такую ошибку:
"Ошибка изменение атрибутов на Ftp узел aiseka.noads.biz. Возможно FTP узел не поддерживает данную возможность. System.IndexOutOfRangeException: Индекс находился вне границ массива.
Что может быть не так?
Обычным FTP клиентом права меняются без проблем.
 
Последнее редактирование:
Сорри, моя не внимательность. Значение у переменных были пустые.
 
И все же есть вопрос. Как в снипете с использованием переменных указать что используется сокс прокси?
 
Я почему то прицепился к этой строке project.Variables["proxy"].Value вместо того что бы в переменной указать что прокси будет сокс. :)
 
Люди, подскажите по chmod, в общем у меня программа всё вроде пишет выполнено, но на сервере права на папку не меняются при этом. Кто-то с такой проблемой сталкивался? Код делаю такой:
Код:
Развернуть Свернуть Копировать
ZennoPoster.FtpChmode("Ipсервера моего", 21, "FTP", "ЛогинФТП", "ПарольМой", "", project.Variables["server_Path"].Value, "777");
Где server_Path это переменная в которую я кладу путь вот такого вида: /www/{-Variable.Domen-}/oc-content/uploads/

Где uploads это как раз та папка которой надо выставить права 777.
Пустые кавычки это прокси, т.е. их отсутствие.
Где собственно ошибка? Может нужно как-то путь обрабатывать? Ну там слеши экранировать или что-то еще...
 
Последнее редактирование:
Кстати, может вообще есть другой способ какой-то выставлять права на папки на сервере, не через код C# ?
 
Людиии, есть тут кто живой?
 
Обычным FTP клиентом права на папки на сервере меняются?
 
Обычным FTP клиентом права на папки на сервере меняются?
Здравствуйте, спасибо что откликнулись, а ведь вы правы, похоже что обычным FTP клиентом я тоже не могу поменять права, ошибка выходит: "550 CHMOD 777 uploads: Operation not permitted"
Странно...
 
Обращайтесь к хостеру почему так.
 
Обращайтесь к хостеру почему так.
Да у меня свой сервер. Я в общем через панель ISP manager обойти решил эту проблему. А вообще дело в том что надо заходить от имени рута, потому что даже в панели управления если не от рута, то права не могу поменять. А через SFTP я не знаю как в C# сделать. Там надо вместо FTP поставить SFTP или sFTP и порт наверное поменять на 22, да? Ну логин, пароль и так понятно что меняем.
 
на директорию import пытаюсь поставить права 777

ZennoPoster.FtpChmode("IP", 22, "sFTP", "root", "pass", @"/../home/www/domain/import", "777");


Тип Время Сообщение
23:18:00 Компиляция кода Ошибка в действии "CS1501" "Ни одна из перегрузок метода "FtpChmode" не принимает "7" аргументов". [Строка: 0; Cтолбец: 1]
 
@sergodjan66 Пожалуйста, выделите чуть чуть время на тест установки прав на директорию
воспользовался данный кодом. ZennoPoster.FtpChmode("IP_сервера", 22, "sFTP", "login", "password", "proxy(можно оставить пустые кавычки)", "Путь_до_папки_или_к_файлу_на_сервере", "774");

У меня корневой каталог на сервере root поэтому пусть указываю так /../home/www/названиедомена/папка
но в логе

23:35:31 Ошибка изменение атрибутов на Ftp узел тут был айпи Объект /../home/www/тутбыладиректория не содержиться по указаному пути

попробовал для теста создать каталог под название "test" в директории /root и указал путь /test в итоге права установились, такое ощущение что баг зенки, не переходит на каталог ниже.
 
@sergodjan66 Пожалуйста, выделите чуть чуть время на тест установки прав на директорию
воспользовался данный кодом. ZennoPoster.FtpChmode("IP_сервера", 22, "sFTP", "login", "password", "proxy(можно оставить пустые кавычки)", "Путь_до_папки_или_к_файлу_на_сервере", "774");

У меня корневой каталог на сервере root поэтому пусть указываю так /../home/www/названиедомена/папка
но в логе

23:35:31 Ошибка изменение атрибутов на Ftp узел тут был айпи Объект /../home/www/тутбыладиректория не содержиться по указаному пути

попробовал для теста создать каталог под название "test" в директории /root и указал путь /test в итоге права установились, такое ощущение что баг зенки, не переходит на каталог ниже.

Да, подтверждаю проблему.
В будни постараюсь спросить программистов.
 
  • Оценить
Реакции: udder
на директорию import пытаюсь поставить права 777

ZennoPoster.FtpChmode("IP", 22, "sFTP", "root", "pass", @"/../home/www/domain/import", "777");


Тип Время Сообщение
23:18:00 Компиляция кода Ошибка в действии "CS1501" "Ни одна из перегрузок метода "FtpChmode" не принимает "7" аргументов". [Строка: 0; Cтолбец: 1]
Здесь пропущен аргумент для прокси.
 
  • Оценить
Реакции: udder
  • Оценить
Реакции: udder
По поводу сроков решения пока не могу сказать.
Судя по всему, проблему так и не решили. А может ей никто и не занимается, потому что три месяца решать то, что за пару дней максимум можно поправить - это перебор.
А наличие проблемы подтверждаю - Объект domen/import не содержиться по указаному пути
 
Судя по всему, проблему так и не решили. А может ей никто и не занимается, потому что три месяца решать то, что за пару дней максимум можно поправить - это перебор.
А наличие проблемы подтверждаю - Объект domen/import не содержиться по указаному пути
В 5.23.0.0 версии этот момент программисты правили:
[*] Исправлена работа FtpChmode.
Проверю и если что, передам опять программистам.
 
  • Оценить
Реакции: udder и avtostopshik
  • Оценить
Реакции: udder

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)