Школа linux

  • я не хочю навя3ываться, но такое мне тоже выскакивало:

    Исходный код
    checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized  
    checking target system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized  
    checking build system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized  
    checking shell to use within Make...  checking for gcc... gcc checking whether the C compiler (gcc  ) works... yes 
    checking whether the C compiler (gcc  ) is a cross-compiler... no 
    checking whether we are using GNU C... yes 
    checking whether gcc accepts -g... yes 
    checking for building with threads... no (default) 
    checking for Tcl configuration... configure: warning: Can't find Tcl configuration definitions .: 1105: #: not found


    поставь [tcl], тогда конфиг сделает тебе Makefile


    П.С. варианты всегда есть :)

    NULL

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Gordon Freeman ().

  • @ Gordon Freeman


    Почему навязываться, я очень рад такой активной помощи, просто уже сам начал думать, что дохлое дело, решил не доставать...


    Установил [tcl] - билд для МакОси, кинул [gcc], т. к. отсутствовал... Но выплевывает следующее (никак не могу найти папку, куда он кинул [tcl]):



    Чего не хватает?!

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем FrankWhite ().

  • Разобрался! [expect] входит в базовый набор под МакОсью 8).


    @ Demo


    K сожалению сервер требует от меня пасфразы, скрипт не передает ее... Тут мои знания заканчиваются U..

  • Порыскал, немножко изменил скрипт от [Demo]:



    Все идет на ура... Еще раз всем спасибо...

  • FrankWhite молодец, что не сдался, так держать!


    В предложенном мной скрипте нужно было только выдаваемый сервером string - запроса изменить. Один сервер выдаёт просто - "Password: ", другой, к примеру, "user@server's password: " и.т.д... Или воспользоваться, совершенно верно, применённым тобой универсальным решением с использованием "wildcards" "*?assword:*".


    8< --------------------------------------------------
    #!/usr/bin/expect


    spawn ssh user@host


    expect "*?assword:*" {# в этой строке
    send "твой_пароль\r"
    } timeout {
    send_user "Error connecting"
    }
    interact
    8< --------------------------------------------------

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Demo ().

  • Если уже так сложилось, думаю можно и о безопасности задуматься... (хоть и МакОсь U. U., но вдруг кто уволокет файл...)


    Есть ли возможность создать шифрованный файл или передать пасфразу параметром из другой программы?!
    И еще вопросик, есть ли возможность запуска скрипта на заднем фоне (чтобы [Terminal] после запуска свернулся)?!

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем FrankWhite ().

  • FrankWhite, можешь попробовать следующий метод:

    • ssh-пароль сохраняешь в текстовом файле: echo "ssh_пароль" > sekret
    • шифруешь файл AES-алгоритмом: aescrypt -e -p AES-пароль sekret
    • сохраняешь зашифрованный файл на флэшке: cp sekret.aes /media/disk/
      Пожалуйста зарегистрируйся для просмотра данного изображения.
    • прописываешь в .bashrc следующую функцию:
      internet() {
      aescrypt -d -p AES-пароль /media/disk/sekret.aes # расшифровывает файл с паролем
      PASS=`cat /media/disk/sekret` # сохраняет ssh_пароль пароль в переменную PASS
      wipe /media/disk/sekret # бесследно стирает расшифрованный файл с паролем
      ~/.ssh/ssh_pwd $PASS # запускает скрипт подключения к ssh-серверу, передаёт пароль как параметр
      }


    Чтобы после изменения .bashrc не стартовать заново Shell, достаточно набрать следующую команду:. ~/.bashrc



    8< ---------------------- ssh_pwd ----------------------
    #!/usr/bin/expect


    set PASS [lindex $argv 0]


    spawn ssh user@host


    expect "*?assword:*" {
    send "$PASS\r"
    } timeout {
    send_user "Error connecting"
    }
    interact


    8< --------------------------------------------------


    Преимущество данного метода :

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



    P.S.: Метод конечно не ахти, но всё же, нигде нет прямых паролей.


    Инсталляция программы aescrypt:

    • wget Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    • tar -xvf aescrypt303_source.tar.gz
    • cd aescrypt303_source/
    • make
    • make install
  • Спасибо за совет и точнейшее описание!!


    Но после [make] получаю следующее:


    Сообщение было отредактировано 1 раз, последнее редактирование пользователем FrankWhite ().

  • FrankWhite, в исходниках отсутствует configure - файл, поэтому "environment paths" нужно выставить в ручную. Посмотри здесь: Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. .

  • Как я понял, достаточно ввести комманду:


    Исходный код
    export LDFLAGS="-L/usr/lib".


    Библиотека [iconv] уже стояла...


    Без результатов, ошибка осталась...

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем FrankWhite ().

  • Попробуй прикреплённый бинарик, может под твоей архитектурой всё-же запустится. Программа ведь простенькая, без излишних наворотов.

    Файлы

    • aescrypt.tar.bz2

      (15.09 kB, скачали 2 раз, последнее скачивание: )
  • sorry, вчера времени не было тебе толково ответить!
    Судя по ошибкам, которые тебе выдал компайлер, linker не может найти "iconv" библиотеку.
    Точнее сказать в ней реализованные "symbols" (функции - "iconv_open, iconv_close" и тип iconv_t)
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.
    Эта библиотека в линуксе стандартно встроена в систему, в mac, скорей всего, её нужно установить.


    Можешь попробовать следующее:
    #> wget Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. # загрузить библиотеку
    #> tar -xvf libiconv-1.12.tar.gz # распаковать
    #> cd /libiconv-1.12
    #> ./configure # создать Makefile
    #> make # скомпилировать

    если не хочешь интегрировать библиотеку в систему, достаточно переместить созданные libiconv.so,libiconv.so.2, libiconv.so.2.4.0 и iconv.h в папку с исходниками к программе "aescrypt"
    #> cp lib/.libs/libiconv.so lib/.libs/libiconv.so.2 lib/.libs/libiconv.so.2.4.0 include/iconv.h ~/aescrypt303_source


    создать в ручную object - файлы
    Пожалуйста зарегистрируйся для просмотра данного изображения.
    #> gcc -c aescrypt.c
    #> gcc -c aes.c
    #> gcc -c password.c
    #> gcc -c sha256.c


    после создания в папке появятся следующие файлы: aescrypt.o, aes.o, password.o, sha256.o


    Затем собрать object - файлы в исходную программу, указав где находится библиотека "libiconv.so", в которой реализованы функции "iconv_open, iconv_close", необходимые программе для конвертирования пароля в UTF-16LE формат.


    #> gcc -o aescrypt aescrypt.o aes.o sha256.o password.o ./libiconv.so


    Если программа удачно собралась, можешь проверит, находит ли программа библиотеку "libiconv.so"


    #> ldd ./aescrypt


    linux-gate.so.1 => (0xffffe000)
    libiconv.so.2 (0xb7ee5000)
    libc.so.6 => /lib/libc.so.6 (0xb7d72000)
    /lib/ld-linux.so.2 (0xb7fc5000
    )


    соответственно пользоваться программой
    #> ./aescrypt -e -p AES-пароль sekret


    под линуксом программа без проблем собралась

    Успехов!

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Demo ().

  • Demo спасибо, зэррр гуд U..


    Библиотеку [libiconv] я уже поставил, но ошибки выплевывал... Даже после ручной сборки по Твоей инструкции не удалось запустить скомпилированный бинарник... До этого заметил странность, мои библиотеки заканчиваются на [.dylib], переименовал вручную на [.so] и последовал эффект! Прога работает на ура!!


    Еще раз благодарю!!

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем FrankWhite ().

  • Появился еще вопрос к моддингу скрипта:
    есть ли возможность построить его так, что он проверяет, произошло ли соединение, если нет, тогда ждет, скажем 30 сек, и повторяет попытку соединения?!

  • вот набросал на скорую руку, скрипт пытается пинговать тобою деф. сервер (как пример тут [Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.]). Вот тока с местами где ты свои скрипт будешь вы3ывать, я не уверен, попробуй сам, куда его лучше поставить:

    NULL

  • Цитата

    Со слов пользователя andreas26
    привет всем.
    один вапрос как мне заинсталироватъ Javascript и Adobe Flash Player на линухминт


    Пробуй так

    Исходный код
    sudo apt-get install sun-jave6-jre flashplugin-nonfree