Smb client
Содержание
Конфигурирование Samba. Сетевые директории пользователя
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
bash-completion
,policycoreutils
,policycoreutils-python
,policycoreutils-devel
,setroubleshoot-server
,samba
,samba-client
,cifs-utils
Конфигурирование сетевых директорий
В конфигурационный файле /etc/samba/smb.conf
создадим сетевую директорию share
,
которой будет соответствовать местоположение /srv/share
. Она будет видимой и доступна на запись пользователю (в нашем случае - andy
) на запись.
Приводим файл /etc/samba/smb.conf
к следующему виду:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[data]
comment = "data directory"
path = /srv/data/
valid users = %U
browseable = yes
read only = no
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775
[root@vm-01 srv]#
Теперь надо создать директорию /srv/data
и дать на нее права 750
для пользователя andy
:
[root@vm-01 srv]# cd /srv/
[root@vm-01 srv]# mkdir data/
[root@vm-01 srv]# chown andy:root data/
[root@vm-01 srv]# ls -lahi /srv/ | grep data
33992088 drwxr-xr-x. 2 andy root 6 Mar 20 14:49 data
[root@vm-01 srv]#
Теперь необходимо присвоить контекст selinux
для нашей директории:
[root@vm-01 srv]# semanage fcontext -at public_content_rw_t "/srv/data(/.*)?"
[root@vm-01 srv]# restorecon -vR /srv/data/
[root@vm-01 srv]# ls -lahiZ /srv/ | grep data
drwxr-xr-x. andy root unconfined_u:object_r:public_content_rw_t:s0 data
[root@vm-01 srv]#
Для записи в директории, надо открыть включить несколько переменных selinux
:
[root@vm-01 srv]# setsebool -P smbd_anon_write=on
[root@vm-01 srv]# setsebool -P samba_enable_home_dirs=on
[root@vm-01 srv]# getsebool -a | egrep "(smb|samba)"
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> on
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
smbd_anon_write --> on
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
[root@vm-01 srv]#
Поскольку пользователь andy
уже есть в нашей системе, то надо создать пользователя с таким же именем в
базе данных Samb
'ы
[root@vm-01 srv]# smbpasswd -a andy
New SMB password:
Retype new SMB password:
Added user andy.
[root@vm-01 srv]#
Посмотреть имеющихся пользователей Samb
'ы и их права, можно используя утилиту pdbedit
:
[root@vm-01 srv]# pdbedit -Lv
---------------
Unix username: andy
NT username:
Account Flags: [U ]
User SID: S-1-5-21-713007370-98759951-3604115452-1001
Primary Group SID: S-1-5-21-713007370-98759951-3604115452-513
Full Name: Andrew
Home Directory: \\vm-01\andy
HomeDir Drive:
Logon Script:
Profile Path: \\vm-01\andy\profile
Domain: VM-01
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 18:06:39 MSK
Kickoff time: Wed, 06 Feb 2036 18:06:39 MSK
Password last set: Tue, 20 Mar 2018 15:20:14 MSK
Password can change: Tue, 20 Mar 2018 15:20:14 MSK
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@vm-01 srv]#
Запуск
Запускаем сервис:
[root@vm-01 srv]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@vm-01 srv]# systemctl start smb
[root@vm-01 srv]# systemctl is-active smb
active
[root@vm-01 srv]#
Добавляем разрешение в файрволе:
[root@vm-01 srv]# firewall-cmd --add-service=samba --permanent
success
[root@vm-01 ~]# firewall-cmd --reload
success
[root@vm-01 srv]# firewall-cmd --list-services
samba http dns dhcpv6-client smtp ssh https mysql
[root@vm-01 srv]#
Проверка
С виртуальной машины vm-02
обратимся к сетевой директории при помощи утилиты smbclient
от пользователя andy
.
Для начала посмотрим список сетевых директорий:
[root@vm-02 ~]# smbclient -L //192.168.1.1/ -Uandy%test1234
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
Sharename Type Comment
--------- ---- -------
data Disk data directory
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.4.4)
andy Disk Home Directories
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@vm-02 ~]#
Подключимся к сетевой директории data
, а в ней создадим директорию и зальем какой-нибудь файл:
[root@vm-02 ~]# smbclient //192.168.1.1/data -Uandy%test1234
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> put
anaconda-ks.cfg .bashrc lb2.conf .pki/ .viminfo
.bash_history .cshrc .lesshst rhel-server-7.0-x86_64-dvd.iso whole_db.dmp
.bash_logout if_setup.txt mail.txt .ssh/
.bash_profile index.html .nmcli-history .tcshrc
smb: \> put if_setup.txt
putting file if_setup.txt as \if_setup.txt (174.3 kb/s) (average 174.3 kb/s)
smb: \> mkdir test
smb: \> dir
. D 0 Tue Mar 20 16:24:29 2018
.. D 0 Tue Mar 20 15:27:06 2018
if_setup.txt A 2142 Tue Mar 20 16:24:25 2018
test D 0 Tue Mar 20 16:24:29 2018
39908 blocks of size 524288. 30766 blocks available
smb: \>
То же самое сделаем со своей домашней директорией:
[root@vm-02 ~]# smbclient //192.168.1.1/andy -Uandy%test1234
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> dir
. D 0 Fri Feb 23 08:50:48 2018
.. D 0 Wed Nov 1 11:16:09 2017
.bash_logout H 18 Tue Jul 12 19:17:09 2016
.bash_profile H 193 Tue Jul 12 19:17:09 2016
.bashrc H 503 Thu Nov 2 11:43:08 2017
content D 0 Mon Jan 22 14:52:17 2018
.bash_history H 598 Tue Feb 27 07:38:32 2018
.ansible DH 0 Thu Feb 22 04:53:00 2018
.ssh DH 0 Fri Feb 23 08:50:48 2018
39908 blocks of size 524288. 30768 blocks available
smb: \> put
anaconda-ks.cfg .bashrc lb2.conf .pki/ .viminfo
.bash_history .cshrc .lesshst rhel-server-7.0-x86_64-dvd.iso whole_db.dmp
.bash_logout if_setup.txt mail.txt .ssh/
.bash_profile index.html .nmcli-history .tcshrc
smb: \> put lb2.conf
putting file lb2.conf as \lb2.conf (8.1 kb/s) (average 8.1 kb/s)
smb: \> mkdir newdir
smb: \> dir
. D 0 Tue Mar 20 16:34:54 2018
.. D 0 Wed Nov 1 11:16:09 2017
.bash_logout H 18 Tue Jul 12 19:17:09 2016
.bash_profile H 193 Tue Jul 12 19:17:09 2016
.bashrc H 503 Thu Nov 2 11:43:08 2017
content D 0 Mon Jan 22 14:52:17 2018
.bash_history H 598 Tue Feb 27 07:38:32 2018
.ansible DH 0 Thu Feb 22 04:53:00 2018
.ssh DH 0 Fri Feb 23 08:50:48 2018
lb2.conf A 141 Tue Mar 20 16:34:48 2018
newdir D 0 Tue Mar 20 16:34:54 2018
39908 blocks of size 524288. 30768 blocks available
smb: \>