
У меня в одной сети есть машина с Windows Server 2019 и машина с CentOS 8. На сервере CentOS размещено веб-приложение, которое использует файлы с машины с Windows.
Чтобы прочитать эти файлы, я создал общий ресурс Samba на стороне Windows и смонтировал его на стороне CentOS через mount -t cifs //myserver/share /media/windows
.
Это сработало, но я заметил некоторые проблемы. Иногда при попытке доступа к файлам из этого общего ресурса Samba он просто лежал там. Размонтирование и повторное монтирование, похоже, не помогало, так как проблема просто повторялась.
Я решил попробовать использовать NFS вместо Samba для обмена файлами между Windows 2019 и CentOS. После настройки той же папки, но вместо этого как общего ресурса NFS, и использования mount -t nfs myserver:/share /media/windows
я смог получить доступ к файлам, которые могли бы заставить Samba зависнуть.
Проблема, с которой я столкнулся, заключается в том, что когда я создаю новый файл в общем ресурсе NFS со стороны CentOS, на стороне Windows возникают неправильные разрешения, и пользователи на сервере Windows не могут получить доступ к файлам.
Я изучил этот вопрос и попытался настроить сопоставление пользователей NFS, но, по-моему, я сделал это неправильно.
Используя PowerShell, я запустил:
Install-NfsMappingStore -InstanceName "NFSMappingStore" -LdapPort 10389
И пила:
Успешно создан экземпляр ADLDS с именем NFSMappingStore на сервере MYSERVER, экземпляр работает на порту 10389, а раздел — CN=nfs,DC=nfs.
Затем я побежал:
Set-NfsMappingStore -EnableLdapLookup $true -LdapNamingContext "CN=nfs,DC=nfs"
-LdapServer localhost:10389
Увидев, что это сработало, я попытался добавить пользователя:
New-NfsMappedIdentity -MappingStore LDAP -Server localhost:10389
-UserIdentifier 980 -GroupIdentifier 1001
-UserName CentOsUser -PrimaryGroup "Domain Users"
Казалось, это работает правильно, поэтому затем, вернувшись на сторону CentOS, я смонтировал общий ресурс NFS как CentOsUser
пользователь с помощью:
sudo -u CentOsUser -g CentOsGroup mount -t nfs myserver:/share /media/windows
Это сработало, и я смог создать и записать файл. Но на стороне Windows я вижу, что владельцем (ново созданного) файла на самом деле S-1-5-88-1-980
является CentOsUser
.
Я также вижу, S-1-5-88-2-1001
а также S-1-5-88-3-420
и S-1-5-88-4
.
Почему он отображается S-1-5-88-1-980
? Я думал, что я сопоставил его 980
с CentOsUser
пользователем? Я также думал, что я сопоставил его 1001
с Domain Users
группой, так почему он отображается S-1-5-88-2-1001
?
решение1
У меня была та же проблема, и я боролся с ней уже долгое время...
- Теперь я интегрировал Linux-сервер с AD.
- Управление всеми файлами и разрешениями на уровне каталогов из Windows
- Пользователь приложения, получающий доступ к файлам из общего ресурса Windows NFS, является пользователем, прошедшим аутентификацию AD.
Вышеуказанная процедура все еще работает для меня.
решение2
Лучшее и самое простое решение, которое я нашел, этоhttps://github.com/billziss-gh/sshfs-win, подключенные серверы отображаются как полностью функционирующие сетевые диски
Редактировать: Монтирование общего ресурса NTFS в Linux
mkdir /mnt/win1
mount -t cifs //10.10.1.100/share -o username=myUser,password=myPassword /mnt/win1