LinuxForum.Fans
Тема

Скрипт с запросом пароля

Автор: Iced 9 сообщений 4911 просмотров
#23596

Такая задача передо мной стоит.
Нужно сделать скриптик, который монтирует samba-шары (штук 5-6 где-то) автоматом.
Для монтирования нужны имя пользователя и пароль.

Шары везде одинаковые, а вот имя пользователя и пароль могут быть разные. Соответственно, они должны задаваться как параметры скрипта.
Имя пользователя в принципе можно задавать как ./myscript username, в качестве первого параметра. :)
А вот с паролем так делать не хочется - ибо светить в открытом виде...

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

На чём скрипт писать - совершенно некритично. bash я знаю слабо. Можно хоть на bash/perl, хоть даже на C и скомпилить =) разницы, я думаю, особой не будет. Разве что скрипты редактировать удобнее, а так по сути не отличается.
Вообще на будущее хотелось бы знать, как на сях написать консольное приложение, запрашивающее пароль или не выводя его на экран, или в виде звёздочек. Простой scanf тут не подходит... Пригодится.

Да, и ещё один момент. Запуск mount.cifs зачем-то требует права рута. Если запускать /sbin/mount.cifs из-под юзверя - шара не монтируется. Почему - непонятно. Я, конечно, могу использовать sudo, но хотелось бы обойтись без него.

#23604

a pam_mount не пойдет?

#23610

fiZik, какой pam_mount? Это вообще совсем из другой оперы...

Объясняю ситуацию. У нас в универе есть проводная сеть. Есть компьютеры, в домене. В домене у каждого пользователя есть аккаунт. И всё в шоколаде. И при логине шары монтируются.
А есть беспроводная сеть. К ней подключаются с ноутбуков/коммуникаторов. Имя пользователя и пароль там могут быть любыми, какие вздумаются... А в домене другие. А юзверю надо подключить шары, которые из беспроводной сети тоже доступны.
И надо этот процесс автоматизировать, чтобы не объяснять каждому, что, и куда вбивать.

На сях проблемы решил. Отлично с этим справляется функция getpass() из заголовка unistd.h.
А вот с bash/perl проблема ещё актуальна...

#24476
Flaming написал:
fiZik, какой pam_mount? Это вообще совсем из другой оперы...

Объясняю ситуацию. У нас в универе есть проводная сеть. Есть компьютеры, в домене. В домене у каждого пользователя есть аккаунт. И всё в шоколаде. И при логине шары монтируются.
А есть беспроводная сеть. К ней подключаются с ноутбуков/коммуникаторов. Имя пользователя и пароль там могут быть любыми, какие вздумаются... А в домене другие. А юзверю надо подключить шары, которые из беспроводной сети тоже доступны.
И надо этот процесс автоматизировать, чтобы не объяснять каждому, что, и куда вбивать.

На сях проблемы решил. Отлично с этим справляется функция getpass() из заголовка unistd.h.
А вот с bash/perl проблема ещё актуальна...

man bash

#24482

Например, вот мой старый для ввода пароля из 9 символов.
export - т.к. он использовался где-то ещё.

text

#!/bin/bash
/bin/echo -n -e "Enter password 9: .........\b\b\b\b\b\b\b\b\b"
read pssw
export pssw
echo $pssw

Пётр.

#24775

drBatty, да, наверное. :) Мне просто подсказал кое-кто другой, не с этого форума, не было времени ещё проверить... Завтра обязательно проверю. В принципе, проблему можно считать решённой. Завтра отпишу в первом посте.

#24825
Flaming написал:
не было времени ещё проверить...

я проверил уже ;)
help read почитайте...

#24651
Flaming написал:

Peter, read без параметров будет выводить текст на экран, если не ошибаюсь.

Вы хотели ввода пароля, оно и вводит. Только Enter не забудьте нажать.
Сколько символов введёте до Enter, столько и будет.

И что здесь с утра случилось со временем?

Пётр.

#24654
Flaming написал:
read с каким-то параметром.

read -s

Войдите или зарегистрируйтесь, чтобы ответить.