“Только root может монтировать” ошибка – но я root

Вопрос или проблема

Вчера я смог смонтировать свою smb-расшарку с помощью следующей команды:

sudo mount -t cifs //XXXX/share /media/share -o user=Ben,password=XXX,workgroup=WORKGROUP,ip=XXX.XX.XX,uid=ben,gid=ben,rw

Я не знаю, почему это больше не работает. (Возможно, после обновления системы).

Я получил следующую ошибку:

mount: only root can mount //XXX.XXX.XXX/share on /home/ben/share

Я не знаю, как исправить эту проблему..

Я также пробовал смонтировать это с помощью su -, и Smbclient работает.

Я на ArchLinux.

Если вы не знаете, что происходит, попробуйте strace:

sudo strace -f -F -o mount.strace mount -t cifs //XXXX/share /media/share -o user=Ben,password=XXX,workgroup=WORKGROUP,ip=XXX.XX.XX,uid=ben,gid=ben,rw

Затем попробуйте найти файл mount.strace внизу на предмет ошибок, вы явно найдете причину… Это трудный метод, я знаю…

Поскольку я не вижу никаких очевидных причин вашей ошибки, я бы предложил немного другой синтаксис.

Сначала я создам новую директорию от имени root (чтобы убедиться, что root может ее создать), а затем смонтирую расшарку с немного другими параметрами. Вот команды (все они должны выполниться успешно):

sudo mkdir /mnt/smb_share
sudo touch /mnt/smb_share/test && sudo rm -f /mnt/smb_share/test && echo "Права доступа в порядке"
sudo mount -t cifs //(hostname)/share /mnt/smb_share -o user=Ben,domain=(WORKGROUP)

Команда монтирования должна запросить у вас пароль вашей учетной записи Samba Ben. Я убрал параметры uid и gid, чтобы исключить некоторый “шум”. С помощью этой команды вы должны проверить, можете ли вы смонтировать расшарку. Конечно, вам нужно заменить:

  • (hostname) на имя хоста сервера расшарки. Если это не работает с именем хоста, попробуйте снова, но используйте вместо этого IP-адрес;
  • (WORKGROUP) на вашу рабочую группу или домен.

Если это сработает, попробуйте размонтировать расшарку и примонтировать ее снова только с uid:

sudo umount /mnt/smb_share
sudo mount -t cifs //(hostname)/share /mnt/smb_share -o user=Ben,domain=(WORKGROUP),uid=ben

Если это сработает, добавьте gid, затем добавьте rw, а затем, наконец, добавьте параметр пароля (по шагам). Так вы сможете определить, какой из параметров не распознается.

Ответ или решение

Ошибка "Only root can mount" в Linux, даже если вы работаете от имени пользователя root, может быть неприятным сюрпризом. Давайте проанализируем возможные причины этой проблемы и предложим пути её решения на примере вашей ситуации.

Причины возникновения ошибки

  1. Системные обновления: Как вы упомянули, может быть, что недавнее обновление системы изменило настройки или права на монтирование сетевых ресурсов.

  2. Проблемы с правами доступа: Даже если вы работаете от имени root, конфигурация файлов или монтируемых ресурсов может быть неверной.

  3. Необходимые модули не загружены: Убедитесь, что все необходимые модули для работы с CIFS загружены.

  4. Ошибки в команде монтирования: Неверные параметры или опции могут приводить к ошибке, связанной с правами на монтирование.

Рекомендации по устранению

  1. Проверка прав доступа:
    Убедитесь, что у вас есть необходимые права для доступа к директории, в которую вы пытаетесь смонтировать ресурс. Проверьте это командой:

    ls -ld /media/share

    Если директория не существует, создайте её:

    sudo mkdir -p /media/share
  2. Использование командных опций:
    Попробуйте использовать другую версию команды монтирования. Например, создайте новую точку монтирования и используйте простую команду:

    sudo mkdir /mnt/smb_share
    sudo mount -t cifs //hostname/share /mnt/smb_share -o user=Ben,workgroup=WORKGROUP

    После этого вводите пароль, когда он будет запрошен, и следите за возможными сообщениям об ошибках.

  3. Постепенное добавление опций:
    Если команда выше сработает, извлеките её из параметров. Постепенно добавляйте параметры (например, uid, gid, rw и т.д.), чтобы определить, какой из них вызывает ошибку. Например:

    sudo mount -t cifs //hostname/share /mnt/smb_share -o user=Ben,workgroup=WORKGROUP,uid=ben
  4. Проверка системных журналов:
    Посмотрите системные журналы для выявления ошибок:

    dmesg | tail
    journalctl -xe
  5. Используйте strace для диагностики:
    Если проблема не устранена, используйте strace для более подробного анализа:

    sudo strace -f -o mount.strace mount -t cifs //hostname/share /media/share -o user=Ben,workgroup=WORKGROUP

    Проверьте файл mount.strace на наличие ошибок и проблем, связанных с правами доступа или другими проблемами.

Заключение

Проблема с монтированием сетевых ресурсов под пользователем root может возникать по многим причинам. Основные шаги включают в себя проверку прав доступа, использование более простых команд с поэтапным добавлением опций и анализ системных журналов. Убедитесь, что ваша система в актуальном состоянии, и все необходимые модули загружены. Если всё ещё не удаётся произвести монтирование, рассмотрите возможность создания новой учетной записи с правами root или обратитесь к документации системы для получения дополнительной информации.

Оцените материал
Добавить комментарий

Капча загружается...