Я думаю, что эта статья в Википедии https://en.wikipedia.org/wiki/Raw_device очень хорошо объясняет это:
В вычислениях, особенно в Unix и Unix -подобные операционные системы, сырое устройство - это особый вид логического устройства, связанного с файл символьного устройства, позволяющий использовать запоминающее устройство, такое как жесткий диск. доступ к диску напрямую, минуя кеши операционной системы и буферы (хотя аппаратные кеши все еще могут использоваться).Приложения, такие как система управления базами данных, могут использовать необработанные устройства напрямую, что позволяет им управлять кэшированием данных, а не возложив эту задачу на операционную систему.
Во FreeBSD все файлы устройств фактически являются необработанными устройствами. Поддержка для не-сырые устройства были удалены в FreeBSD 4.0 для упрощения буферизации управления и повышения масштабируемости и производительности. 1
В ядре Linux сырые устройства объявлены устаревшими и запланированы для удаления. в какой-то момент, потому что вместо него можно использовать флаг O_DIRECT.
При подключении папки сервера к клиенту по сети необходимо задать 2вопроса:
Используйте ls -lh
в папке, чтобы проверить владельца файла и его группу. Обратите внимание, что Linux переводит UID в пользователя, если может, или показывает его просто как число, если не может.
Если вы не используете общую базу данных учетных записей, такую как LDAP (OpenLDAP или Windows Active Directory), и не подключаете к ней свой Linux с помощью PAM, у вас есть разныебазы данных пользователей на клиенте и сервере, каждая со своим собственным паролем пользователя. -Отображение UID (файл /etc/passwd
и его тень с паролем). Клиент может иметь пользователя "joe" с UID 1000, а сервер может иметь пользователя "joe" с UID 2000 и "mary" с UID 1000.
Есть несколько способов решить эту проблему с помощью Samba.
Используйте расширения Unix.
Это расширения протокола SMB, которые позволяют серверу сообщать UID клиенту. Итак, когда вы подключаетесь к серверу, предоставляя user=joe
сервер:
Это работает отлично, но тогда вам нужно синхронизировать ваши UIDS на клиенте и сервере, что может быть неудобно делать вручную (используйте OpenLDAP с pam_ldap, если вы действительно этого хотите).
Думаю, это ваша проблема!
Хуже всего бывает, когда сервер сообщает какой-то uid, а на клиенте нет пользователя с таким uid.Таким образом, вместо имени пользователя вы видите номер.
Заставьте клиент выбирать, какого пользователя использовать.
Когда вы монтируете общий ресурс с uid=
и отключаете настройку расширений unix unix extensions = no
на сервере smb. конф
.
user=
из учетных данных)uid=
.Вам даже не нужно иметь одних и тех же пользователей на клиенте и сервере, но удобно, чтобы они были одинаковыми. Но у них могут быть разные UIDS.
Итак, вот что вам нужно сделать, чтобы добавить нового пользователя:
На сервере
unix extensions = no
в глобальном разделе в smb.conf
useradd -m joe
smbpasswd -a joe
(введите пароль и запомните его)На клиенте
useradd -m joe && mkdir /home/joe/Home && chown joe /home/joe/Home
]/etc/fstab
//gannet8.local/joe /home/joe/Home cifs auto,user,rw,uid=joe,gid=joe,user=joe,password=PASS_HERE
Вы должны иметь возможность создайте сколько угодно пользователей, но после 10-15 из них вам следует подумать об OpenLDAP или Active Directory (если у вас много Windows-клиентов).
Читать https://www.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html
Особенно раздел «ВЛАДЕНИЕ ФАЙЛАМИ И КАТАЛОГАМИ И РАЗРЕШЕНИЯ»