Smb group — различия между версиями
Andy (обсуждение | вклад) (→Проверяем) |
Andy (обсуждение | вклад) (→Многопользовательское монтирование сетевых директорий) |
||
Строка 384: | Строка 384: | ||
528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf | 528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf | ||
528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt | 528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt | ||
+ | 528168 -rw-rw----. 1 1002 kelly 0 Mar 22 13:53 mary_was_here.txt | ||
+ | [andy@vm-02 ~]$ | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== Проверка ==== | ||
+ | Внесем изменения в файл <code>/etc/fstab</code>: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-02 ~]# cat /etc/fstab | ||
+ | |||
+ | # | ||
+ | # /etc/fstab | ||
+ | # Created by anaconda on Wed Nov 22 11:45:46 2017 | ||
+ | # | ||
+ | # Accessible filesystems, by reference, are maintained under '/dev/disk' | ||
+ | # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info | ||
+ | # | ||
+ | /dev/mapper/rhel-root / xfs defaults 1 1 | ||
+ | UUID=cc10fe05-aa22-42d6-a18e-39d1eb5ad338 /boot xfs defaults 1 2 | ||
+ | #/dev/sda /media xfs _netdev 0 2 | ||
+ | //192.168.1.1/account /mnt/account cifs credentials=/root/smbpass,multiuser,sec=ntlmssp,_netdev 0 0 | ||
+ | [root@vm-02 ~]# | ||
+ | </syntaxhighlight> | ||
+ | Теперь cмонтируем директорию через чтение <code>/etc/fstab</code>: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-02 ~]# mount -a | ||
+ | [root@vm-02 ~]# ls -lahi /mnt/account/ | ||
+ | total 4.0K | ||
+ | 528222 drwxrwx---. 2 root kelly 0 Mar 22 2018 . | ||
+ | 164 drwxr-xr-x. 3 root root 20 Mar 22 13:34 .. | ||
+ | 528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf | ||
+ | 528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt | ||
+ | 528168 -rw-rw----. 1 1002 kelly 0 Mar 22 13:53 mary_was_here.txt | ||
+ | [root@vm-02 ~]# | ||
+ | </syntaxhighlight> | ||
+ | И проверим еще раз возможность записи в сетевую директорию от пользвателей <code>kelly</code> и <code>mary</code>: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-02 ~]# su - andy | ||
+ | Last login: Thu Mar 22 13:48:24 MSK 2018 on pts/0 | ||
+ | [andy@vm-02 ~]$ cifscreds clearall | ||
+ | You have no stashed cifs credentials | ||
+ | If you want to add them use: | ||
+ | cifscreds add | ||
+ | [andy@vm-02 ~]$ cifscreds add -u kelly 192.168.1.1 | ||
+ | Password: | ||
+ | [andy@vm-02 ~]$ > /mnt/account/kelly_was_here_once_again.txt | ||
+ | [andy@vm-02 ~]$ cifscreds clearall | ||
+ | [andy@vm-02 ~]$ cifscreds add -u mary 192.168.1.1 | ||
+ | Password: | ||
+ | [andy@vm-02 ~]$ > /mnt/account/mary_was_here_once_again.txt | ||
+ | [andy@vm-02 ~]$ ls -lahi /mnt/account/ | ||
+ | total 4.0K | ||
+ | 528222 drwxrwx---. 2 root kelly 0 Mar 22 2018 . | ||
+ | 164 drwxr-xr-x. 3 root root 20 Mar 22 13:34 .. | ||
+ | 528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf | ||
+ | 528169 -rw-rw----. 1 kelly kelly 0 Mar 22 14:10 kelly_was_here_once_again.txt | ||
+ | 528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt | ||
+ | 528170 -rw-rw----. 1 kelly kelly 0 Mar 22 14:11 mary_was_here_once_again.txt | ||
528168 -rw-rw----. 1 1002 kelly 0 Mar 22 13:53 mary_was_here.txt | 528168 -rw-rw----. 1 1002 kelly 0 Mar 22 13:53 mary_was_here.txt | ||
[andy@vm-02 ~]$ | [andy@vm-02 ~]$ |
Текущая версия на 16:50, 22 марта 2018
Содержание
Конфигурирование Samba. Сетевые директории группы
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
bash-completion
,policycoreutils
,policycoreutils-python
,policycoreutils-devel
,setroubleshoot-server
,samba
,samba-client
,cifs-utils
Конфигурирование сетевых директорий для групп
В конфигурационный файле /etc/samba/smb.conf
создадим сетевую директорию account
,
которой будет соответствовать местоположение /srv/account
. Она будет видимой и доступна на запись группе пользователей (в нашем случае - acoount
) на запись.
Создадим группу account
, а так же пользователей kelly
и mary
, которые будут находится в группе account
:
[root@vm-01 ~]# groupadd account
[root@vm-01 ~]# useradd kelly
[root@vm-01 ~]# useradd mary
[root@vm-01 ~]# usermod -aG account kelly
[root@vm-01 ~]# usermod -aG account mary
[root@vm-01 ~]# id kelly
uid=1001(kelly) gid=1002(kelly) groups=1002(kelly),1001(account)
[root@vm-01 ~]# id mary
uid=1002(mary) gid=1003(mary) groups=1003(mary),1001(account)
[root@vm-01 ~]#
Теперь надо создать директорию /srv/account
и дать на нее права 770
для пользователя root
и группы account
:
[root@vm-01 ~]# mkdir /srv/account
[root@vm-01 ~]# chown -R root:account /srv/account/
[root@vm-01 ~]# chmod 770 /srv/account/
Теперь необходимо присвоить контекст selinux
для нашей директории:
[root@vm-01 ~]# semanage fcontext -at public_content_rw_t "/srv/account(/.*)?"
[root@vm-01 ~]# restorecon -vR /srv/account/
restorecon reset /srv/account context unconfined_u:object_r:var_t:s0->unconfined_u:object_r:public_content_rw_t:s0
[root@vm-01 ~]# ls -lahiZ /srv/ | grep account
drwxrwx---. root account unconfined_u:object_r:public_content_rw_t:s0 account
[root@vm-01 ~]#
Добавляем настройки нашей сетевой директории в файл /etc/samba/smb.conf
:
[root@vm-01 ~]# cat /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
[account]
comment = "account directory"
path = /srv/account
valid users = +account
write list = +account
force group = +account
create mask = 0770
directory mask = 0770
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 ~]#
К сетевой директория account
, имеют доступ на просмотр и запись только те пользователи, которые входят в группу account
,
файлы и директории созданные данной группой будут иметь маску 770
и им будет принудительно выставлена группа account
.
Далее, надо создать пользователей в базе данных Samb
'ы
[root@vm-01 ~]# smbpasswd -a mary
New SMB password:
Retype new SMB password:
Added user mary.
[root@vm-01 ~]# smbpasswd -a kelly
New SMB password:
Retype new SMB password:
Added user kelly.
[root@vm-01 ~]# pdbedit -Lv
---------------
Unix username: mary
NT username:
Account Flags: [U ]
User SID: S-1-5-21-713007370-98759951-3604115452-1002
Primary Group SID: S-1-5-21-713007370-98759951-3604115452-513
Full Name:
Home Directory: \\vm-01\mary
HomeDir Drive:
Logon Script:
Profile Path: \\vm-01\mary\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: Wed, 21 Mar 2018 13:05:15 MSK
Password can change: Wed, 21 Mar 2018 13:05:15 MSK
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
---------------
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
---------------
Unix username: kelly
NT username:
Account Flags: [U ]
User SID: S-1-5-21-713007370-98759951-3604115452-1003
Primary Group SID: S-1-5-21-713007370-98759951-3604115452-513
Full Name:
Home Directory: \\vm-01\kelly
HomeDir Drive:
Logon Script:
Profile Path: \\vm-01\kelly\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: Wed, 21 Mar 2018 13:05:25 MSK
Password can change: Wed, 21 Mar 2018 13:05:25 MSK
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@vm-01 ~]#
Запуск
Перезапускаем сервис:
[root@vm-01 ~]# systemctl restart smb
[root@vm-01 ~]# systemctl status -l smb
● smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-03-21 13:08:25 MSK; 10s ago
Main PID: 7676 (smbd)
Status: "smbd: ready to serve connections..."
CGroup: /system.slice/smb.service
├─7676 /usr/sbin/smbd
├─7677 /usr/sbin/smbd
├─7678 /usr/sbin/smbd
└─7679 /usr/sbin/smbd
Mar 21 13:08:25 vm-01 systemd[1]: Starting Samba SMB Daemon...
Mar 21 13:08:25 vm-01 smbd[7676]: [2018/03/21 13:08:25.117833, 0] ../lib/util/become_daemon.c:124(daemon_ready)
Mar 21 13:08:25 vm-01 systemd[1]: Started Samba SMB Daemon.
Mar 21 13:08:25 vm-01 smbd[7676]: STATUS=daemon 'smbd' finished starting up and ready to serve connections
[root@vm-01 ~]#
Проверка
С виртуальной машины vm-02
обратимся к сетевой директории при помощи утилиты smbclient
от пользователя andy
.
Для начала посмотрим список сетевых директорий:
[root@vm-01 ~]# smbclient -L //192.168.1.1/ -U mary%mary
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
Sharename Type Comment
--------- ---- -------
data Disk data directory
account Disk account directory
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.4.4)
mary Disk Home Directories
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@vm-01 ~]#
Подключимся к сетевой директории data
, а в ней создадим директорию и зальем какой-нибудь файл:
[root@vm-01 ~]# smbclient //192.168.1.1/account -U mary%mary
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> mkdir newdirectory
smb: \> put ab-1.conf
putting file ab-1.conf as \ab-1.conf (189.4 kb/s) (average 189.5 kb/s)
smb: \> dir
. D 0 Wed Mar 21 13:17:42 2018
.. D 0 Wed Mar 21 12:27:32 2018
newdirectory D 0 Wed Mar 21 13:17:38 2018
ab-1.conf A 194 Wed Mar 21 13:17:42 2018
20432896 blocks of size 1024. 15755352 blocks available
smb: \>
Посмотрим на сервере vm-01
каким владельцам принадлежат файлы и директории и с какими правами они создались:
[root@vm-01 ~]# ls -lahi /srv/account/
total 4.0K
528222 drwxrwx---. 3 root account 43 Mar 21 13:17 .
16778219 drwxr-xr-x. 5 root root 45 Mar 21 12:27 ..
528160 -rwxrw----. 1 mary account 194 Mar 21 13:17 ab-1.conf
57641600 drwxrwx---. 2 mary account 6 Mar 21 13:17 newdirectory
[root@vm-01 ~]#
Теперь, подключимся к сетевой директории account
пользователем kelly
и удалим директорию:
[root@vm-01 ~]# smbclient //192.168.1.1/account -U kelly%kelly
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> dir
. D 0 Wed Mar 21 13:17:42 2018
.. D 0 Wed Mar 21 12:27:32 2018
newdirectory D 0 Wed Mar 21 13:17:38 2018
ab-1.conf A 194 Wed Mar 21 13:17:42 2018
20432896 blocks of size 1024. 15755312 blocks available
smb: \> rmdir newdirectory\
smb: \> dir
. D 0 Wed Mar 21 13:20:24 2018
.. D 0 Wed Mar 21 12:27:32 2018
ab-1.conf A 194 Wed Mar 21 13:17:42 2018
20432896 blocks of size 1024. 15755312 blocks available
smb: \>
А вот пользователю andy
доступ к сетевой директории account
запрещен:
[root@vm-01 ~]# smbclient //192.168.1.1/account -U andy%test1234
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
tree connect failed: NT_STATUS_ACCESS_DENIED
[root@vm-01 ~]# smbclient //192.168.1.1/data -U andy%test1234
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> quit
[root@vm-01 ~]#
Монтирование сетевых директорий
В файл /etc/fstab
необходимо вписать сетевую директорию, место монтирования и учетную запись пользователя вместе с указанием пароля. Однако, в /etc/fstab
данные пользователя вписывать не лучшая идея, для этого используется директрива credentials
которая содержит путь к файлу с логином и паролем пользователя, от имени которого
происходит монтирование сетевой директории. Формат файла, на который ссылается директива credentials
предельно прост:
username=kelly
password=kelly
Прописываем монтирование в /etc/fstab
:
[root@vm-02 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Nov 22 11:45:46 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=cc10fe05-aa22-42d6-a18e-39d1eb5ad338 /boot xfs defaults 1 2
#/dev/sda /media xfs _netdev 0 2
//192.168.1.1/account /root/kelly cifs credentials=/root/smbpass,_netdev 0 0
[root@vm-02 ~]#
Проверка
С виртуальной машины vm-02
смонтируем сетевую директорию при помощи утилиты mount
с опцией -t cifs
, от пользователя root
:
[root@vm-02 ~]# mount -t cifs -o credentials=/root/smbpass //192.168.1.1/account /root/kelly/
[root@vm-02 ~]# ls -lahi /root/kelly/
total 8.0K
528222 drwxrwx---. 2 root 1001 0 Mar 21 14:20 .
67149953 dr-xr-x---. 6 root root 4.0K Mar 22 09:55 ..
528160 -rwxrw----. 1 1002 1001 194 Mar 21 14:17 ab-1.conf
[root@vm-02 ~]#
Отмонтируем директорию и смонтируем ее снова, через чтение /etc/fstab
:
[root@vm-02 ~]# umount /root/kelly/
[root@vm-02 ~]# mount -a
[root@vm-02 ~]# ls -lahi /root/kelly/
total 8.0K
528222 drwxrwx---. 2 root 1001 0 Mar 21 14:20 .
67149953 dr-xr-x---. 6 root root 4.0K Mar 22 09:55 ..
528160 -rwxrw----. 1 1002 1001 194 Mar 21 14:17 ab-1.conf
[root@vm-02 ~]#
Многопользовательское монтирование сетевых директорий
Проблема предыдущего подхода в том, что после монтирования директория будет доступна одному пользователю, для того что бы
несколько пользователей могли работать в сетевой директории, надо воспользоваться опцией multiuser
На машине vm-02
создаем пользователя kelly
:
[root@vm-02 ~]# useradd kelly
Затем, создаем точку монтирования /mnt/account
:
[root@vm-02 ~]# mkdir /mnt/account
[root@vm-02 ~]# mount -t cifs -o multiuser,sec=ntlmssp,credentials=/root/smbpass //192.168.1.1/account /mnt/account/
Переключаемся в пользователя kelly
, получаем учетные данные для пользователя от сервера 192.168.1.1
и создаем файл в нашей сетевой директории:
[root@vm-02 ~]# su - kelly
[kelly@vm-02 ~]$ ls -lahi /mnt/account
ls: cannot access /mnt/account: Permission denied
[kelly@vm-02 ~]$ cifscreds add 192.168.1.1
Password:
[kelly@vm-02 ~]$ echo $?
0
[kelly@vm-02 ~]$ ls -lahi /mnt/account
total 4.0K
528222 drwxrwx---. 2 root kelly 0 Mar 21 14:20 .
164 drwxr-xr-x. 3 root root 20 Mar 22 13:34 ..
528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf
[kelly@vm-02 ~]$ > /mnt/account/kelly_was_here.txt
Теперь переключаемся в пользователя andy
и получаем учетные данные для пользователя mary
от сервера 192.168.1.1
и создаем файл в нашей сетевой директории:
[root@vm-02 ~]# su - andy
Last login: Thu Mar 22 13:38:06 MSK 2018 on pts/0
[andy@vm-02 ~]$ ls -lahi /mnt/account
ls: cannot access /mnt/account: Permission denied
[andy@vm-02 ~]$ cifscreds add -u mary 192.168.1.1
Password:
[andy@vm-02 ~]$ ls -lahi /mnt/account/
total 4.0K
528222 drwxrwx---. 2 root kelly 0 Mar 22 2018 .
164 drwxr-xr-x. 3 root root 20 Mar 22 13:34 ..
528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf
528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt
[andy@vm-02 ~]$ >/mnt/account/mary_was_here.txt
[andy@vm-02 ~]$ ls -lahi /mnt/account/
total 4.0K
528222 drwxrwx---. 2 root kelly 0 Mar 22 2018 .
164 drwxr-xr-x. 3 root root 20 Mar 22 13:34 ..
528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf
528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt
528168 -rw-rw----. 1 1002 kelly 0 Mar 22 13:53 mary_was_here.txt
[andy@vm-02 ~]$
Проверка
Внесем изменения в файл /etc/fstab
:
[root@vm-02 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Nov 22 11:45:46 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=cc10fe05-aa22-42d6-a18e-39d1eb5ad338 /boot xfs defaults 1 2
#/dev/sda /media xfs _netdev 0 2
//192.168.1.1/account /mnt/account cifs credentials=/root/smbpass,multiuser,sec=ntlmssp,_netdev 0 0
[root@vm-02 ~]#
Теперь cмонтируем директорию через чтение /etc/fstab
:
[root@vm-02 ~]# mount -a
[root@vm-02 ~]# ls -lahi /mnt/account/
total 4.0K
528222 drwxrwx---. 2 root kelly 0 Mar 22 2018 .
164 drwxr-xr-x. 3 root root 20 Mar 22 13:34 ..
528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf
528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt
528168 -rw-rw----. 1 1002 kelly 0 Mar 22 13:53 mary_was_here.txt
[root@vm-02 ~]#
И проверим еще раз возможность записи в сетевую директорию от пользвателей kelly
и mary
:
[root@vm-02 ~]# su - andy
Last login: Thu Mar 22 13:48:24 MSK 2018 on pts/0
[andy@vm-02 ~]$ cifscreds clearall
You have no stashed cifs credentials
If you want to add them use:
cifscreds add
[andy@vm-02 ~]$ cifscreds add -u kelly 192.168.1.1
Password:
[andy@vm-02 ~]$ > /mnt/account/kelly_was_here_once_again.txt
[andy@vm-02 ~]$ cifscreds clearall
[andy@vm-02 ~]$ cifscreds add -u mary 192.168.1.1
Password:
[andy@vm-02 ~]$ > /mnt/account/mary_was_here_once_again.txt
[andy@vm-02 ~]$ ls -lahi /mnt/account/
total 4.0K
528222 drwxrwx---. 2 root kelly 0 Mar 22 2018 .
164 drwxr-xr-x. 3 root root 20 Mar 22 13:34 ..
528160 -rwxrw----. 1 1002 kelly 194 Mar 21 14:17 ab-1.conf
528169 -rw-rw----. 1 kelly kelly 0 Mar 22 14:10 kelly_was_here_once_again.txt
528167 -rw-rw----. 1 kelly kelly 0 Mar 22 13:48 kelly_was_here.txt
528170 -rw-rw----. 1 kelly kelly 0 Mar 22 14:11 mary_was_here_once_again.txt
528168 -rw-rw----. 1 1002 kelly 0 Mar 22 13:53 mary_was_here.txt
[andy@vm-02 ~]$