LINUX.ORG.RU

fstab и bash

 


0

1

Суть:

После установки Debian/Ubuntu, пользователь запускает скрипт script.sh, в результате которого, в конец файла fstab копируется строчка по умолчанию: //10.3.75.8/обменник /mnt/Share cifs domain=mydomen.ru,username=Sasha,password=tytparol,iocharset=utf8,auto,users,file_mode=0777,dir_mode=0777 0 0

делается это так echo «//10.3.75.8/обменник /mnt/Share cifs domain=mydomen.ru,username=Sasha,password=tytparol,iocharset=utf8,auto,users,file_mode=0777,dir_mode=0777 0 0» >> /etc/fstab и сразу же предлагается изменить в ней параметры на нужные...

а потом изменять в ней переменные, на нужные pathshare=//10.3.75.8/обменник nameshare=/mnt/Share namedomain=mydomen.ru loginuser=Sasha passwduser=tytparol

После введённых пользователем конкретных значений, строка заменяется к примеру на //10.3.78.210/хлам /mnt/pomoyka cifs domain=domenchik.ru,username=Admin,password=zloyparol,iocharset=utf8,auto,users,file_mode=0777,dir_mode=0777 это если пользователь ввёл значения этих переменных в интерактивном режиме: Например: Введите полный путь, где лежит папка к общему ресурсу: //10.3.78.210/хлам Введите название этой папки: pomoyka Введите название домена: domenchik.ru Введите логин пользователя: Admin Введите пароль пользователя: zloyparol

и создаётся папка в /mnt так mkdir /mnt/pomoyka

Помогите мне с частью этого скрипта. Как написать это участок скрипта?

Помогите мне с частью этого скрипта. Как написать это участок скрипта?

Не скрипт тебе нужен, а внятное описание (инструкцию) составить с примером для пользователя, чтобы он вводил простые команды, типа echo, но со своим содержимым. Скрипт в данном случае - от лукавого.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это не задание на лабораторную работу! Я работаю в организации, понимаю в bash кое-что, у меня огромный скрипт в bash. Но именно этот кусок не знаю как реализовать. Есть кто знающий, напишите кусочек, нет - то прошу не умничать.

silenduhom
() автор топика
Ответ на: комментарий от Deleted

Именно скрипт, я допиливаю postinstall.sh и работаем в Astra Linux Special Edition 1.6. Пишу на bash, хочу увидеть этот учаток кода на bash от знатоков

silenduhom
() автор топика
Ответ на: комментарий от KennyMinigun

read знаю, меня интересует полная реализация вставки переменных в строку, передача параметров строки в файл. Короче нужен не совет, а 20 строчек спеца, а не читай read, читай echo и т.п.

silenduhom
() автор топика
Ответ на: комментарий от silenduhom

Если вам нужен псевдографический интерфейс с формами и полями, то смотрите в сторону dialog.

anonymous
()
Ответ на: комментарий от silenduhom

Короче нужен не совет, а 20 строчек спеца

Такое уже в /job/ ;-)

KennyMinigun ★★★★★
()
Ответ на: комментарий от anonymous

Мне не нужна графика в GUI, мне достаточно просто в терминале (консе вести интерактив). Блин, давайте проще. 1. Введите а а= text1 2. Пользователь ввел a фраза заменила в текстовый файл слово text 2 на text1

Так понятно? Напишите уже эти строчки кода, а то такое ощущение, что я общаюсь с людьми которые слышали о bash но не писали реальный скрипт на нём

silenduhom
() автор топика
Ответ на: комментарий от silenduhom

И да, писать логин и в особенности пароль в открытом виде в /etc/fstab небезопасно.

Лучше использовать файл с credentials:

cat /root/.smbcred
username=user
password=secret
И тогда в /etc/fstab прописать:
//ip/share  /mnt_point  cifs  credentials=/root/.smbcred  0 0

Во-вторых, если у вас в astra linux используется systemd, да даже если и не используется, то прописывание монтирования сетевых файловых систем в /etc/fstab может быть чревато проблемой.

Потому как в случае systemd монтирование сетевых файловых систем может происходить ещё на этапе, когда не подняты сетевые интерфейсы, т.к. systemd запускает всё асинхронно, поэтому для монтирования сетевых файловых систем нужно писать специальные Unit`ы и в их зависимостях прописывать условие запуска только после того, как сеть станет online.

Аналогично и в случае rc системы инициализации.

anonymous
()
Ответ на: комментарий от silenduhom

Напишите шаблон файла с заменой ключевых параметров на некоторые слова.

К примеру:

//IP_ADDR/SHARE_NAME  /MOUNT_POING  cifs  credentials=/root/.smbcred  0 0
Поместите в файл и делайте что-то вроде:
echo "Input IP Addr:"
read ip_addr
cp template /tmp/
sed -i "s/IP_ADDR/$ip_addr/" template
Либо можно сделать
echo "Input IP Addr:"
read ip_addr
echo "//${ip_addr}/SHARE_NAME  /MOUNT_POING  cifs  credentials=/root/.smbcred  0 0"
Но это всё лучше проверять regexp и писать даже не на bash.

anonymous
()

делается это так echo «//10.3.75.8/обменник /mnt/Share cifs domain=mydomen.ru,username=Sasha,password=tytparol,iocharset=utf8,auto,users,file_mode=0777,dir_mode=0777 0 0» >> /etc/fstab и сразу же предлагается изменить в ней параметры на нужные...

А нужно наоборот, в начале считать переменные, проверить, если пользователь ввёл, скажем пустую строку, то оставить то, что было изначально. После ввода переменных сформировать строку и только потом, уже сформированную, вывести.

anonymous
()
Ответ на: комментарий от anonymous

А в идеале и проверить, что с введёнными параметрами ресурс подключается и если всё успешно, то отмонтировать его и записать параметры.

anonymous
()
Ответ на: комментарий от silenduhom

допиливаю postinstall... Пишу на bash

postinst не на bash (это конечно если как положенно делать). И если делаешь postinst надо предусмотреть prerm. Но в твоём случае, это всё заведомо «гнилой» вариант. Удачи.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.