Новости :: Фотогалерея
DM Радио :: SYNTH Радио

 
   
Сообщения без ответов | Активные темы Текущее время: 28 мар Чт, 2024 19:19:35 pm 87



Начать новую тему Ответить на тему  [ Сообщений: 327 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11  След.
 Компьютерный клуб 
Автор Сообщение
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
А попробуй сам подмонтируй флешку какую-нибудь. Суть вроде та же. Или, чтобы был пароль, подмонтируй диск по NFS.


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

UPD. Серег, у меня все нормально. Как раз разблокировка шифрованного диска не моментальная, а время занимает. Если без expect eof, то скрипт тут же вылетает и не подключает шифрованное устройство в /dev/mapper, а если указать, то все нормально. Затем уже делаю монтирование, но уже без пароля. Покажи точно весь твой скрипт для шелла вместе с expect eof, но только имена и явки затри.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


14 авг Вт, 2012 18:52:54 pm 226
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Этот не монтирует, но в выдаче ничего особого не пишет:

Код:
#!/bin/bash

expect <<EOF
set timeout 30

#log_user 0

spawn security -q find-internet-password -gs webdav.nic.ru
expect -re "password: \"(.*)\"" {
set pwd $expect_out(1,string)
}
spawn mount_webdav -i https://webdav.nic.ru:1234/snk/ /private/tmp/snk_nic/
expect "Username: " {
 send "snk\r"
}
expect "Password: " {
 send "$pwd\r"
}
expect EOF


Вот его выдача:


Код:
MBPSNK:~ snk$ .bin/mount_nic.sh
spawn security -q find-internet-password -gs webdav.nic.ru
keychain: "/Users/snk/Library/Keychains/login.keychain"
class: "inet"
attributes:
    0x00000007 <blob>="webdav.nic.ru"
    0x00000008 <blob>=<NULL>
    "acct"<blob>="snk
*********
    "srvr"<blob>="webdav.nic.ru"
    "type"<uint32>=<NULL>
password: "*******"
spawn mount_webdav -i https://webdav.nic.ru:1234/snk/ /private/tmp/snk/
Username: snk
Password:
snk$


А этот код монтирует без проблем:


Код:
#!/usr/bin/expect

#expect <<EOF
#set timeout 30

#log_user 0

spawn security -q find-internet-password -gs webdav.nic.ru
expect -re "password: \"(.*)\"" {
set pwd $expect_out(1,string)
}
spawn mount_webdav -i https://webdav.nic.ru:1234/snk/ /private/tmp/snk_nic/
expect "Username: " {
 send "snk\r"
}
expect "Password: " {
 send "$pwd\r"
}
#expect EOF


Выдача та же, только в результате есть нужный mount.


14 авг Вт, 2012 20:46:22 pm 226
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
Этот не монтирует, но в выдаче ничего особого не пишет:

Код:
#!/bin/bash
expect <<EOF
set timeout 30
...
expect EOF


Ну вот как раз тут неправильно. Должно быть:

Код:
#!/bin/bash
expect <<EOF
set timeout 30
...
expect eof
EOF

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


14 авг Вт, 2012 20:54:25 pm 226
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Ага… завтра на работе испытаю. А чем отличаются EOF и eof?


14 авг Вт, 2012 22:56:56 pm 226
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
Ага… завтра на работе испытаю. А чем отличаются EOF и eof?


expect eof - это команда expect, eof - событие, которого expect ждет, а конструкция

Код:
expect <<EOF
...
EOF


это уже конструкция shell - перенаправление (в данном случае в expect). Описано тут и man bash (да, обрати внимание, что EOF должен быть в строке один и без пробелов сзади):

Код:
  Here Documents
       This type of redirection instructs the shell to  read  input  from  the
       current source until a line containing only delimiter (with no trailing
       blanks) is seen.  All of the lines read up to that point are then  used
       as the standard input for a command.

       The format of here-documents is:

              <<[-]word
                      here-document
              delimiter
      ...

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


15 авг Ср, 2012 0:12:33 am 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 05 мар Вс, 2006 16:29:15 pm 63
Сообщений: 2946
Откуда: Moscow, Russia
Ответить с цитатой
Сообщение Re: Компьютерный клуб
parafin писал(а):
Общение продолжается, занимаюсь портированием пары вещей (одна по работе, вторая по желанию) :)

Вот собственно что я делаю по желанию: http://www.darktable.org/2012/08/bringi ... e-to-os-x/
Теперь я официально состою в команде разработчиков (http://www.darktable.org/contact/). Софтина очень классная, использую её для обработки raw фоток уже пару лет, так что кому это актуально, рекомендую попробовать.

_________________
"Does believing you're the last sane man on the planet make you crazy? 'Cause if it does, maybe I am."
"You see, the thing that makes sense of this crazy world is rock and roll"


15 авг Ср, 2012 0:45:55 am 227
Профиль WWW

Зарегистрирован: 17 янв Ср, 2007 15:05:40 pm 16
Сообщений: 2255
Ответить с цитатой
Сообщение Re: Компьютерный клуб
parafin писал(а):
parafin писал(а):
Общение продолжается, занимаюсь портированием пары вещей (одна по работе, вторая по желанию) :)

Вот собственно что я делаю по желанию: http://www.darktable.org/2012/08/bringi ... e-to-os-x/
Теперь я официально состою в команде разработчиков (http://www.darktable.org/contact/). Софтина очень классная, использую её для обработки raw фоток уже пару лет, так что кому это актуально, рекомендую попробовать.


почитал. английский убог, ага, есть над чем работать.

ranger.

_________________
soulbrother of soulsister.

Andy! Remember us! We were your only Client!!!

Величие De/Vision недостижимо (с)

Типичный индастриал-Фронт242 вырос из Гоа, Гоагила, трансу брат родной. (c) ZABA

хомяк не при чем (с)


15 авг Ср, 2012 12:10:13 pm 227
Профиль
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
parafin писал(а):
Вот собственно что я делаю по желанию: http://www.darktable.org/2012/08/bringi ... e-to-os-x/

Софтина очень классная, использую её для обработки raw фоток уже пару лет, так что кому это актуально, рекомендую попробовать.


Я не фотографирую и DarkTable знаю только по одноразовому ознакомлению. Рекомендация попробовать вряд ли найдет отклик в сердцах, так как рабочая версия существует пока только под Linux. Можно, конечно, LiveCD запустить, но это не вариант. Ну не советовать же ставить Linux (обычно я всегда отговариваю людей от такого шага). Если хватит терпения переносить всех этих ненавистных пользователей с багрепортами и хватит упорства, то сделаешь порт под Mac OS X - будет эппловцам счастье и спасение от оков AppStore, да и анальный зонд несколько ослабит хватку. :)

Цитата:
Теперь я официально состою в команде разработчиков (http://www.darktable.org/contact/).


О, тут и Прокудина в списке вижу! На ЛОРе известный персонаж (ник AP).

Цитата:
Общение продолжается, занимаюсь портированием пары вещей (одна по работе, вторая по желанию) :)


А не по желанию что делаешь? Ты под Non-disclosure agreement, наверное? :)

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


Последний раз редактировалось Zubok 15 авг Ср, 2012 12:35:52 pm 227, всего редактировалось 1 раз.



15 авг Ср, 2012 12:14:56 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Жень, не работает ни фига. Испытал вот это:

Код:
#!/bin/bash

expect <<EOF
set timeout 30

spawn *********************
*****************************
expect "Password: " {
 send "$pwd\r"
}
expect eof
EOF


и в mount ничего не появляется…


15 авг Ср, 2012 12:35:39 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
и в mount ничего не появляется…


Попробуй sleep расставить между expect. Можно (и даже первым делом сделай это) со sleep в конце (вместо expect eof) поэкспериментировать, . То есть в конце поставить sleep 5 (на 5 секунд) или побольше и посмотреть, будет ли монтировать. А между expect можно расставить по 1 сек, но только не все сразу рассатвляй (главный принцип настройщика: "крути одну ручку"). Мне кажется, что твой скрипт прекращает выполнение раньше, чем у тебя монтируется диск, при этом убивая spawned процесс до его завершения. Вот как раз sleep позволит убедиться, что это именно из-за этого, а дальше искать лекарство. Хотя странно, что у тебя не работает "expect eof"

UPD: неправильно пример написал. Удалил его. Переделаю.
UPD2: Убрал пока с exp_continue. Рано с этим, надо диагноз сначала поставить.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


Последний раз редактировалось Zubok 15 авг Ср, 2012 13:45:06 pm 227, всего редактировалось 1 раз.



15 авг Ср, 2012 13:01:00 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 05 мар Вс, 2006 16:29:15 pm 63
Сообщений: 2946
Откуда: Moscow, Russia
Ответить с цитатой
Сообщение Re: Компьютерный клуб
ranger писал(а):
почитал. английский убог, ага, есть над чем работать.

ranger.

ranger, да я и по-русски то не особо писатель.
Zubok писал(а):
Я не фотографирую и DarkTable знаю только по одноразовому ознакомлению. Рекомендация попробовать вряд ли найдет отклик в сердцах, так как рабочая версия существует пока только под Linux. Можно, конечно, LiveCD запустить, но это не вариант. Ну не советовать же ставить Linux (обычно я всегда отговариваю людей от такого шага). Если хватит терпения переносить всех этих ненавистных пользователей с багрепортами и хватит упорства, то сделаешь порт под Mac OS X - будет эппловцам счастье и спасение от оков AppStore, да и анальный зонд несколько ослабит хватку. :)

Ещё вроде под солярку DT работает :) Под актуально я и имел в виду, что если кто юзает Linux и фотографирует, либо готов собрать из исходников на макоси.
Zubok писал(а):
А не по желанию что делаешь? Ты под Non-disclosure agreement, наверное? :)

да не, ну исходники я показать конечно не могу, а так это не секрет - http://www.ximea.com/, Linux уже более или менее допилен (мной), пришла пора OS X.

_________________
"Does believing you're the last sane man on the planet make you crazy? 'Cause if it does, maybe I am."
"You see, the thing that makes sense of this crazy world is rock and roll"


15 авг Ср, 2012 13:27:05 pm 227
Профиль WWW

Зарегистрирован: 17 янв Ср, 2007 15:05:40 pm 16
Сообщений: 2255
Ответить с цитатой
Сообщение Re: Компьютерный клуб
parafin писал(а):
ranger писал(а):
почитал. английский убог, ага, есть над чем работать.

ranger.

ranger, да я и по-русски то не особо писатель.


не уверен, что в этом есть что-то, чем можно гордиться.

ranger.

_________________
soulbrother of soulsister.

Andy! Remember us! We were your only Client!!!

Величие De/Vision недостижимо (с)

Типичный индастриал-Фронт242 вырос из Гоа, Гоагила, трансу брат родной. (c) ZABA

хомяк не при чем (с)


15 авг Ср, 2012 14:59:34 pm 227
Профиль
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Zubok писал(а):
SNK писал(а):
и в mount ничего не появляется…


Попробуй sleep расставить между expect. Можно (и даже первым делом сделай это) со sleep в конце (вместо expect eof) поэкспериментировать, . То есть в конце поставить sleep 5 (на 5 секунд) или побольше и посмотреть, будет ли монтировать. А между expect можно расставить по 1 сек, но только не все сразу рассатвляй (главный принцип настройщика: "крути одну ручку"). Мне кажется, что твой скрипт прекращает выполнение раньше, чем у тебя монтируется диск, при этом убивая spawned процесс до его завершения. Вот как раз sleep позволит убедиться, что это именно из-за этого, а дальше искать лекарство. Хотя странно, что у тебя не работает "expect eof"

UPD: неправильно пример написал. Удалил его. Переделаю.
UPD2: Убрал пока с exp_continue. Рано с этим, надо диагноз сначала поставить.


Расставил задержки. И выделенные красным не работают, перед вводом пароля таймаут есть, а потом - мгновенное завершение.

Цитата:
sleep 5
expect "Password: " {
send "$pwd\r"
}
sleep 5
expect eof
sleep 5
EOF


15 авг Ср, 2012 18:28:08 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 05 мар Вс, 2006 16:29:15 pm 63
Сообщений: 2946
Откуда: Moscow, Russia
Ответить с цитатой
Сообщение Re: Компьютерный клуб
переменные в HEREDOC надо экранировать
пиши \$pwd а не $pwd
Ещё вопрос почему \r а не \n и нафига фигурные скобки (хотя думаю это пофиг)

_________________
"Does believing you're the last sane man on the planet make you crazy? 'Cause if it does, maybe I am."
"You see, the thing that makes sense of this crazy world is rock and roll"


15 авг Ср, 2012 18:51:52 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
parafin писал(а):
переменные в HEREDOC надо экранировать
пиши \$pwd а не $pwd


Ага, правильно уловил. Переменная $pwd - это переменная внутри expect, ее везде надо экранировать. А вот переменная, которая содержит точку монтирования (не знаю, как она зовется у Сереги), идет из внешнего скрипта, поэтому ее как раз не надо экранировать. И это, кстати, объясняет, почему у него при #!/usr/bin/expect работает, а при #!/bin/bash не работает. У него во втором случае пустое значение вместо пароля вставляется, поэтому авторизация как раз и не проходит.

Цитата:
Ещё вопрос почему \r а не \n и нафига фигурные скобки (хотя думаю это пофиг)


Фигурные скобки в данном случае не нужны, потому что там одна команда - send. Но они и не мешают. Достаточно

Код:
expect
send
expect
send

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


15 авг Ср, 2012 19:10:27 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Вот оно что! expect не видел bash-переменные из-за того, что надо было их экранировать!
Это многое объясняет… Завтра на работе попробую.


15 авг Ср, 2012 23:14:56 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
Вот оно что! expect не видел bash-переменные из-за того, что надо было их экранировать!
Это многое объясняет… Завтра на работе попробую.


Только все наоборот. Башеские он видел. Он своих не видел. У тебя переменная pwd - это переменная expect, она внутри его программы определяется (set pwd...), а когда ты ее используешь в неэкранированном виде (т. е. $pwd), подставляется пустое значение из шелла. То есть все внутренние переменные expect, в которых используется $, надо экранировать, а те, которые из шелловского скрипта, те не надо. И вот это - set pwd \$expect_out(1,string) - тоже надо экранировать (слеш поставлен). Вообще, я думал, что ты security в bash-скрипте будешь запускать, а ты это в expect сделал.

Код:
Неэкранированная переменная подставляется из shell -> пустой пароль.
$ cat <<EOF
> send("$pwd\r")
> EOF
send("\r")

Потому что это переменная expect, ее надо экранировать.
$ cat <<EOF
> send("\$pwd\r")
> EOF
send("$pwd\r")

Точка монтирования передается из shell - экранировать не надо
$ MOUNTPATH=/mnt/webdav
$ cat <<EOF
> mount_webdav ... $MOUNTPATH
> EOF
mount_webdav ... /mnt/webdav


Код:
The format of here-documents is:

              <<[-]word
                      here-document
              delimiter
...
...

If word is unquoted,  all
lines  of  the here-document are subjected to parameter expansion, com‐
mand substitution, and arithmetic expansion.  In the latter  case,  the
character  sequence  \<newline> is ignored, and \ must be used to quote
the characters \, $, and `.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


15 авг Ср, 2012 23:19:50 pm 227
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Ни фига не работает из баша. Проверил насчет маскировки, сделал set login snk и потом в коде send "\$login\r" - всё нормально, без слеша логин не подцепляется. Но монтирование не происходит.

Вообще если можно обойтись только expect-шелом, я согласен. Мне важно, чтобы сработал следующий код, который работает в баше:

Цитата:
set mountdir "/private/tmp/snk_nic"
if [ ! -d "$mountdir" ]
then
mkdir $mountdir
fi


Пока все так:

Цитата:
invalid command name "!"
while executing
"! -d "$mountdir" "
invoked from within
"if [ ! -d "$mountdir" ]"
(file ".bin/mount_nic.sh" line 4)


16 авг Чт, 2012 11:28:26 am 228
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
Ни фига не работает из баша. Проверил насчет маскировки, сделал set login snk и потом в коде send "\$login\r" - всё нормально, без слеша логин не подцепляется. Но монтирование не происходит.


Покажи полностью скрипт, который не запускается, начиная от expect <<EOF до EOF, именно в таком виде, в каком он в башевском скрипте сделан. Желательно без упрощений и затираний. Паролей у тебя там все равно нет.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


16 авг Чт, 2012 13:52:16 pm 228
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Код:
#!/bin/bash

mountdir="/private/tmp/snk_nic"
if [ ! -d "$mountdir" ]
then
 mkdir $mountdir
fi

expect <<EOF
set timeout 30
#log_user 0
set login kozlov

spawn security -q find-internet-password -gs intra.nic.ru
expect -re "password: \"(.*)\"" {
set pwd $expect_out(1,string)
}
spawn mount_webdav -i https://intra.nic.ru:8889/projects/new/kozlov/ $mountdir/
expect "Username: " {
 send "\$login\r"
}
expect "Password: " {
 send "\$pwd\r"
}
expect eof
EOF


16 авг Чт, 2012 14:16:56 pm 228
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
set pwd $expect_out(1,string)


Серег, прочти повнимательнее предыдущий мой комментарий. Цитируемая строчка - проблемная. Экранируй $. Видишь, что у тебя в итоге приходит в expect?

Код:
$ cat <<EOF
> set pwd $expect_out(1,string)
> EOF
set pwd (1,string)

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


16 авг Чт, 2012 14:26:09 pm 228
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Всё, теперь работает.
Теперь надо запустить этот скрипит из-под рута, но чтобы процесс пошел из-под юзера snk (потому что скрипт запускается демоном, а демон работает из-под рута).

То есть как-то так:
root# su - snk -c ./mount_nic.sh

Но чего-то в этой строке не хватает:

Цитата:
couldn't execute "mount_webdav": no such file or directory
while executing
"spawn mount_webdav ....."


То есть где-то теряются пути что-ли?


16 авг Чт, 2012 15:58:21 pm 228
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
То есть где-то теряются пути что-ли?


man su:

Код:
     -l      Simulate a full login.  The environment is discarded except for HOME, SHELL, PATH, TERM, and
             USER.  HOME and SHELL are modified as above.  USER is set to the target login.  PATH is set to
             ``/bin:/usr/bin''.  TERM is imported from your current environment.  The invoked shell is the
             target login's, and su will change directory to the target login's home directory.

     -       (no letter) The same as -l.


PATH is set to "/bin:/usr/bin''. Полагаю, что mount_webdav по этим путям, которые получила PATH, у тебя не находится. Указывай тогда полный путь к программе. А зачем тебе запускать скрипт от юзера? Из-за mount_webdav? А с какими он правами монтирует, когда от суперпользователя запускается? В man написано сделующее:

Код:
     The user and group IDs for all files and directories are set to unknown, and the permissions default to
     read, write and execute for user, group and other.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


16 авг Чт, 2012 21:40:35 pm 228
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
mount_webdav из-под рута не вообще не монтирует почему-то.


16 авг Чт, 2012 23:55:41 pm 228
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Из-под юзера ещё нужно потому что пароль лежит в его ключнице (spawn security…)
Но даже если явно прописать все пути, натыкаюсь на следующую фишку - security не отдаёт пароль из юзерской ключницы по su.
Это мегаправильно, но становится ясно, что этот скрипт не стоит включать в рутовый демон.


17 авг Пт, 2012 11:35:39 am 229
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
Из-под юзера ещё нужно потому что пароль лежит в его ключнице (spawn security…)
Но даже если явно прописать все пути, натыкаюсь на следующую фишку - security не отдаёт пароль из юзерской ключницы по su.
Это мегаправильно, но становится ясно, что этот скрипт не стоит включать в рутовый демон.


А от рута security отдает пользовательский пароль? Если отдает, почему бы тебе не весь скрипт по su запускать, а только mount_webdav внутри expect? И надо понять, почему от рута не монтирует каталог. Что-нибудь в логах пишет по этому поводу?

И да, если надо от пользователя запускать, то проще весь скрипт в LaunchAgents положить и по тому же самому событию его запускать.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


17 авг Пт, 2012 12:55:59 pm 229
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Zubok писал(а):
SNK писал(а):
Из-под юзера ещё нужно потому что пароль лежит в его ключнице (spawn security…)
Но даже если явно прописать все пути, натыкаюсь на следующую фишку - security не отдаёт пароль из юзерской ключницы по su.
Это мегаправильно, но становится ясно, что этот скрипт не стоит включать в рутовый демон.


А от рута security отдает пользовательский пароль? Если отдает, почему бы тебе не весь скрипт по su запускать, а только mount_webdav внутри expect? И надо понять, почему от рута не монтирует каталог. Что-нибудь в логах пишет по этому поводу?

И да, если надо от пользователя запускать, то проще весь скрипт в LaunchAgents положить и по тому же самому событию его запускать.


Не отдает. Я же и говорю - это мегаправильно. Ключ зашифрован и доступен только данному юзеру. su под юзером видит в выдаче от security пустоту. И не монтирует, видимо, по той же причине, чтобы не было неправильных пермиссий.
Так что да, буду в ЛанчАгент класть. Но придётся дублировать код с ЛанчДемоном в том месте, где идёт проверка моего местонахождения. Я этого хотел избежать, но не получается.


17 авг Пт, 2012 16:48:12 pm 229
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
Не отдает. Я же и говорю - это мегаправильно. Ключ зашифрован и доступен только данному юзеру. su под юзером видит в выдаче от security пустоту.


Это понятно и это правильно, да.

Цитата:
И не монтирует, видимо, по той же причине, чтобы не было неправильных пермиссий.


А вот это пока не очень понятно. В man ничего вообще не написано касательно тогоу, от кого можно, а от кого нельзя запускать mount_webdav. Написано только про то, с какими правами монтируется.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


17 авг Пт, 2012 18:34:16 pm 229
Профиль WWW
Аватар пользователя

Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64
Сообщений: 13881
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
Короче, уже и так понятно, что раз пароль хранится у юзера, то и монтирование должно идти из-под него.
И раз это должно происходить через LaunchAgent, то мы уже не привязаны к тому событию (нужный WiFi), которое было обработано в LaunchDaemon.
А событие, по которому надо монтировать - это то, что я втыкаю в ноут на работе патчкорд, и на en0 появляется некий ip-адрес.

Как мне отловить это событие? Какой файл изменяется? Для вайфая я следил за /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist и /var/run/resolv.conf.


17 авг Пт, 2012 22:36:09 pm 229
Профиль WWW
Аватар пользователя

Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76
Сообщений: 1558
Откуда: Москва
Ответить с цитатой
Сообщение Re: Компьютерный клуб
SNK писал(а):
Как мне отловить это событие? Какой файл изменяется? Для вайфая я следил за /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist и /var/run/resolv.conf.


Серег, а я тебе уже давал ссылочку в этом прошлом сообщении (первая ссылка). :) Совершенно очевидно, что это жуткий костыль, но иного пути для launchd, насколько я понимаю, нет. Здесь launchd следит за всеми изменениями в сети, тупо отслеживая каталог /Library/Preferences/SystemConfiguration. Если что-то поменялось, то запускает скрипт, который определяет твое местоположение и что-то там нужное автору делает. А те файлы, за которыми мы следили в LaunchDaemons, давали возможность более конкретизированного события по изменениям в AirPort, что как бы избавляло нас от лишних запусков твоего демона по нерелевантным событиям.

Цитата:
Короче, уже и так понятно, что раз пароль хранится у юзера, то и монтирование должно идти из-под него.


А мне это не совсем понятно. То, что пароль хранится у юзера, то имеет отношение к security, а при чем тут mount_webdav? Он же не пользуется keychain вообще (или пользуется, если ты его без -i запускаешь?). Ты его (mount_webdav) от рута с ключом -i запускал? Вручную имя и пароль вбивал? Или ты пытаешься свой скрипт запустить от рута и ждешь монтирования при неполученном пароле? Вот этот момент мне не совсем ясен. То есть, монтирует ли он в интерактивном режиме от рута твой диск.

_________________
Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)


17 авг Пт, 2012 23:07:57 pm 229
Профиль WWW
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 327 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11  След.


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin.
Русская поддержка phpBB3