Smb client

Материал из pNp Wiki
Перейти к: навигация, поиск

Конфигурирование 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: \>

Ссылки