Такая задача передо мной стоит.
Нужно сделать скриптик, который монтирует samba-шары (штук 5-6 где-то) автоматом.
Для монтирования нужны имя пользователя и пароль.
Шары везде одинаковые, а вот имя пользователя и пароль могут быть разные. Соответственно, они должны задаваться как параметры скрипта.
Имя пользователя в принципе можно задавать как ./myscript username, в качестве первого параметра. :)
А вот с паролем так делать не хочется - ибо светить в открытом виде...
Лучше каждый раз пусть спрашивает пароль, чтобы его ввести.
И, самое главное, чтобы пароль при вводе не отображался.
На чём скрипт писать - совершенно некритично. bash я знаю слабо. Можно хоть на bash/perl, хоть даже на C и скомпилить =) разницы, я думаю, особой не будет. Разве что скрипты редактировать удобнее, а так по сути не отличается.
Вообще на будущее хотелось бы знать, как на сях написать консольное приложение, запрашивающее пароль или не выводя его на экран, или в виде звёздочек. Простой scanf тут не подходит... Пригодится.
Да, и ещё один момент. Запуск mount.cifs зачем-то требует права рута. Если запускать /sbin/mount.cifs из-под юзверя - шара не монтируется. Почему - непонятно. Я, конечно, могу использовать sudo, но хотелось бы обойтись без него.
Скрипт с запросом пароля
a pam_mount не пойдет?
fiZik, какой pam_mount? Это вообще совсем из другой оперы...
Объясняю ситуацию. У нас в универе есть проводная сеть. Есть компьютеры, в домене. В домене у каждого пользователя есть аккаунт. И всё в шоколаде. И при логине шары монтируются.
А есть беспроводная сеть. К ней подключаются с ноутбуков/коммуникаторов. Имя пользователя и пароль там могут быть любыми, какие вздумаются... А в домене другие. А юзверю надо подключить шары, которые из беспроводной сети тоже доступны.
И надо этот процесс автоматизировать, чтобы не объяснять каждому, что, и куда вбивать.
На сях проблемы решил. Отлично с этим справляется функция getpass() из заголовка unistd.h.
А вот с bash/perl проблема ещё актуальна...
fiZik, какой pam_mount? Это вообще совсем из другой оперы...
Объясняю ситуацию. У нас в универе есть проводная сеть. Есть компьютеры, в домене. В домене у каждого пользователя есть аккаунт. И всё в шоколаде. И при логине шары монтируются.
А есть беспроводная сеть. К ней подключаются с ноутбуков/коммуникаторов. Имя пользователя и пароль там могут быть любыми, какие вздумаются... А в домене другие. А юзверю надо подключить шары, которые из беспроводной сети тоже доступны.
И надо этот процесс автоматизировать, чтобы не объяснять каждому, что, и куда вбивать.
На сях проблемы решил. Отлично с этим справляется функция getpass() из заголовка unistd.h.
А вот с bash/perl проблема ещё актуальна...
man bash
Например, вот мой старый для ввода пароля из 9 символов.
export - т.к. он использовался где-то ещё.
#!/bin/bash
/bin/echo -n -e "Enter password 9: .........\b\b\b\b\b\b\b\b\b"
read pssw
export pssw
echo $pssw
Пётр.
drBatty, да, наверное. :) Мне просто подсказал кое-кто другой, не с этого форума, не было времени ещё проверить... Завтра обязательно проверю. В принципе, проблему можно считать решённой. Завтра отпишу в первом посте.
не было времени ещё проверить...
я проверил уже ;)
help read почитайте...
Peter, read без параметров будет выводить текст на экран, если не ошибаюсь.
Вы хотели ввода пароля, оно и вводит. Только Enter не забудьте нажать.
Сколько символов введёте до Enter, столько и будет.
И что здесь с утра случилось со временем?
Пётр.
read с каким-то параметром.
read -s