Помогите размонтировать сетевой диск недоступного хоста.
Пытаюсь написать скрипт для openvpn, который должен монтировать сетевые диски при подключении определенных пользователей и размонтировать их при отключении. Основная проблема заключается в том, что openvpn настроен на роботу с пониженными привелегиями. И если с монтированием эта проблема решается добавлением в fstab строчек вида
//10.10.10.10/writeable /disk/network/writeable cifs noauto,_netdev,users,guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,cache=none 0 0
то с размонтированием у меня возникли проблемы. Пока хост доступен umount работает и с правами пользователя. Но мне надо размонтировать диск как раз когда хост не доступен и тут он ругается что хост недоступен и диск не размонтирует. Как я понимаю надо вот так umount -l -f но на это он ругается что только root так может.
хз, посмотри это, вдруг идея возникнет (например, добавить атрибут user помимо users) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662078
А какая система? Версии софта, ядра?
Linux SERVER-2C68EF67A5 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) i686 GNU/Linux
mount.cifs version: 6.4
mount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)
umount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)
А разве user и users это не взаимно исключающие атрибуты. Как я понимаю user разрешает определенному пользователю, а users разрешает всем пользователям. Немного уточню проблему. Как и говорил выше, если хост с сетевым диском доступен, то шара размонтируется без проблем, обычным пользователем, простой командой umount /путь/. Но как только хост с шарой становиться не доступным, ни простой пользователь, ни даже root командой umount, без дополнительных опций, размонтировать шару не может. Что бы размонтировать нужно добавит к umount -l -f и тогда шара будет отмонтирована, но проблема в том что использовать дополнительные опции в umount может только root, а мне надо что бы такие права на определенные шары были у непривилегированного пользователя. В связи с этим возникает вопрос куда и что нужно добавить что бы umount работал с этими опциями от пользователя.
Ну так настрой sudo для этой команды и пользователя из под которого openvpn запускается, в чём проблема-то?
Или настрой autofs
Как я понимаю user разрешает определенному пользователю, а users разрешает всем пользователям.
ЕМНИП один из этот атрибутов не_рабочий. Ошибочный. Кажется user разрешает монтирование пользователю. А users попал в некоторые fstab сугубо по недоразумению. Ошибка разработчиков. Либо наоборот.
Как «не очень безопасное, но рабочее решение» можно в sudoers добавить разрешение определенной группе запускать umount с нужными параметрами, но это на свой страх и риск.
autofs и /thread, а что такое — thread или это опечатка тега.
Огромное всем спасибо за подсказки куда копать. Получилось от простого пользователя отмонтировать диски с доп опциями. Правда мне это не особо помогло. т.к. на данную операцию уходит около двух минут и всё это время приложение висит. Плюс проблемы с завершением работы тоже на 2 минуты зависание.
sudo visudo # Редактируем /etc/sudoers и добавляем строчку изменив под себя
you_user_name ALL=NOPASSWD:/bin/umount -f /disk/network/writeable, /bin/umount -f /disk/network/backup
После чего пользователь с именем you_user_name получит права на размонтирования двух дисков вот такой командой
sudo umount -f /disk/network/writeable
sudo umount -f /disk/network/backup
P.S. добавлять пользователя you_user_name в группу sudo не надо и категорически нельзя.
На фоне первого варианта autofs показался куда интересней, хоть он тоже не размонтирует недоступные сетевые диски, но так как большую часть времени они не используются, то получаются почти всегда отмонтированными и вероятность совпадения разрыва связи с сервером и использования в это время диска стремится к 0.
Вот только ругается чего то, вот такими сообщениями
automount[8029]: key «*» not found in map source(s).
Но работает и все диски монтирует.
/disk/network /etc/auto.network —timeout=10 —ghost
/disk/network/wd8000 /etc/auto.wd8000 —timeout=10 —ghost
/disk/network/yandex /etc/auto.webdav —timeout=60 —ghost
writeable -fstype=cifs,guest,rw,iocharset=utf8,file_mode=0666,dir_mode=0777,cache=none ://10.10.10.10/writeable
backup -fstype=cifs,guest,rw,iocharset=utf8,file_mode=0666,dir_mode=0777,cache=none ://10.10.10.18/backup
foto -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/foto
download -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/download
cartoons -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/cartoons
films -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/films
music -fstype=cifs,guest,ro,iocharset=utf8,file_mode=0444,dir_mode=0555 ://10.10.10.10/music
/disk/network/yandex/user1 user1 my_password
/disk/network/yandex/user2 user2 my_password
/disk/network/yandex/user3 user3 my_password
притом , что это ведроидная; зачем auto??
и, сразу три, не его стихия, там надо две и, по прош-ю 35-соро, -ка сек одну; а так 0ver 120sec, это ещё ничего.
Изначально было не авто, диски подключались средствами xbmc но она намертво зависала при длительном отсутствии сервера. Включаешь телик а там зависшая xbmc. Теперь же большую часть времени диски от монтированы, нет дисков нет проблем. Плюс бонусом получил возможность расшарить сетевые диски на всю домашнюю сеть, конечно костыль но учитывая что openvpn у меня за роутером а с маршрутизацией я совсем не дружу то не самый худший вариант.
А вот что дальше написано я к сожалению не понял о чем там речь:(((
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Монтирование и демонтирование файловых систем в Linux
Данная статья посвящена монтированию и демонтированию файловых систем в Linux. Под этим понятием понимается подключение разделов жестких дисков, различных носителей и прочих файловых систем, которые могут находится на различных носителях информации. Получение к ним доступа, отключение автоматически и в ручном режиме. В статье будут рассмотрены следующие вопросы:
- Подключение и отключение файловых систем вручную.
- Управление автоматическим монтированием файловых систем.
- Подключение съемных носителей информации.
Основные команды, которые позволяют решать вопросы указанные выше:
Данный файл – это файл настройки автоматического подключения файловых систем. Точкой монтирования, является пустой каталог на нашей файловой системе.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
К виртуальной машине подключен диск, определяемый операционной системой /dev/sdc , а на нем создан раздел /dev/sdc1 с файловой системой ext4. Мы можем посмотреть, что на нем ls –l /dev/sdc1 .
Для того, чтобы посмотреть, что есть на этом диске необходимо создать точку монтирования. Для этой цели подойдет любая папка. Если мы посмотрим корневые папки командой ls / , то увидим следующую картину.
Правилом хорошего тона является монтирование файловых систем в папки mnt и media . Обычно папку mnt используют для монтирования разделов, а папку media для монтирования съемных носителей информации. Т.е папка mnt пустая и туда у нас ничего не монтируется, можно создать внутри папку mkdir /mnt/hard . Теперь мы можем смонтировать в данную папку наш жесткий диск, подключенный к виртуальной машине. Монтирование осуществляется следующим образом mount /dev/sdc1 /mnt/hard или mount –t ext4 /dev/sdc1 /mnt/hard . Linux очень хорошо самостоятельно определяет тип файловой системы и в написании команд можно данную опцию опустить.
Как мы видим все смонтировалось и так как файловая система журналируемая появилась папочка lost+found .
Вообще в линуксе вся файловая система –это такое иерархическое дерево с файлами и папками, подпапками. Все эти файлы и папки вообще могут находится на разных устройствах, в том числе и на сетевых устройствах. Это может быть даже сетевая папка, подключенная к нашей системе. Мы подключили /dev/sdc1 в папку /mnt/hard .
Мы можем выполнить команду mount , которая покажет нам, что и куда смонтированно.
Мы видим все файловые системы смонтированные. В том числе только, что примонтированный жесткий диск. Так же мы можем увидеть виртуальные файловые системы, типа proc .
Виртуальная файловая система proc содержит все запущенные процессы и смонтирована в папку /proc . Как мы видим из скриншота их достаточно много. Помимо тех файловых систем, которые созданы на носителях, примонтированно много виртуальных файловых систем. Можно увидеть, что они смонтированы в разные папки согласно их предназначению.
Отмонтировать можно командой umount /dev/sdc1 . Следовательно мы можем увидеть ls /mnt/hard , что папка пустая. Иногда при выполнении команды на отмонтирование система ругается, это происходит если мы данную файловую систему, каким-нибудь образом используем, например, если открыт файл с данной папки или подпапки. Следовательно, необходимо завершить все операции, после этого система нам даст отмонтировать.
Чтобы вот так вручную не подключать или не отключать разделы, есть файлик /etc/fstab . В нем находятся настройки автоматического монтирования файловых систем.
Если в данном файлике не сделать запись, то после перезагрузки система не подключит подмонтированную файловую систему, автоматически. Что касается настройки: в файле мы указываем устройство с файловой системой, затем точку монтирования, тип файловой системы, опции и пара настроек. Dump – говорит нам о том, сохранять ли файлы автоматом на данной файловой системе при отключении системы. Т.е если у нас пропало питание или идет завершение работы. Принимаемые значения 1 — файлики будут сохранятся, 0 не будет сохранятся. Параметр Pass указывает порядок проверки файловых систем. Обычно 1 у корневой файловой системы, у всех последующих 2, у съемных носителей 0. Операционная система Linux обычно позволяет смонтировать файловую систему по UUID. Т.е устройство можно указывать не только в явном виде, но и по метке, и по идентификатору. Указывать по идентификатору надежнее мы можем переименовать устройство или переставить жесткие диски и тогда загрузочный раздел окажется не /dev/sda1 , а например /dev/sdc1 . Чтобы подобного не произошло, лучше файловые системы прописывать с помощью идентификатора. Потому, что идентификаторы прописаны жестко к каждому разделу и изменить мы их не можем. И это будет более стабильная работа. В нашем же случае мы видим, что основной раздел смонтирован. Имеет файловую систему ext4 . Про опции монтирования можно прочитать в мануале к файлу fstab .
Ну и как можно увидеть примонтирован еще один раздел без точки монтирования – это раздел подкачки swap .
Можно еще одну интересную вещь заметить, при попытке нового монтирования файловой системы от обычного пользователя операционная система ругнется, что только пользователь root может это сделать, но как только мы пропишем данное монтирование в файл /etc/fstab и скажем, что пользователь обычный имеет право монтировать данную файловую систему, то система совершенно спокойно даст примонтировать без повышения привилегий. Соответственно редактировать данный файл совершенно просто. Открываем его любым редактором в режиме суперпользователя и добавляем данные по монтируемой файловой системе. Если при монтировании вы не знаете какой тип файловой системы, можно просто указать auto и операционная система автоматически ее определит тип файловой системы при монтировании. Далее интересная вещь – это опции при монтировании можно указать defaults (чтение ( ro ), запись ( rw ), выполнение ( execute ), nouser ). Параметр user- т.е любой пользователь может монтировать и демонтировать данную файловую систему, если данные параметр не указать, тогда только суперпользователь сможет выполнять данные действия. Параметр auto – т.е данный параметр будет автоматически подключать данную файловую систему при старте компьютера или сервера. Параметр noexec — данный параметр запрещает запуск исполняемых файлов на данной файловой системе. После добавления записи в файл /etc/fstab , мы можем примонтировать файловую систему командой от обычного пользователя mount /mnt/hard . Система обратится к файлу /etc/fstab проверит запись и опции, если есть указанная точка монтирования и в опциях запись user система успешно подмонтирует файловую систему. Аналогично можно провести обратную операцию размонтирования unmount /mnt/hard .
Есть хорошая команда, которой приходится пользоваться, особенно если создаем raid массивы – это blkid . Данная команда позволяет посмотреть блочные устройства. Работает от суперпользователя sudo blkid /dev/sdc1 .
Команда показывает, какой uuid имеется у устройства. И мы можем в файле /etc/fstab , можем указать не имя устройства, а UUID = a783a365-3758-47bd-9f2d-1f5b4155f4ca. И это будет надежнее указание UUID, чем имена дисков, потому что имена дисков могут меняться.
Раньше в файле /etc/fstab так же прописывалось монтирование съемных носителей USB флешки, CD-ROM и т.д создавалась запись для файловой системы с правами read-only и что при необходимости смонтировать могут любые пользователи, автоматически флопик и CD-ROM не монтировались. Современные дистрибутивы, включаю Ubuntu последних версий, в том числе пользовательские, с красивыми оболочками Gnome и KDE есть файловый менеджер Nautilus. У данного файлового менеджера есть свои настройки, которые позволяют автоматически монтировать, все что мы подключаем.
В случае если мы работаем на серверной операционной системе, например, Ubuntu или CentOS, то понятно в дефолтной конфигурации у нас нету авто монтирования и прочих радостей десктопной версии. Поэтому делаем простую вещь. Вставляем носитель с файловой системой, второй шаг blkid находим наше устройство и третий шаг монтируем, командой mount .
Правилом хорошего тона является монтирование всех устройств в папку /media . Здесь обычно располагаются папки cdrom, можно создать папки floppy или usb . И последний нюанс, после того, как вы поработали с флешкой и от монтировали, необходимо корректно ее вытащить. Даем команду eject .
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник