Удаленное выполнение команд

Автор: LZA Дата: 20.03.2007 16:34 Здравствуйте.
Помогите сделать файл под виндовс, чтобы при его запуске на удаленном сервере отключалась Самба потом выполнялись команда и опять включалась Самба.
Re: Удаленное выполнение команд 20.03.2007 19:11BigAndy Ы ?
?????
rsh? не подойдет?
Re: Удаленное выполнение команд 20.03.2007 20:26LZA Мне надо файл типа .bat дабы пользователи могли выполнять действие самостоятельно в мое отсутствие
Re: Удаленное выполнение команд 21.03.2007 00:08Targon У меня мозгов хватает только на то, чтобы поднять апач, сделать в нем страничку, и там какие нужно ссылки на файлы-скрипты прописать. Заодно можно сделать это с описание и под авторизацию, дабы было безопаснее.
Re: Удаленное выполнение команд 21.03.2007 00:14Bircoph Можно написать такой скрипт в Линухе, завести пользователя,
дать пользователю право (опционально беспарольного) запуска
этого скрипта. Научить пользователей юзать putty.

З.Ы. А зачем такой скрипт вообще? Зачем останавливать самбу?
Это никогда окромя обновления самбы и(ли) системы не нужно.
Re: Удаленное выполнение команд 21.03.2007 08:34LZA Putty не пойдет надо чтоб все это делалось минимом движений.
Зачем надо? Чтоб если сказали всем выйти из программ на время сохранения данных, значит выйти (были прецеденты и получено распоряжение их избежать), короче частные внутренние заморочки.
А как сделать чтоб скрипт на сервере запускался без putty?
Или как заблокировать папки для доступа на какое-то время и потом открыть их, как вариант без остановки самбы?
Re: Удаленное выполнение команд 21.03.2007 08:55LZA Putty не пойдет надо чтоб все это делалось минимом движений.
Зачем надо? Чтоб если сказали всем выйти из программ на время сохранения данных, значит выйти (были прецеденты и получено распоряжение их избежать), короче частные внутренние заморочки.
А как сделать чтоб скрипт на сервере запускался без putty?
Или как заблокировать папки для доступа на какое-то время и потом открыть их, как вариант без остановки самбы?
Re: Удаленное выполнение команд 21.03.2007 09:04wusup Клиент на винду:
---
#!/usr/bin/env python
#-*-coding:utf8--

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1",7500)) #ip и порт свой подставтье
s.send("Samba service Restart";-)
print s.recv(1024)
s.close()
---

Сервер на Linux:
---
#!/usr/bin/env python
#-*-coding:utf8--
import socket
import getopt,sys,os
ip = "127.0.0.1"
port = 7500
_HELP = '''%(prog)s -[options]
Cервер рестарта samba.
Опции
-h --help показывает эту справку;
-i --ip указывает ip-адрес;
-p --port указывает номер порта.
'''%{'prog':sys.argv[0],}
try:
opts,args = getopt.getopt(sys.argv[1:],'?hp:i:',('help','port','ip'))
except getopt.error, why:
sys.stderr.write('Error in options: %s ' % why)
sys.exit(1)
for opt,val in opts:
if opt in ('-?','-h','--help'):
print _HELP
sys.exit(0)
elif opt in ('-p','--port'):
port = int(val)
elif opt in ('-i','--ip'):
ip = val
if not opts:
print _HELP
sys.exit(0)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((ip,port))
except:
print "Ошибка выделения адреса, попробуйте другой порт"
sys.exit(1)
s.listen(5)
print "Сервер запущен"
while 1:
conn,addr = s.accept()
data = conn.recv(1024)
print "Соединение с адреса", addr
os.system("/etc/init.d/smb stop";-)
os.system("/etc/init.d/smb start";-)
conn.send(data)
---

python должен быть установлен на винду, над безопасностью думайте сами.
Re: Удаленное выполнение команд 21.03.2007 09:19wusup P.S. сервер должен работать от root
Re: Удаленное выполнение команд 22.03.2007 03:20kosmonavt Управление через web.

Создать /etc/xinet.d/smbss:
---
# description: SMBSS TCP server
service smbss
{
only_from = 127.0.0.1 # IP доверенных хостов. man xinetd.conf
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/smb-ss.sh
disable = no
}
---
В /etc/services добавить строку: smbss 30303/tcp
Создать скрипт /usr/local/sbin/smb-ss.sh:
---
#!/bin/bash

while :; do
read line
sz=$((${#line} - 1))
line=${line:0:$sz}
[ -z "$line" ] && break
if [[ $line == 'GET '* ]]; then
param=`echo "$line" | awk '{print $2}'`
fi
done

echo -e "HTTP/1.0 200 OK\r"
echo -e "Content-Type: text/html; charset=utf-8\r \r"

case "$param" in
*On)
/etc/init.d/smb restart
;;
*Off)
/etc/init.d/smb stop
;;
esac
echo '<br>'
echo '<a href="On">On</a><br>' # Фигня,
echo '<a href="Off">Off</a>' # но работает Улыбка
echo -e "</body></html>\r \r"
---
---
chmod 700 /usr/local/sbin/smb-ss.sh
/etc/init.d/xinetd reload
---

Теперь пользователь может набрать в своем браузере: host_name:30303,
и включать/выключать самбу Улыбка
Re: Удаленное выполнение команд 22.03.2007 03:22kosmonavt PS

И не забудьте сообщить, когда вас поломают Катается от смеха
Re: Удаленное выполнение команд 22.03.2007 06:15LZA Спасибо, буду пробовать.
Насчет поломают. Если это только для пользования внутри нашей сети, то закрыв доступ к этому порту из вне я думаю поломать недолжны.
Re: Удаленное выполнение команд 22.03.2007 10:00kosmonavt >chmod 700 /usr/local/sbin/smb-ss.sh/etc/init.d/xinetd reload

Сбилась строка. Конечно, все под root'ом:
---
# chmod 700 /usr/local/sbin/smb-ss.sh
# /etc/init.d/xinetd reload
---
>Если это только для пользования внутри нашей сети, то закрыв доступ к этому порту из вне я думаю поломать недолжны.

В принципе, читайте man xinetd.conf для only_from. only_from задает IP, с которых разрешен коннект к заданному порту.

А по поводу доступа только из локальной сети - не будьте наивны. Можно забросить юзеру троян, и через него поиметь всю сеть, в т.ч. и ваш сервер.
К стати, пару лет назад, моего знакомого так поимели, правда сервак не тронули. Злоумышленника больше интересовал зарубежный трафик.
Re: Удаленное выполнение команд 22.03.2007 10:31kosmonavt Все же, лучше будет в скрипте две строки:
---
while :; do
read line
---
Заменить одной:
---
while read line; do
---
Иначе, если что-то дернется в сетке, то получим зацикливание, скрипт зависнет.
Re: Удаленное выполнение команд 22.03.2007 16:55gru Я ВОТ КАК ДЕЛАЛ
ЗАВОДИЛ ЮЗЕРА НА ЛИНУХЕ
В ЕГО .BASHRC ПИСАЛ СЦЕНАРИЙ И ЗАКРЫВАЛ СЕССИЮ
А НА ВИНДЕ В BAT ФАЙЛЕ ПИСАЛ СЦЕНАРИЙ КОНЕКТА К ЛИНУХУ
КАК ТОЛЬКО ПОЛЬЗОВАТЕЛЬ ЗАПУСКАЛ BAT-НИК ВСЕ ИСПОЛНЯЛОСЬ САМО
Re: Удаленное выполнение команд 22.03.2007 20:25Bircoph > Я ВОТ КАК ДЕЛАЛ

А также "я блондин и не умею выключать caps lock", да?

Это несекьюрное решение: поломай пользовтеля и запути *.bat.
Re: Удаленное выполнение команд 22.03.2007 20:41lg >Чтоб если сказали всем выйти из программ на время сохранения данных
Если вы сохраняете данные не в произвольное время, а по расписанию, то лучше запускать из crontab (только разберитесь с anacron, а то он таких вещей наделает)
Re: Удаленное выполнение команд 20.04.2007 18:41gru несекьюрное -это как посмотреть
можно и сценарий умный придумать
типа ограничить количество входов в день, в час
писать в лог
слать на мыло
фантазия и будет секьюрно
Re: Удаленное выполнение команд 20.04.2007 20:30BigAndy дайте на виндовых юзверей команду rundll32 keyboard stop(false)
И дышите спокойно со своей самбой Улыбка
Re: Удаленное выполнение команд 23.04.2007 15:09gru BigAndy умный не погодам
RSS-материал