Пользователи не могут редактировать или добавлять файлы на сервере SMB, размещенном на компьютере с macOS: способы устранения проблемы

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

Эта статья предназначена для администраторов корпоративных и образовательных систем.

Проверьте сведения о сервере

Проверьте, правильно ли указано имя пользователя, пароль, имя хоста и IP-адрес сервера.

Выполните привязку к тому же каталогу, что и сервер

Если на сервере macOS Server запущена служба Open Directory либо он связан с Open Directory или Active Directory, выполните привязку с аутентификацией к тому же серверу каталогов. Это позволит клиентам использовать Kerberos и подписание сеансов. Чтобы настроить аутентификацию по протоколу Kerberos, также требуется указать DNS-имя сервера.

Включите NTLMv2 в Open Directory

Если вы используете Open Directory и клиенты нельзя привязать к главному серверу Open Directory, попробуйте включить NTLMv2.

  1. Определите, какие механизмы аутентификации включены для главного сервера Open Directory, используя следующую команду в приложении «Терминал»:

    dscl /LDAPv3/127.0.0.1 -read /config/dirserv apple-enabled-auth-mech

  2. Введите пароль администратора каталога. При необходимости пароль администратора Open Directory можно сбросить.

  3. Остановите и перезапустите службу Open Directory в приложении Server.app.

Если протокола SMB-NTLMv2 нет в результатах, вы можете добавить его вручную с помощью следующей команды терминала:

dscl -u diradmin -p /LDAPv3/127.0.0.1 -append /Config/dirserv apple-enabled-auth-mech SMB-NTLMv2

Проверьте доступ к серверу SMB

  1. Проверьте, ограничивается ли доступ пользователей, выполнив следующую команду в приложении «Терминал» на сервере SMB:

    dscl . read /Groups/com.apple.access_smb

  2. Определите идентификатор GUID пользователя:

    dscl /Search read /Users/ GeneratedUID

  3. Добавьте пользователя в список управления доступом к службам (SACL) SMB:

    sudo dscl /Local/Default append Groups/com.apple.access_smb GroupMembership sudo dscl /Local/Default append Groups/com.apple.access_smb GroupMembers

Чтобы удалить SACL, используйте следующую команду терминала:

sudo dscl /Local/Default delete /Groups/com.apple.access_smb

Проверьте общий доступ

Проверьте в настройках общего доступа, есть ли у пользователей (как отдельных, так и групп) доступ по крайней мере к одной общей папке.

Проверьте, разрешают ли списки ACL доступ для чтения и записи

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

Если пользователи могут добавлять новые файлы, но не могут редактировать созданные другими пользователями файлы, возможно, потребуется создать список ACL на уровне группы. Чтобы добавить ACL, используйте следующую командную строку (замените имя группы и путь к точке подключения их фактическими значениями):

sudo chmod -R +a "group:YourGroupName allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Volumes/volumename/path/to/share

Дата публикации: