Что означает ошибка EACCES
Ошибка EACCES (сигнал 13) переводится как ошибка доступа. Она появляется, когда Linux не может выполнить операцию монтирования из-за недостаточных прав на чтение/запись устройства или целевой директории. Типичные сообщения:
mount: не удалось смонтировать '/dev/sdb1':
ошибка доступа: устройство не предоставлено
или
mount: нет таких файла или директории (или похожая ошибка)
Это указывает на проблему с правами, а не на физический сбой диска.
Причины возникновения
- Недостаток прав администратора – монтирование требует привилегий root или sudo.
- Некорректные права доступа к устройству –
/dev/sdX*имеет неправильные права (rw-------вместоrw-rw----). - Ошибки в
/etc/fstab– неправильный тип файловой системы, отсутствующие опции или неверное полеfs_passno. - SELinux/AppArmor – политики безопасности блокируют доступ к устройству (
audit: denied open... denied). - Физический сбой диска – устройство не смонтировалось вообще, но система всё равно пытается применить разрешения.
Способы решения
Способ 1: Использовать sudo для монтирования
Если ошибка возникает из-за недостаточных прав, добавьте sudo перед командой mount.
sudo mount /dev/sdb1 /mnt
⚠️ Важно: sudo временно предоставляет права администратора; всегда убедитесь, что монтируемое устройство не содержит конфиденциальных данных.
Способ 2: Проверить права доступа к устройству
Неправильные права доступа на устройство также вызывают ошибку EACCES.
ls -l /dev/sdb1
# Ожидаемый результат: brw-rw---- 1 root disk ...
Если права отличаются, исправьте:
sudo chmod 660 /dev/sdb1
sudo chown root:disk /dev/sdb1
Способ 3: Проверить и исправить /etc/fstab
Неправильные строки в /etc/fstab вызывают автоматические ошибки монтирования.
sudo nano /etc/fstab
Найдите строку, содержащую /dev/sdb1, и убедитесь, что она выглядит так:
UUID=<uuid> /mnt ext4 defaults,noatime 0 2
Если строка повреждена, удалите её или исправьте. После редактирования обновите таблицу:
sudo mount -a
Способ 4: Проверить SELinux (RHEL/CentOS)
SELinux может блокировать монтирование, даже если права в порядке.
sudo setenforce 0 # временное отключение
sudo semanage boolean --set virt_use_nfs=on # пример, если монтируете NFS
Если SELinux отключает автоматическое монтирование, разрешите его с помощью semanage или отредактируйте /etc/selinux/config.
Способ 5: Попробовать другой пункт монтирования
Иногда автоматический монтирующийся путь конфликтует с явным; используйте явный путь монтирования.
sudo mount /dev/sdb1 /mnt/custom
Профилактика
- Используйте sudo для всех операций с монтированием, чтобы избежать ошибок с правами.
- Проверяйте права доступа к устройствам после подключения новых дисков (
sudo chmod 660 /dev/sdX*). - Редактируйте
/etc/fstabаккуратно; перед внесением изменений сделайте резервную копию (cp /etc/fstab /etc/fstab.backup). - Отслеживайте журналы SELinux (
journalctl -b -u auditd) для выявления политик, блокирующих монтирование. - Регулярно проверяйте целостность файловой системы (
sudo fsck -t ext4 /dev/sdX1), чтобы избежать проблем с доступом к данным.