Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> изменить чмод через фтп, возможно ssh через питон 
V
    Опции темы
kulibinka
Дата 3.2.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



И опять 25.
Разбираемся с фтп дальше smile

В чем проблема: при простановке чмода на файлы, которые я руками заливаю (1 случай), все чудесно.
2 случай: я пытаюсь проставить чмоды на файлы, которые скрипт заливал (точнее, файлы получаются при разархивировании их из архива под администратором), вываливается ошибка
Цитата

550 CHMOD 0777 название_файла: Operation not permitted


В тотал-командере все так же - в первом случае все успешно, во втором он рассказывает "невозможно изменить атрибуты отдаленных файлов".


Уточнение: чмоды изменяю с 755 на 777.
PM MAIL   Вверх
Daevaorn
Дата 3.2.2007, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 9
Всего: 70



Цитата(kulibinka @  3.2.2007,  22:08 Найти цитируемый пост)
файлы получаются при разархивировании их из архива под администратором

мне кажется это ключевой момент. что-то с настройками авторизации ftp сервера
PM MAIL WWW   Вверх
kulibinka
Дата 3.2.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Цитата

что-то с настройками авторизации ftp сервера


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

Но рут не имеет обычного фтп-доступа.
А пользователь ведь не рут чтобы иметь возможность изменять чмоды smile

И что с этим делать я пока не знаю...
PM MAIL   Вверх
Daevaorn
Дата 3.2.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 9
Всего: 70



Цитата(kulibinka @  3.2.2007,  22:56 Найти цитируемый пост)
Заливаю архив с движками, под рутом 

попробуй не под рутом их разархивировать. сделай специального пользователя, для заливания контента и его обработки
p.s. какой VDS?

PM MAIL WWW   Вверх
kulibinka
Дата 3.2.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



вдс на ruweb.net, самый базовый

Цитата

попробуй не под рутом их разархивировать


я бы с радостью, да вот не умею smile
у рута стоит ispmanager, вот через него я все и разархивил.
хотя у пользователья есть доступ к ssh, а значит теоретически этот пользователь может разархивить...
но опять-таки, я пока не умею делать скрипты которые бы с ssh работали.

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

но вот как это сделать?

Добавлено @ 22:37 
По просьбе модератора продолжение решения проблемы тут http://forum.vingrad.ru/topic-135306.html
PM MAIL   Вверх
kulibinka
Дата 3.2.2007, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Итак, оказалось что если распаковывать под юзером через ssh то все отлично чмодится.
Подскажите пожалуйста через что в питоне можно быстренько войти через ssh и исполнить команду?

Что-то типа такого:
Цитата

user = ssh_login('server', 'login', 'pass')
user.command('unzip', 'myfile.zip')

но рабочее smile
PM MAIL   Вверх
Daevaorn
Дата 3.2.2007, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 9
Всего: 70



Цитата(kulibinka @  4.2.2007,  00:16 Найти цитируемый пост)
но рабочее  

Код

import getpass
import sys
import telnetlib

HOST = "localhost"
user = 'foo'
password = 'bar'

tn = telnetlib.Telnet(HOST)
tn.read_until("login:")
tn.write(user+"\n")

if password:
    tn.read_until( "Password:" )
    tn.write( password+"\n" )
tn.write( "unzip myfile.zip\n" )
tn.write( "exit\n" )
print tn.read_all()

Как я уже говорил, лучше создать для этих операций специального пользователя. Под рутом это всё делать не хорошо.

Это сообщение отредактировал(а) Daevaorn - 4.2.2007, 00:23
PM MAIL WWW   Вверх
kulibinka
Дата 4.2.2007, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Я ведь не под рутом это делаю а под пользователем, на которого сайты эти прописаны.
Если под рутом то чмоды нельзя потом поменять...

Или я что-то не так понимаю?
PM MAIL   Вверх
Daevaorn
Дата 4.2.2007, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 9
Всего: 70



kulibinka, ну если у тебя VDS, то скорей всего ты имеешь доступ root и можешь делать всё что угодно на виртуальном сервере
PM MAIL WWW   Вверх
kulibinka
Дата 4.2.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



хмм
из Вашего кода сделал ф-ю 

Цитата

def telnet_unzip (connect_settings, file_to_unzip):
    HOST, user, password = connect_settings

    tn = telnetlib.Telnet(HOST)
    tn.read_until("login:")
    tn.write(user+"\n")

    if password:
  tn.read_until( "Password:" )
  tn.write( password+"\n" )
    tn.write( "unzip %(s)\n"%file_to_unzip)
    tn.write( "exit\n" )
    print tn.read_all()


так вот, у меня она не пошла - вылазит ошибка

Цитата

Traceback (most recent call last):
  File "C:\Python24\Lib\site-packages\modules\my_ftp.py", line 175, in ?
    telnet_unzip (connect_settings, file_to_unzip)
  File "C:\Python24\Lib\site-packages\modules\my_ftp.py", line 148, in telnet_unzip
    tn = telnetlib.Telnet(HOST)
  File "C:\Python24\lib\telnetlib.py", line 208, in __init__
    self.open(host, port)
  File "C:\Python24\lib\telnetlib.py", line 237, in open
    raise socket.error, msg
socket.error: (10061, 'Connection refused')



PM MAIL   Вверх
kulibinka
Дата 4.2.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



зайти через телнет также не удалось и из 
Цитата

cmd
telnet
open мой_айпишник


ошибка
Цитата

Подключение к мой_айпишник...Не удалось открыть подключение к этому узлу, на порт 23: Сбой подключения


Извините за ламерские вопросы, но "А телнет он точно должен быть"?

У меня в правах юзера стоит все что возможно
Цитата

Доступ к shell  
 SSL  
 PHP как модуль Apache  
 PHP как CGI  
 PHP как FastCGI  
 CGI  
 SSI  

, но возможно этого недостаточно и нужно еще что-то включить?

Это сообщение отредактировал(а) kulibinka - 4.2.2007, 14:25
PM MAIL   Вверх
kulibinka
Дата 5.2.2007, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



нашел способ в лоб - использовать plink http://the.earth.li/~sgtatham/putty/0.53b/...Chapter7.html#7

Код

import os
in_ftp = ('host', 'user', 'pass')
host, user, passwrd = in_ftp

cmd = 'plink.exe %(host)s -l %(user)s -pw %(passwrd)s unzip my_file.zip' % globals()
os.system(cmd)


вооот...
только чересчур долго думает когда ему нужно что-то ввести (например когда такие файлы уже есть и он переспрашивает)

но вообще решение за рабочее сойдет...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.