mount.cifs доступ запрещён

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

Мне не удалось подключить сетевой диск, и я получил mount.cifs permission denied

$ nano ~/.smbcredentials
username=xxx
password=CwF

$ sudo nano /etc/fstab
//192.168.1.4/xxx /home/pi/mycloud cifs credentials=/home/pi/.smbcredentials,uid=pi,gid=pi 0 0

введите описание изображения здесь

Тем не менее, это работает после того, как я сделал:

$ sudo mount -a
$ ls -ld mycloud
drwxr-xr-x 2 pi pi 0 Feb 13 23:51 mycloud

Пожалуйста, найдите ниже мой smb.conf

$ cat /etc/samba/smb.conf
#
# Пример конфигурационного файла для набора Samba для Debian GNU/Linux.
#
#
# Это основной конфигурационный файл Samba. Вы должны прочитать
# мануал smb.conf(5), чтобы понять перечисленные здесь опции.
# У Samba огромное количество настраиваемых опций, большая часть из которых
# не показана в этом примере.
#
# Некоторые параметры, которые часто стоит настроить, были включены как
# закомментированные примеры в этот файл.
#  - Когда такие параметры закомментированы с ";", предложенная настройка
#    отличается от поведения по умолчанию Samba.
#  - Когда закомментированы с "#", предложенная настройка является 
#    поведением по умолчанию Samba, но опция считается достаточно важной,
#    чтобы быть упомянутой здесь.
#
# ПРИМЕЧАНИЕ: Всякий раз, когда вы изменяете этот файл, вы должны выполнить
# команду "testparm", чтобы убедиться, что вы не сделали никаких основных
# синтаксических ошибок.

#======================= Глобальные настройки =======================

[global]

## Обзор/Идентификация ###

# Измените это на имя рабочей группы/NT-домена, частью которого будет ваш
# Samba сервер.
   workgroup = WORKGROUP

#### Сеть ####

# Конкретный набор интерфейсов/сетей для привязки
# Это может быть либо имя интерфейса, либо IP-адрес/маска;
# обычно предпочтительнее использовать имена интерфейсов.
;   interfaces = 127.0.0.0/8 eth0

# Привязывайтесь только к указанным интерфейсам и/или сетям; вы должны использовать
# опцию 'interfaces' выше, чтобы использовать это.
# Рекомендуется включить эту функцию, если ваша машина Samba
# не защищена брандмауэром или является брандмауэром сама по себе. Тем не менее, это
# опция не может корректно обрабатывать динамические или неброадкастные интерфейсы.
;   bind interfaces only = yes

#### Отладка/Учет ####

# Это указывает Samba использовать отдельный лог-файл для каждой машины,
# которая подключается.
   log file = /var/log/samba/log.%m

# Ограничьте размер отдельных лог-файлов (в KiB).
   max log size = 1000

# Мы хотим, чтобы Samba логировала только в /var/log/samba/log.{smbd,nmbd}.
# Добавьте syslog@1, если вы хотите, чтобы важные сообщения также отправлялись в syslog.
   logging = file

# Сделайте что-то разумное, когда Samba зависает: отправьте администратору обратный вызов.
   panic action = /usr/share/samba/panic-action %d

####### Аутентификация #######

# Роль сервера. Определяет в каком режиме будет работать Samba. Возможные
# значения: "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Большинство людей захотят использовать "standalone server" или "member server".
# Запуск в качестве "active directory domain controller" потребует сначала
# выполнить "samba-tool domain provision", чтобы стереть базы данных и создать новый
# домен.
   server role = standalone server

   obey pam restrictions = yes

# Этот булев параметр управляет тем, пытается ли Samba синхронизировать Unix
# пароль с SMB паролем, когда зашифрованный SMB пароль в
# passdb изменяется.
   unix password sync = yes

# Для работы синхронизации Unix пароля на системе Debian GNU/Linux должны быть установлены следующие
# параметры (спасибо Иэну Кахану <<[email protected]> за
# отправку правильного скрипта чата для программы passwd в Debian Sarge).
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

# Этот булев параметр управляет тем, будет ли PAM использоваться для изменения пароля
# по запросу клиента SMB вместо указанной в 'passwd program' программы. По умолчанию это 'no'.
   pam password change = yes

# Эта опция управляет тем, как неудачные попытки аутентификации сопоставляются
# с анонимными подключениями.
   map to guest = bad user

########## Домен ###########

#
# Следующие настройки вступают в силу только если 'server role = classic
# primary domain controller', 'server role = classic backup domain controller'
# или 'domain logons' установлено 
#

# Она указывает местоположение каталога
# профиля пользователя в представлении клиента. Следующее
# обязательно требует, чтобы на сервере Samba был настроен общий доступ [profiles]
;   logon path = \\%N\profiles\%U
# Другим распространенным вариантом является хранение профиля в домашнем каталоге пользователя
# (это стандартная настройка Samba).
#   logon path = \\%N\%U\profile

# Следующая настройка вступает в силу только если 'domain logons' установлено
# Она указывает местоположение домашнего каталога пользователя (с точки зрения клиента).
;   logon drive = H:
#   logon home = \\%N\%U

# Следующая настройка вступает в силу только если 'domain logons' установлено
# Она указывает сценарий для выполнения во время входа. Скрипт должен храниться
# в общем доступе [netlogon]
# ПРИМЕЧАНИЕ: Должен храниться в формате файла 'DOS'
;   logon script = logon.cmd

# Это позволяет создавать Unix пользователей на контроллере домена через SAMR
# RPC pipe. Пример команды создает учетную запись пользователя с отключенным Unix
# паролем; пожалуйста, адаптируйте под свои нужды.
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

# Это позволяет создавать машинные учетные записи на контроллере домена через
# SAMR RPC pipe.  
# Далее предполагается, что группа "machines" существует на системе.
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u

# Это позволяет создавать Unix группы на контроллере домена через SAMR
# RPC pipe.  
; add group script = /usr/sbin/addgroup --force-badname %g

############ Разное ############

# Использование следующей строки позволяет вам настроить свою конфигурацию
# на основе каждой машины. %m заменяется на netbios имя
# машины, которая подключается.
;   include = /home/samba/etc/smb.conf.%m

# Некоторые значения по умолчанию для winbind (убедитесь, что вы не используете диапазоны
# для чего-то еще).
;   idmap config * :              backend = tdb
;   idmap config * :              range   = 3000-7999
;   idmap config YOURDOMAINHERE : backend = tdb
;   idmap config YOURDOMAINHERE : range   = 100000-999999
;   template shell = /bin/bash

# Настройка параметров usershare, чтобы разрешить пользователям, не являющимся root, делиться
# папками с помощью команды net usershare.

# Максимальное количество usershare. 0 означает, что usershare отключен.
#   usershare max shares = 100

# Разрешить пользователям, которым были предоставлены права usershare, создавать
# общие ресурсы, а не только аутентифицированные.
   usershare allow guests = yes

#======================= Определения общего доступа =======================

[homes]
   comment = Домашние каталоги
   browseable = no

# По умолчанию домашние каталоги экспортируются только для чтения. Измените
# следующий параметр на 'no', если вы хотите иметь возможность записывать в них.
   read only = yes

# Маска создания файлов установлена на 0700 по соображениям безопасности. Если вы хотите
# создать файлы с разрешениями group=rw, установите следующий параметр на 0775.
   create mask = 0700

# Маска создания директорий установлена на 0700 по соображениям безопасности. Если вы хотите
# создавать папки с разрешениями group=rw, установите следующий параметр на 0775.
   directory mask = 0700

# По умолчанию ресурсы \\server\username могут быть подключены любым,
# имеющим доступ к серверу Samba.
# Следующий параметр гарантирует, что только "имя_пользователя" может подключиться
# к \\server\username.
# Это может потребовать корректировки при использовании внешних схем аутентификации.
   valid users = %S

# Раскомментируйте следующее и создайте каталог netlogon для входа в домен
# (вам также нужно настроить Samba для работы в качестве контроллера домена).
;[netlogon]
;   comment = Служба сетевого входа
;   path = /home/samba/netlogon
;   guest ok = yes
;   read only = yes

# Раскомментируйте следующее и создайте каталог профилей, чтобы хранить
# профили пользователей (см. параметр "logon path" выше).
# (вам также нужно настроить Samba для работы в качестве контроллера домена).
# Путь ниже должен быть доступен для записи всеми пользователями, чтобы их
# каталог профиля мог быть создан при первом входе.
;[profiles]
;   comment = Профили пользователей
;   path = /home/samba/profiles
;   guest ok = no
;   browseable = no
;   create mask = 0600
;   directory mask = 0700

[printers]
   comment = Все принтеры
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

# Windows-клиенты ищут это имя общего доступа как источник загружаемых
# драйверов принтеров.
[print$]
   comment = Драйверы принтеров
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
# Раскомментируйте, чтобы разрешить удаленное администрирование драйверов принтеров Windows.
# Возможно, вам нужно заменить 'lpadmin' на название группы, членами которой являются ваши
# администраторские пользователи.
# Пожалуйста, обратите внимание, что вам также нужно установить соответствующие Unix разрешения
# для директории драйверов, чтобы эти пользователи имели права на запись в ней.
;   write list = root, @lpadmin

Почему это не работает после загрузки?

Заранее спасибо,

Вам не хватает точки (.) в файле fstab

Вместо /home/pi/smbcredentials

Должно быть /home/pi/.smbcredentials

Если подключение все еще не удается, добавьте следующие параметры монтирования в ваш файл fstab:

_netdev,sec=ntlmssp,multiuser

Опция _netdev предотвратит зависание клиентской системы, если сервер SAMBA недоступен.

Опция sec=ntlmssp обработает передачу учетных данных между сервером SAMBA и клиентом.

Опция multiuser позволит нескольким пользователям монтировать общий доступ. Эти пользователи управляются утилитой smbpasswd.

Ваша строка должна выглядеть так:

//192.168.1.4/xxx /home/pi/mycloud cifs _netdev,sec=ntlmssp,multiuser,credentials=/home/pi/.smbcredentials 0 0

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

Ошибки при монтировании CIFS-дисков часто могут вызывать затруднения. Сообщение о том, что вы не имеете разрешения (permission denied), может быть связано с различными аспектами конфигурации. Рассмотрим данную проблему подробнее и предложим решения.

Причины проблемы

  1. Ошибки в файле конфигурации fstab:
    В вашем случае указано, что путь к файлу с учетными данными неверен. Вместо:

    credentials=/home/pi/smbcredentials

    должно быть:

    credentials=/home/pi/.smbcredentials

    Наличие точки в начале имени файла критически важно, так как она указывает на его скрытость в Linux-системах. Если файл не будет найден, система не сможет получить учетные данные для подключения, что приведет к ошибке прав доступа.

  2. Проблемы с правами и доступом:
    Просмотрите права на файл .smbcredentials. Он должен быть доступен только для чтения пользователю, который выполняет монтирование. Для этого выполните следующие команды:

    chmod 600 /home/pi/.smbcredentials
    chown pi:pi /home/pi/.smbcredentials

    Это гарантирует, что только пользователь pi сможет читать файл, что важно для безопасности.

  3. Настройки Samba (smb.conf):
    Убедитесь, что в вашем конфигурационном файле Samba нет ограничений, которые могут мешать доступу к указанному ресурсу. Для этого проверьте настройки секции, где определяются права доступа к вашим общим ресурсам. Убедитесь, что распределенные ресурсы могут быть доступны пользователю pi и что он указан как valid user.

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

    //192.168.1.4/xxx /home/pi/mycloud cifs _netdev,sec=ntlmssp,multiuser,credentials=/home/pi/.smbcredentials,uid=pi,gid=pi 0 0
    • _netdev: предотвращает зависание системы, если сервер Samba недоступен.
    • sec=ntlmssp: помогает обеспечить необходимую защиту при передаче учетных данных.
    • multiuser: уточняет, что доступ к ресурсу могут получать несколько пользователей.

Дополнительные рекомендации

  • Проблемы при загрузке системы: Если монтирование не работает автоматически при загрузке, попробуйте выполнить sudo mount -a. Это может помочь вам диагностировать ошибки, которые происходят только в момент загрузки.

  • Проверка журнала Samba**: Если проблема все еще сохраняется, проверьте журналы Samba для получения дополнительной информации. Обычно они находятся в /var/log/samba/ и могут дать более детализированные сообщения об ошибках.

Заключение

Ваша проблема с ошибкой "mount.cifs permission denied" могло быть вызвано несколькими факторами, включая ошибки конфигурации, права файлов и параметры монтирования. Следуя указанным шагам, вы должны быть в состоянии успешно монтировать сетевой диск без нарушений доступа. Regularly check and adjust your configurations as needed to ensure optimal performance and security of your Samba shares.

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

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