LINUX.ORG.RU
ФорумAdmin

Автоматический umount после расшифровки файлов во время запуска системы

 , ,


1

2

Добрый вечер, подскажите пожалуйста, как можно автоматически размонтировать флешку при запуске системы? Принцип идеи следующий, fstab:

/dev/sdb1 /mnt/usb vfat ro,nofail 0 0
/home/.user /home/user ecryptfs nofail 0 0
Нужно чтобы после расшифровки, эта флешка размонтировалась.

Пытался копать fstab, не нашел как сделать, попробовал создать ярлык и засунуть в /.config/autostart:

[Desktop Entry]
Encoding=UTF-8
Version=0
Type=Application
Name=umount
Comment=
Exec=umount /mnt/usb
StartupNotify=false
Terminal=true
Hidden=false
так же не получилось, подскажите, как это можно реализовать?

Может ты хочешь отключить автомонтирование флешки?

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

Иди в винду.

Иди лесом и учись улавливать смысл.

Может ты хочешь отключить автомонтирование флешки?

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

TheLinuxUser ★★
() автор топика

aureliano15, загляни пожалуйста сюда, может подскажешь. Получилось через ярлык + Exec=sudo umount /mnt/usb, но тогда выбивает консоль и запрашивает ввести пароль, может есть как на системном уровне сделать?

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

sudo umount /mnt/usb, но тогда выбивает консоль и запрашивает ввести пароль

Есть графические аналоги sudo, например gksudo. А чтоб пароль не запрашивало, надо в /etc/sudoers прописать соответствующее разрешение для пользователя выполнять указанную команду без пароля с помощью опции NOPASSWD.

Например, директива в /etc/sudoers

user hostname=(root) NOPASSWD: /usr/bin/umount /mnt/usb

позволит пользователю user, находящемуся на хосте hostname (можно поставить ALL, чтоб делать с любого удалённого хоста) выполнять команду /usr/bin/umount /mnt/usb без ввода пароля. Полный путь к команде прописывать обязательно. Подробнее см. man sudo и man sudoers. Можно посмотреть этот короткий мануал с примерами, там среди прочих и твой имеется.

Править sudoers лучше командой sudo visudo, т. к. эта команда проверяет перед сохранением, всё ли ты правильно сделал, и, если нет, сообщает об ошибке.

У меня сейчас не debian, поэтому я точно не помню, какой редактор по умолчанию установлен там для visudo. Скорее всего nano, но, возможно, vi. Если это так, то посмотри ещё и основные команды редактора vi, который, кстати, вообще лучше знать хотя бы немного, т. к. это стандарт де-факто в юникс-консоли (в разных системах могут быть разные редакторы, но vi есть почти везде).

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

А что подразумевается под «системным уровнем» и автоматом, я не понял. Т. е. тебе ведь надо это всё не просто расшифровать, а ещё куда-то скопировать, и только потом размонтировать. А если оно будет размонтироваться сразу, то какой смысл вообще монтировать?

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

Есть графические аналоги sudo, например gksudo. А чтоб пароль не запрашивало, надо в /etc/sudoers прописать соответствующее разрешение для пользователя выполнять указанную команду без пароля с помощью опции NOPASSWD.

Большое спасибо, попробую сделать так

тебе ведь надо это всё не просто расшифровать, а ещё куда-то скопировать, и только потом размонтировать.

Нет, eryptfs расшифровывает домашний каталог, а пароль берет с SDcard, тобишь оно расшифровало и можно SDcard размонтировать, чтобы не висела.

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

Тогда попробуй в автостарт запихнуть вместе с gksudo, которому разрешён NOPASSWD. Можно ещё в автостарт добавить опцию X-GNOME-Autostart-Delay=несколько_секунд, чтоб оно расшифровать успело, если без паузы не будет правильно работать.

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

Вообщем изменил и вкинул

user hostname=(root) NOPASSWD: /usr/bin/umount /mnt/usb
Теперь не могу открыть gedit не его не этот ярлык, выбивает:
sudo: ошибка обработки в / etc / sudoers вблизи строки 16
sudo: не найдены корректных источников данных sudoers, завершение работы
sudo: не удалось инициализировать приложение правил
Еще не перезагружался.

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

Бл*ть, походу теперь только с liveUSB загружатся и менять обратно. ))

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

sudo: ошибка обработки в / etc / sudoers вблизи строки 16

user и hostname должны быть реальным именем (логином) и именем твоего хоста, и путь к umount должен быть правильным (узнать его можно командой which umount, у меня это /usr/bin/umount). И редактировать надо с помощью visudo, т. к. она укажет на ошибки, если они есть.

Бл*ть, походу теперь только с liveUSB загружатся и менять обратно. ))

Если есть su, то можно через него. Или командой telinit s перезагрузиться в однопользовательский режим от рута и поправить.

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

user и hostname должны быть реальным именем (логином)

Имя я указал имя своего пользователя, а в вместо hostname указал ALL. и указал размонтировать /dev/sdb1. Тобишь получилось:

Vitaliy ALL=(root) NOPASSWD: /dev/sdb1

Пишу:

su vitaliy gedit /etc/sudoers
чтобы хотя бы откатить изменения, выбивает:
/ Usr / bin / gedit: / usr / bin / gedit: не удалось выполнить бинарный файл
su vitaliy /etc/sudoers
bash: / etc / sudoers: Отказано в доступе

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

Да, это я здесь не указал, в файлике я указал и выбивает ошибку, которую сбрасывал.

su -c "gedit /etc/sudoers"
su: Ошибка распознавания
TheLinuxUser ★★
() автор топика
Ответ на: комментарий от TheLinuxUser

Не знаю, что за ошибка. Может у тебя учётная запись рута заблокирована? Попробуй telinit 1 или грузись с cd/флэшки. Потом желательно перед удалением этой строки из sudoers скопируй её и выложи здесь. Заодно посмотри, соответствует ли путь к umount реальному пути. Ну и проверь, не испортил ли другие строки. А когда вернёшь sudoers назад, потом для правки используй только visudo.

aureliano15 ★★
()

как это можно реализовать?

это нужно реализовывать штатными средствами

/dev/sdb1 /mnt/usb vfat ro,nofail,x-systemd.automount,x-systemd.idle-timeout=10sec 0 0

флэшка будет примонтирована в момент обращения в /mnt/usb и размонтирована через 10 секунд после последней операции в /mnt/usb

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

флэшка будет примонтирована в момент обращения в /mnt/usb и размонтирована через 10 секунд после последней операции в /mnt/usb

А если операций и нет? А просто идет считывание информации содержимого файла, который на ней? Или это можно считать за операцию?

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

/dev/sdb1 /mnt/usb vfat ro,nofail,x-systemd.automount,x-systemd.idle-timeout=10sec 0 0

Ого, какая вкусняшка. Системд торт, Поттеринг - б-г!

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

/ Usr / bin / gedit: / usr / bin / gedit: не удалось выполнить бинарный файл

Usr

Так и написал, да?

Deleted
()
Ответ на: комментарий от bass
/dev/sdb1 /mnt/usb vfat ro,nofail,x-systemd.automount,x-systemd.idle-timeout=10sec 0 0

флэшка будет примонтирована в момент обращения в /mnt/usb и размонтирована через 10 секунд после последней операции в /mnt/usb

Когда ввожу x-systemd.automount не монтируется /home/user, если не ввожу это, а только x-systemd.automount,x-systemd.idle-timeout=10sec то оно не отключает через 10 сек

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