Досадно обнаружить, как установленное тобой приложение, работающее с периферийными устройствами, вдруг «радует» сообщением, что нет прав на доступ к этим устройствам, и успешно запускается только с правами суперпользователя. Например, если бы подобное произошло с tvtime в отношении видеокарты, пользователь столкнулся бы с таким сообщением в консоли:
1 |
videoinput: Cannot open capture device /dev/video0: Permission denied |
Первым делом следует проверить группы доступа к устройству:
1 |
$ ls -l /dev/video0 |
Ожидаемо вы обнаруживаете среди них root и video, но не обнаруживаете в последней себя (user), выполнив проверку командой
1 |
$ groups |
Естественное решение — добавить пользователя (user) в группу (video) любой из доступных команд:
1 2 3 4 |
$ sudo usermod -a -G video user $ sudo useradd -a -G video user $ sudo gpasswd -a user video |
По завершении команды нужно перезайти в систему.
Ошибки размонтирования
Каждый знает, что прежде, чем вынуть флешку из USB-разъема, нужно выполнить команду (или нажать значок) размонтирования. Не всегда эта команда завершается успешно, и в ответ вы можете получить сообщение наподобие:
1 |
[crayon-66d038b84e7b3162359077 inline="true" ]<span class="typ">Error</span><span class="pln"> unmounting block device </span><span class="lit">8</span><span class="pun">:</span><span class="lit">17</span><span class="pun">:</span> <span class="typ">GDBus</span><span class="pun">.</span><span class="typ">Error</span><span class="pun">:</span><span class="pln">org</span><span class="pun">.</span><span class="pln">freedesktop</span><span class="pun">.</span><span class="typ">UDisks2</span><span class="pun">.</span><span class="typ">Error</span><span class="pun">.</span><span class="typ">DeviceBusy</span><span class="pun">:</span> <span class="typ">Error</span><span class="pln"> unmounting </span><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">sdb1</span><span class="pun">:</span><span class="pln"> target </span><span class="kwd">is</span><span class="pln"> busy</span> |
[/crayon]
Оно говорит о том, что некое приложение все еще использует носитель
/dev/sdb1. Чтобы определить это приложение, нужно найти, куда смонтирован
/dev/sdb1:
1 |
$ mount | grep /dev/sdb1 |
А затем выполнить такую команду:
1 |
$ lsof +D /путь_к_точке_монтирования |
Или такую:
1 |
$ fuser -m /путь_к_точке_монтирования |
Останется только закрыть приложение, в крайнем случае убить процесс и спокойно размонтировать носитель. С помощью fuser это можно сделать, что называется, на месте:
1 |
$ fuser -k -m /путь_к_точке_монтирования |
В самом крайнем случае можно не убивать приложение, а размонтировать ФС принудительно:
1 |
$ sudo umount -f -l /путь_к_точке_монтирования |
Размонтирование устройства, занятого процессом