Проблеми доступу до пристроїв в Linux

problemy dostupa k ustrojjstvam v linux87 Проблеми доступу до пристроїв в Linux

Прикро виявити, як встановлене тобою додаток, що працює з периферійними пристроями, раптом «радує» повідомленням, що немає прав на доступ до цих пристроїв, і успішно запускається тільки з правами адміністратора. Наприклад, якби подібне сталося з 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 /путь_к_точке_монтирования

problemy dostupa k ustrojjstvam v linux88 Проблеми доступу до пристроїв в Linux

Демонтування пристрою, зайнятого процесом

Сподобалася стаття? Поділитися з друзями:
Всезнайко - Корисні поради