Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: BASH скрипт монтирования шары  (Прочитано 72704 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Onerus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
    • ИТ компания ТВОЙ МИР
BASH скрипт монтирования шары
« : 17 Февраля 2023, 11:43:59 »
Всем привет!
Имеется Ubuntu 22.04. Монтирование шары у меня было сделано через fstab, все корректно работает. Возникла задача монтировать шару при входе в систему, из-за того что несколько пользователей в системе и каждый работает в свой личной папке на шаре.
Написал скрипт, положил его в папку /usr/local/smb.sh, дал права
sudo chmod ugo+x /usr/local/smb.sh. Сам скрипт вида:
#!/bin/bash
sudo mount -t cifs //cloud.name.ru/home /home/admintm/home -o credentials=/home/admintm/.smbclient,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,uid=1000,gid=1000
Попробовал запустить его через терминал, шара примонтировалась.
sudo /usr/local/smb.shДал путь до скрипта в приложении автозапуска, ребутнул систему, ничего не отработало.
Рядышком положил скрипт, и так же добавил его в автозапуск, он корректно отработал
#!/bin/bash
echo "Hello world" > ~/file
Значит дело именно в моем скрипте.  :-[
Решил упросить монтирование шары до простого
Цитировать
#/bin/bash
mount.cifs //cloud.name.ru/home /home/admintm/home/ -o username=NAME,password=PASS>
Ручками через терминал стартанул, шара поцепилась. В автозапуске не отрабатывает.

Где ошибка у меня подскажите?

UPD. Скрипт автозагрузки такой
[Desktop Entry]
Type=Application
Exec=/usr/local/smb.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[ru_RU]=CIFS
Name=CIFS
Comment[ru_RU]=
Comment=
« Последнее редактирование: 17 Февраля 2023, 11:48:16 от Onerus »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6965
    • Просмотр профиля
Re: BASH скрипт монтирования шары
« Ответ #1 : 17 Февраля 2023, 12:55:16 »
Цитировать
Где ошибка у меня подскажите?
Кратко: везде.
« Последнее редактирование: 17 Февраля 2023, 14:12:05 от andytux »

Оффлайн Usermaster

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2681
    • Просмотр профиля
Re: BASH скрипт монтирования шары
« Ответ #2 : 17 Февраля 2023, 14:06:45 »
Через cron делали бы.
А чего это вы тут делаете, а?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6965
    • Просмотр профиля
Re: BASH скрипт монтирования шары
« Ответ #3 : 17 Февраля 2023, 14:11:47 »
Цитировать
Скрипт автозагрузки такой
Это не скрипт. Это так называемый десктоп-файл. В частности используется и для описания автозапуска.
Вполне достаточно строк:
[Desktop Entry]
Type=Application
Exec=/usr/local/smb.sh
X-GNOME-Autostart-enabled=true
Name=CIFS
Остальные необязательны, сомнительны или ошибочны.
Не сказал, где у тебя находится этот файл. Если находится в общесистемном каталоге, то может понадобится дополнительное указание, на какой стадии запускать:
X-GNOME-Autostart-Phase=ApplicationИногда автозапуск может срабатывать слишком рано, когда еще нет всех условий для правильной работы запускаемой программы. Даже если в пользовательском автозапуске, может понадобиться задержка (значение задержки в секундах):
X-GNOME-Autostart-Delay=4
Цитировать
...скрипт, положил его в папку /usr/local/smb.sh
Не запрещено. Но, если точно не знаешь, то зачем отсебятина. Почему не в /usr/local/bin. Bin как-раз придуман для исполняемых файлов. В этом случае не обязательно указывать полный путь. А в твоем случае полный путь обязателен.

Цитировать
Попробовал запустить его через терминал, шара примонтировалась.
Код: [Выделить]
sudo /usr/local/smb.sh
Потому что, судо запросил пароль, ты ввел, выполнилось. В автозапуске как будешь пароль вводить?
Здесь помимо как, еще встает вопрос, где будет судо?

Цитировать
#/bin/bash
mount.cifs //cloud.name.ru/home /home/admintm/home/ -o username=NAME,password=PASS>
А срабатывает этот скрипт без судо?
Сдается мне, что после "PASS" лишний символ, вполне возможна синтаксическая ошибка. Встает вопрос об окончательном конкретном виде скрипта.
« Последнее редактирование: 17 Февраля 2023, 14:22:19 от andytux »

Оффлайн Onerus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
    • ИТ компания ТВОЙ МИР
Re: BASH скрипт монтирования шары
« Ответ #4 : 17 Февраля 2023, 16:20:25 »
Это не скрипт. Это так называемый десктоп-файл. В частности используется и для описания автозапуска.
Он автоматически генерируется стандартной программой startup application в ubuntu. Приложение их складывает в /home/admintm/.config/autostart

Не запрещено. Но, если точно не знаешь, то зачем отсебятина. Почему не в /usr/local/bin. Bin как-раз придуман для исполняемых файлов. В этом случае не обязательно указывать полный путь. А в твоем случае полный путь обязателен.
В домашний каталог пользователя разрешено складывать подобные файлы?

Потому что, судо запросил пароль, ты ввел, выполнилось. В автозапуске как будешь пароль вводить?
Здесь помимо как, еще встает вопрос, где будет судо?
И как быть в данном случае что бы скрипт отработал при входе пользователя в систему?


А срабатывает этот скрипт без судо?
Сдается мне, что после "PASS" лишний символ, вполне возможна синтаксическая ошибка. Встает вопрос об окончательном конкретном виде скрипта.
Конечно срабатывает, видно же что просто не до конца скопировал с терминала строку. Правильный вариант:
Цитировать
#/bin/bash
mount.cifs //cloud.llctm.ru/distrib /home/admintm/Distrib/ -o username=NAME,password=PASS
Вариант вот этот то же не сработал.
#!/bin/bash
sudo mount -t cifs //cloud.name.ru/home /home/admintm/home -o credentials=/home/admintm/.smbclient,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,uid=1000,gid=1000

Что в итоге нужно сделать что бы скрипт при запуске срабатывал?

Пользователь добавил сообщение 17 Февраля 2023, 16:23:02:
Через cron делали бы.
Спасибо. По гуглю по данному варианту. Cron позволяет привязывать конкретные скрипты для конкретного пользователя?
« Последнее редактирование: 17 Февраля 2023, 16:23:02 от Onerus »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6965
    • Просмотр профиля
Re: BASH скрипт монтирования шары
« Ответ #5 : 17 Февраля 2023, 17:42:56 »
Цитировать
автоматически генерируется стандартной программой startup application
А если нет этой программы? Почитай здесь по этому вопросу.

Цитировать
В домашний каталог пользователя разрешено складывать подобные файлы?
Никто, никуда, не запрещает. Но зачем утсраивать танцы на минном поле.

Цитировать
как быть в данном случае что бы скрипт отработал...
Здесь смотри.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6828
  • 20% Cooler
    • Просмотр профиля
Re: BASH скрипт монтирования шары
« Ответ #6 : 17 Февраля 2023, 19:41:52 »
Возникла задача монтировать шару при входе в систему, из-за того что несколько пользователей в системе и каждый работает в свой личной папке на шаре.
Cделайте через закладки.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 17 Февраля 2023, 23:38:21 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3040
    • Просмотр профиля
Re: BASH скрипт монтирования шары
« Ответ #7 : 17 Февраля 2023, 21:14:33 »
А можно ли подобные задачи выполнять через systemd-logind.service или рез что-то связанное?
Пётр.

Оффлайн Onerus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
    • ИТ компания ТВОЙ МИР
Re: BASH скрипт монтирования шары
« Ответ #8 : 18 Февраля 2023, 11:16:47 »
Cделайте через закладки.
Через закладки первым делом что сделал)) Но хотелось бы через скрипт, т.к. в боковой панели дублируются папки.

Пользователь добавил сообщение 18 Февраля 2023, 11:18:00:
Здесь смотри.
Спасибо за дельный совет, изучу.

 

Страница сгенерирована за 0.056 секунд. Запросов: 25.