Організація доступу до файлів на комп’ютері під керуванням операційної системи Ubuntu за допомогою samba. Samba - реалізація мережевого протоколу SBM/CIFS, що використовується для надання доступу до файлів, принтерів, портів та реалізації іншої взаємодії між елементами комп’ютерних мереж.
Першим кроком є встановлення самого пакету:
sudo apt-get install samba
Додаємо у файл /etc/shells запис /bin/false Створюємо групу для доступу до спільних файлів:
sudo addgroup smbgroup
Створюємо в цій групі користувача для доступу до спільних файлів:
sudo useradd samba -s /bin/false
sudo smbpasswd -a samba
sudo usermod -aG smbgroup samba
вводимо для нього пароль з яким він матиме доступ до файлів. Далі потрібно відкорегувати вміст файлу /etc/samba/smb.conf з урахуванням параметрів мережі та доступу до необхідних ресурсів. Створюємо директорії і видаємо права на них
sudo chown -R root:smbgroup /home/juno/Samba/write/
sudo chown -R root:smbgroup /home/juno/Samba/read/
sudo chmod -R 0777 /home/juno/Samba/write/
sudo chmod -R 0555 /home/juno/Samba/read/
Можна використати наступний файл конфігурації. Він налаштований для ПК що знаходиться в робочій групі Workgroup, користувач для авторизованого доступу - samba, та теки до яких надається доступ /home/juno/Samba/read та /home/juno/Samba/write.
[global]
workgroup = WORKGROUP
netbios name = sol
server string = %h server (Samba, Ubuntu)
hosts allow = 10.0.0.0/24
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
usershare allow guests = yes
follow symlinks = yes
wide links = yes
unix extensions = no
security = USER
interfaces = 10.0.0.2 enp34s0
bind interfaces only = yes
[read]
comment = Software space
path = /home/juno/Samba/read
read only = yes
public = no
guest ok = no
guest only = no
valid users @smbgroup
[write]
comment = Temporary file space
path = /home/juno/Samba/write
read only = no
public = no
guest ok = no
guest only = no
valid users @smbgroup
force create mode = 0777
force directory mode = 0777
Для анонімного доступу до вказаних ресурсів файл конфігурації та права на директорії такі:
sudo chown -R nobody:nogroup /home/juno/Samba/write/
sudo chown -R nobody:nogroup /home/juno/Samba/read/
sudo chmod -R 0777 /home/juno/Samba/write/
sudo chmod -R 0555 /home/juno/Samba/read/
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
[read]
comment = Software space
path = /home/juno/Samba/read
read only = yes
public = yes
guest ok = Yes
guest only = Yes
[write]
comment = Temporary file space
path = /home/juno/Samba/write
read only = no
public = yes
guest ok = Yes
guest only = Yes
force create mode = 0777
force directory mode = 0777
З виходом samba 4.11 відбулася відмова від протоколу SMB1, в той же час із виходом Windows 10 1709 відключено SMB guest access. Із 4 існуючих на той момент рішень на момент виходу 21H2 особисто у мене, для анонімного гостьового доступу, працює лише 1 - дозвіл гостьових smb-підключень у Windows.
Відкриваємо gpedit.msc, і далі Computer configuration\Administrative templates\Network\Lanman Workstation\Enable insecure guest logons.
Крім того пропоувалися варіанти:
[global]
....
client min protocol = SMB3
client max protocol = SMB3
....
[global]
....
server min protocol = SMB2_10
client min protocol = SMB2
client max protocol = SMB3
ntlm auth = yes
....