Автор |
Сообщение |
Zubok
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64 Сообщений: 13881 Откуда: Москва
|
Re: Компьютерный клуб
Ага… завтра на работе испытаю. А чем отличаются EOF и eof?
|
14 авг Вт, 2012 22:56:56 pm 226 |
|
|
Zubok
Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76 Сообщений: 1558 Откуда: Москва
|
Re: Компьютерный клуб
SNK писал(а): Ага… завтра на работе испытаю. А чем отличаются EOF и eof? expect eof - это команда expect, eof - событие, которого expect ждет, а конструкция это уже конструкция 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 |
|
|
parafin
Зарегистрирован: 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 |
|
|
ranger
Зарегистрирован: 17 янв Ср, 2007 15:05:40 pm 16 Сообщений: 2255
|
Re: Компьютерный клуб
почитал. английский убог, ага, есть над чем работать. ranger.
_________________ soulbrother of soulsister.
Andy! Remember us! We were your only Client!!!
Величие De/Vision недостижимо (с)
Типичный индастриал-Фронт242 вырос из Гоа, Гоагила, трансу брат родной. (c) ZABA
хомяк не при чем (с)
|
15 авг Ср, 2012 12:10:13 pm 227 |
|
|
Zubok
Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76 Сообщений: 1558 Откуда: Москва
|
Re: Компьютерный клуб
Я не фотографирую и DarkTable знаю только по одноразовому ознакомлению. Рекомендация попробовать вряд ли найдет отклик в сердцах, так как рабочая версия существует пока только под Linux. Можно, конечно, LiveCD запустить, но это не вариант. Ну не советовать же ставить Linux (обычно я всегда отговариваю людей от такого шага). Если хватит терпения переносить всех этих ненавистных пользователей с багрепортами и хватит упорства, то сделаешь порт под Mac OS X - будет эппловцам счастье и спасение от оков AppStore, да и анальный зонд несколько ослабит хватку. О, тут и Прокудина в списке вижу! На ЛОРе известный персонаж (ник AP). Цитата: Общение продолжается, занимаюсь портированием пары вещей (одна по работе, вторая по желанию) А не по желанию что делаешь? Ты под Non-disclosure agreement, наверное?
_________________ Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)
Последний раз редактировалось Zubok 15 авг Ср, 2012 12:35:52 pm 227, всего редактировалось 1 раз.
|
15 авг Ср, 2012 12:14:56 pm 227 |
|
|
SNK
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
parafin
Зарегистрирован: 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 |
|
|
ranger
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 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 |
|
|
parafin
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76 Сообщений: 1558 Откуда: Москва
|
Re: Компьютерный клуб
parafin писал(а): переменные в HEREDOC надо экранировать пиши \$pwd а не $pwd Ага, правильно уловил. Переменная $pwd - это переменная внутри expect, ее везде надо экранировать. А вот переменная, которая содержит точку монтирования (не знаю, как она зовется у Сереги), идет из внешнего скрипта, поэтому ее как раз не надо экранировать. И это, кстати, объясняет, почему у него при #!/usr/bin/expect работает, а при #!/bin/bash не работает. У него во втором случае пустое значение вместо пароля вставляется, поэтому авторизация как раз и не проходит. Цитата: Ещё вопрос почему \r а не \n и нафига фигурные скобки (хотя думаю это пофиг) Фигурные скобки в данном случае не нужны, потому что там одна команда - send. Но они и не мешают. Достаточно
_________________ Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)
|
15 авг Ср, 2012 19:10:27 pm 227 |
|
|
SNK
Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64 Сообщений: 13881 Откуда: Москва
|
Re: Компьютерный клуб
Вот оно что! expect не видел bash-переменные из-за того, что надо было их экранировать! Это многое объясняет… Завтра на работе попробую.
|
15 авг Ср, 2012 23:14:56 pm 227 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64 Сообщений: 13881 Откуда: Москва
|
Re: Компьютерный клуб
mount_webdav из-под рута не вообще не монтирует почему-то.
|
16 авг Чт, 2012 23:55:41 pm 228 |
|
|
SNK
Зарегистрирован: 06 мар Чт, 2003 13:11:19 pm 64 Сообщений: 13881 Откуда: Москва
|
Re: Компьютерный клуб
Из-под юзера ещё нужно потому что пароль лежит в его ключнице (spawn security…) Но даже если явно прописать все пути, натыкаюсь на следующую фишку - security не отдаёт пароль из юзерской ключницы по su. Это мегаправильно, но становится ясно, что этот скрипт не стоит включать в рутовый демон.
|
17 авг Пт, 2012 11:35:39 am 229 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
SNK
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 18 мар Вт, 2003 15:31:00 pm 76 Сообщений: 1558 Откуда: Москва
|
Re: Компьютерный клуб
SNK писал(а): Не отдает. Я же и говорю - это мегаправильно. Ключ зашифрован и доступен только данному юзеру. su под юзером видит в выдаче от security пустоту. Это понятно и это правильно, да. Цитата: И не монтирует, видимо, по той же причине, чтобы не было неправильных пермиссий. А вот это пока не очень понятно. В man ничего вообще не написано касательно тогоу, от кого можно, а от кого нельзя запускать mount_webdav. Написано только про то, с какими правами монтируется.
_________________ Чат настоящих дИпИшЫстов (вбивай любой ник и говори!)
|
17 авг Пт, 2012 18:34:16 pm 229 |
|
|
SNK
Зарегистрирован: 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 |
|
|
Zubok
Зарегистрирован: 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 |
|
|
|
Кто сейчас на форуме |
Сейчас этот форум просматривают: Bing [Bot] и гости: 18 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|