Прикро виявити, як встановлене тобою додаток, що працює з периферійними пристроями, раптом «радує» повідомленням, що немає прав на доступ до цих пристроїв, і успішно запускається тільки з правами адміністратора. Наприклад, якби подібне сталося з tvtime щодо відеокарти, користувач зіткнувся б з таким повідомленням в консолі:
1 | videoinput: Cannot open capture device /dev/video0: Permission denied |
Насамперед слід перевірити групи доступу до пристрою:
1 | $ ls -l /dev/video0 |
Очікувано ви виявляєте серед них root і video, але не виявляєте в останній себе (user), виконавши перевірку командою
1 | $ groups |
Природне рішення — додати користувача (user) в групу (video) будь-яку з доступних команд:
123 | $ sudo usermod -a -G video user:$ sudo useradd -a -G video user:$ sudo gpasswd -a user video |
По завершенні команди потрібно перезайти в систему.
Помилки размонтирования
Кожен знає, що перш, ніж вийняти флешку з USB-роз’єму, потрібно виконати команду (або натиснути піктограму) размонтирования. Не завжди ця команда завершується успішно, і у відповідь ви можете отримати повідомлення на зразок:
1 | <span class=”typ”>Error</span><span class=”pln”> unmounting block device </span><span class=”lit”>8</span><span class=”каламбур”>:</span><span class=”lit”>17</span><span class=”каламбур”>:</span> <span class=”typ”>GDBus</span><span class=”каламбур”>.</span><span class=”typ”>Error</span><span class=”каламбур”>:</span><span class=”pln”>org</span><span class=”каламбур”>.</span><span class=”pln”>freedesktop</span><span class=”каламбур”>.</span><span class=”typ”>UDisks2</span><span class=”каламбур”>.</span><span class=”typ”>Error</span><span class=”каламбур”>.</span><span class=”typ”>DeviceBusy</span><span class=”каламбур”>:</span> <span class=”typ”>Error</span><span class=”pln”> unmounting </span><span class=”каламбур”>/</span><span class=”pln”>dev</span><span class=”каламбур”>/</span><span class=”pln”>sdb1</span><span class=”каламбур”>:</span><span class=”pln”> target </span><span class=”kwd”>is</span><span class=”pln”> busy</span> |
Воно говорить про те, що якесь додаток все ще використовує носій /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 /путь_к_точке_монтирования |
Демонтування пристрою, зайнятого процесом