Я, кажется, испытываю затруднения при понимании конфигураций самбы на Ubuntu. Скажем, у меня есть 4 папки в/srv, это медиа, доля, персональная бобом, и joe-персональная. У меня также есть 3 пользователя: боб, joe, и nas. Пользовательский боб и joe являются типичными пользователями (один из них отключен в Ubuntu, так как я не присваивал ему пароль для обоих пользователей, их файл в AccountsService имеет запись “SystemAccount=true”, таким образом, они не обнаруживаются на экране входа в систему). nas является администратором системы. Я использовал этого пользователя для установки NAS (для всего, что не должно быть сделано как корень), и я в настоящее время зарегистрирован как этот пользователь. Существуют также следующие группы пользователей: все-доля (включает боба, joe, nas), доля медиа (включает боба, nas), joe (включает joe, nas), и боб (включает боба, nas).
Первоначально, я установил chown nas:media-share media
и chown nas:all-share share
. Я также установил chown joe:joe joe-personal
и chown bob:bob bob-personal
и набор chmod 660 <foldername>
для всех этих папок. Доли были затем настроены как это:
[media]
path = /srv/media
comment = Media Share
writeable = yes
valid users = @media-share
[share]
path = /srv/share
comment = Common Share
writeable = yes
valid users = @all-share
[joe-personal]
path = /srv/joe-personal
comment = Personal Folder Joe
writeable = yes
valid users = @joe
[bob-personal]
path = /srv/bob-personal
comment = Personal Folder Bob
writeable = yes
valid users = @bob
Конечно, я также добавил всех этих пользователей к пользователям Samba DB. Однако я не смог получить доступ к любой из этих папок от любой машины с помощью любой возможной учетной записи пользователя (в Windows всегда говорится, что “У Вас нет разрешения получить доступ к …”).
Я затем добавил строку force user = nas
к каждому объявлению доли, измененному владение каждой папки к nas:nas и измененный полномочия пользователя на 700. Теперь все работает как очарование!
Единственная проблема состоит в том, что, очевидно, все новые файлы, созданные в любой из этих папок, принадлежат nas, в противоположность зарегистрированному удаленному пользователю, который на самом деле создал их. Это не серьезная проблема для меня, но все еще было бы действительно удобно видеть, кто создал что (для статистики, обвинения, и т.д.). У кого-либо есть идея, почему не было возможно получить доступ к чему-нибудь со старой конфигурацией?
Вот дамп моих глобальных конфигураций:
[global]
server string = %h Samba NAS
server role = standalone server
security = USER
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
username map = /etc/samba/smbusers
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
invalid users = root
Информация о системе: Ubuntu 16.04.02, актуальная, Samba, установленный вчера
Интересно, почему Вы использовали спецификацию в форме: valid users = @media-share
. Это должно указать групповой доступ: все пользователи в группе media-share
являются действительными пользователями. В Вашем случае я использовал бы: valid users = joe
или valid users = joe bob
, если доступ должен быть предоставлен обоим. write list
может также использоваться. Посмотрите руководство для получения дополнительной информации.