Вопрос или проблема
У меня есть странная ошибка. Я пытаюсь подключить smb/cifs общий ресурс сервера Windows 2019 как сервер, используя Debian в качестве клиента. Следующая точная команда работает на Debian 11.11, но не на 12.9 с myuser как пользователем домена:
mount -v -t cifs "//host/Backup/myhost" /mnt/backup-myhost/ -o "username=myuser,password=mypassword,domain=mydomain"
что выдает для обоих подробный вывод
mount.cifs kernel mount options: ip=1.2.3.4,unc=\\host\Backup,user=myuser,domain=mydomain,prefixpath=myhost,pass=*******
Debian 12.9 выдает дополнительную ошибку
mount error(13): Permission denied
Я также пробовал различные опции “sec” и “version”. Разрешения /mnt/backup-myhost/ равны 755 на обоих. Сервер Windows сообщает, что пользователь “root” (sic!) пытается подключиться, но mount использует “myuser”.
Вот последняя часть вывода dmesg Debian 12.9, но я не вижу причины даже после сравнения с Debian 11.11:
...
[499614.187245] CIFS: fs/smb/client/transport.c: wait_for_free_credits: remove 1 credits total=0
[499614.187248] CIFS: fs/smb/client/transport.c: Sending smb: smb_len=372
[499614.188538] CIFS: fs/smb/client/connect.c: RFC1002 header 0x48
[499614.188542] CIFS: fs/smb/client/smb2misc.c: SMB2 data length 0 offset 0
[499614.188543] CIFS: fs/smb/client/smb2misc.c: SMB2 len 73
[499614.188545] CIFS: fs/smb/client/smb2ops.c: smb2_add_credits: added 1 credits total=1
[499614.188556] CIFS: fs/smb/client/transport.c: cifs_sync_mid_result: cmd=1 mid=2 state=64
[499614.188560] CIFS: Status code returned 0xc0000070 STATUS_INVALID_WORKSTATION
[499614.188562] CIFS: fs/smb/client/smb2maperror.c: Mapping SMB2 status code 0xc0000070 to POSIX err -13
[499614.188563] CIFS: fs/smb/client/misc.c: Null buffer passed to cifs_small_buf_release
[499614.188566] CIFS: VFS: \\host Send error in SessSetup = -13
[499614.188569] CIFS: fs/smb/client/connect.c: VFS: leaving cifs_get_smb_ses (xid = 111) rc = -13
[499614.188572] CIFS: fs/smb/client/dfs_cache.c: cache_refresh_path: search path: \host\Backup
[499614.188576] CIFS: fs/smb/client/dfs_cache.c: get_dfs_referral: get an DFS referral for \host\Backup
[499614.188586] CIFS: fs/smb/client/connect.c: VFS: leaving mount_put_conns (xid = 110) rc = 0
[499614.188588] CIFS: VFS: cifs_mount failed w/return code = -13
CIFS: Status code returned 0xc0000070 STATUS_INVALID_WORKSTATION
Эту ошибку Microsoft документирует как:
Учетная запись пользователя ограничена, и она не может использоваться для входа с данного рабочей станции.
Это была бы проблема настройки пользователя Active Directory.
В Active Directory откройте свойства этого пользователя. Перейдите на вкладку Account
и нажмите кнопку Log On To...
. Убедитесь, что либо выбран параметр “Этот пользователь может входить на… все компьютеры”, либо хосты Debian 11 и 12 перечислены в списке разрешенных компьютеров.
.
Ответ или решение
На рассмотрение нам предоставлена ситуация, в которой сама команда монтирования SMB/CIFS ресурса, успешно работающая на Debian 11, не работает на Debian 12, и ожидаемо используемый пользователь отличается от фактического (система пытается использовать пользователя "root"). Основные моменты самой задачи включают в себя попытку монтирования сетевого ресурса Windows Server 2019 в Debian 12 с ошибкой доступа и сообщение от сервера о попытке использования пользователя "root", в то время как команда монтирования использует пользователя "myuser".
Теория
Различия в поведении между Debian 11 и Debian 12, вероятнее всего, связаны с изменениями в программном обеспечении, ответственном за работу с CIFS/Samba монтированиями. Возможны задействования новых зависимостей, обновление пакетов, или даже изменения конфигурации на уровне ядра операционной системы. Ошибка "Permission denied" и упоминание некорректности источника рабочей станции ("STATUS_INVALID_WORKSTATION") могут сигнализировать о нескольких вещах:
- Изменения в заголовках и параметрах безопасности SMB: Возможно, появились изменения в способах обработки учетных данных и их передачи между системами.
- Политики безопасности Active Directory: Важным фактором является настройка учетной записи пользователя в Active Directory. Ошибка
STATUS_INVALID_WORKSTATION
указывает, что учетная запись имеет ограничения для входа с текущей машины. - Клиентские параметры по умолчанию: В новой версии могут по умолчанию использоваться другие механизмы аутентификации или шифрования, которые требуют дополнительной настройки для совместимости с вашим сервером.
Пример
В вашем случае важно, что Debian 11 и Debian 12 по-разному взаимодействуют с сервером. На самом сервере Windows Server 2019 учетная запись "myuser" имеет ограничения по подключению с определенных машин. Это подтверждает сообщение об ошибке с идентификатором 0xc0000070 STATUS_INVALID_WORKSTATION
. Данный код ошибки указывает на то, что пользователь может иметь ограничения входа на определенные рабочие станции в настройках Active Directory. Аккаунт может быть настроен только для определенных машин, и ваша Debian 12 не входит в этот список.
Применение
-
Проверка Active Directory: В первую очередь необходимо проверить настройки учетной записи в Active Directory. Убедитесь, что пользователь "myuser" может логиниться с вашего хоста Debian 12. Откройте свойства аккаунта и проверьте опцию "Log on To…". Убедитесь, что Debian 12 включена в список допустимых машин, или выберите опцию "все компьютеры".
-
Проверка конфигураций на уровне клиента Debian 12:
- Проверьте, какие версии SMB/CIFS используются по умолчанию в Debian 12 и попробуйте явно установить SMB version, с которой сервер может работать (
vers=3.0
например). - Проверьте параметры безопасности, например
sec=ntlm
илиsec=ntlmssp
, они зависят от вашей конфигурации сервера.
- Проверьте, какие версии SMB/CIFS используются по умолчанию в Debian 12 и попробуйте явно установить SMB version, с которой сервер может работать (
-
Проверка прав и владельцев каталогов: Убедитесь, что директория
/mnt/backup-myhost/
имеет правильные права и принадлежит нужному пользователю. Это может также повлиять на процесс монтирования. -
Логи и отладка: Пересмотрите лог-файлы, например
dmesg
,syslog
,journalctl
, чтобы получить более детальную информацию о взаимодействии клиент-сервер. Это может дать дополнительное представление о причине ошибки. -
Настройки системных параметров в Debian 12: В случае, если ни одно из вышеперечисленных решений не помогает, проверьте документацию на предмет изменений в модулях или исходниках, влияющих на функциональность CIFS. Возможно, потребуется ручная настройка параметров клиента через файлы конфигурации, такие как
/etc/samba/smb.conf
.
Такой системный подход не только поможет устранить проблему, но и позволит лучше понять различия и новшества между различными версиями Debian, что в дальнейшем сможет помочь избежать подобных ситуаций.