RHCE:samba共享文件服务器,客户端安装配置



Samba客户端配置

访问SMB共享

手动挂载和卸载SMB文件系统

1.安装软件包:cifs-utilssamba-client

2.识别要访问的远程共享:smblient -L //server

3.创建挂载点

4.挂载

Ø 手动挂载

mount -t cifs -o guest //server/share /mountpoint

-tSMB共享的文件类型

-o:以某个账户身份挂载。

Ø 永久挂载

编辑/etc/fstab并添加

//server/share /mountpoint cifs guest 0 0

 

客户端安装:

yum install -y cifs-utils samba-client

 

查看服务端共享出来的文件:

Smbclient -L //server

 

挂载查看到的文件:

mount -t cifs  //172.16.10.10   /srv/test

 

 

 

SMB共享进行身份验证

SMB服务器通常限制对特定用户和用户组的访问。如果要访问受保

护的共享,需向SMB服务器提供合适的凭据

身份验证的一个常用方法是用户名和密码对。这些对既可添加至

mount命令(或/etc/fstab条目),也可存储在挂载操作期间被引用的

凭据文件中。如果未提供密码,mount命令将会提示输入密码,但是使

/etc/fstab时必须提供密码。可通过guest选项明确请求来宾访问权限。

 

 

SMB共享进行身份验证

mount -t cifs -o username=watson //server/cases /mountpoint

/mountpoint中挂载SMB共享//serverX/cases并尝试以watson执行身份

验证。在此例中,mount命令将提示输入密码

Ø Mount -t cifs -o  credentials=/secure/sherlock //server/cases /mountpoint

/mountpoint中挂载//serverX/cases并尝试使用存储于/secure/sherlock中的凭据执行身份验证

 

凭据文件格式:

username=xxx

password=xxx

domain=domain

注意:凭据文件应仅具有root访问权限的某个安全位置如chmod600

 

 

挂载windows文件到linux目录下:

vim /etc/smb.txt

username=adfasdf

password=asdf

domain=asd.com

 

chmod 600 /etc/smb.txt

 

mount -t cifs -o username="rsc\administrator",password="123456"  //172.16.10.10 /srv/test

 

mount -t cifs -o credentials=/etc/smb.txt  //172.16.10.10 /srv/test

 

 

 

通过将帐号密码写入配置文件中:

server端的samba共享文件挂载到desktop服务器的/mnt/samba目录下:

[root@desktop ~]# cat /root/smb.txt

username=root

password=redhat

 

[root@desktop ~]# mount -t cifs -o credentials=/root/smb.txt //172.25.0.11/smb1 /mnt/samba

[root@desktop ~]# ll /mnt/samba/

total 0

-rw-r--r--. 1 root root 0 Dec  8 17:19 move1

-rw-r--r--. 1 root root 0 Dec  8 17:19 move10

-rw-r--r--. 1 root root 0 Dec  8 17:19 move2

-rw-r--r--. 1 root root 0 Dec  8 17:19 move3

-rw-r--r--. 1 root root 0 Dec  8 17:19 move4

-rw-r--r--. 1 root root 0 Dec  8 17:19 move5

-rw-r--r--. 1 root root 0 Dec  8 17:19 move6

-rw-r--r--. 1 root root 0 Dec  8 17:19 move7

-rw-r--r--. 1 root root 0 Dec  8 17:19 move8

-rw-r--r--. 1 root root 0 Dec  8 17:19 move9

 

通过命令行指定帐号和密码:

[root@desktop mnt]# mount -t cifs -o username="root",password="redhat" //172.25.0.11/smb1 /mnt/samba

 

查看挂载的详细参数:

[root@desktop mnt]# mount | grep "172.25.0.11"

//172.25.0.11/smb1 on /mnt/samba type cifs

 

(rw,relatime,vers=1.0,cache=strict,username=root,domain=SERVER,uid=0,noforceuid,gid=0,noforcegid,addr=172.25.0.11,unix,posixpaths,serverino,acl,r

 

size=1048576,wsize=65536,actimeo=1)

 

 

 

使用自动挂载程序挂载SMB文件系统

 当某一进程试图访问SMB共享上的文件时,可以将自动挂

载程序(或autofs)服务配置为按需挂载SMB共享。当共享

不再使用并处于不活动状态达一段期间以后,自动挂载程序将会

卸载该共享。

自动挂载步骤:

1.安装autofs软件包

2.添加一个可识别共享基础目录和关联映射文件的

auto.master.d配置文件

3.创建或编辑映射文件,以包括SMB共享的挂载详细信息

4.启用并启动autofs服务

 

/bakerst/casesSMB共享//server/cases创建一个自动挂载,并

根据凭据文件/secure/sherlock进行身份验证

1.vim /etc/auto.master.d/bakerst.autofs(编辑主映射文件)

/bakerst /etc/auto.bakerst

2.vim /etc/auto.bakerst(编辑映射文件)

cases -fstype=cifs,credentials=/secure/sherlock ://server/cases

注意:指定文件系统类型使用-fstype=cifs选项,然后使用一列以逗号分

隔的挂载选项。服务器URL地址需要以冒号“:”为前缀

3.Vim /secure/sherlock(编辑凭据文件)

username=sherlock

password=villin221B

domain=BAKERST

4.启用并启动autofs

systemctl enable autofs

systemctl start autofs

 


服务端端安装配置以及执行多用户挂载:

服务端安装samba:

[root@server ~]# yum install samba -y

Loaded plugins: langpacks

Package samba-4.1.1-31.el7.x86_64 already installed and latest version

重启服务:

[root@server ~]# systemctl restart smb.service

 

[root@server0 ~]# rpm -qa| grep samba

samba-client-4.1.1-31.el7.x86_64#客户端工具

samba-4.1.1-31.el7.x86_64#服务端 包含smb   nmb 程序

samba-common-4.1.1-31.el7.x86_64#服务端,客户端都需要  smb.conf   testparm

samba-libs-4.1.1-31.el7.x86_64

 

 

查看监听的端口:

[root@server0 samba]# ss -antup | grep -E "nmbd|smbd"

tcp    UNCONN     0      0           172.25.0.255:137                   *:*      users:(("nmbd",1445,23))

tcp    UNCONN     0      0           172.25.0.111:137                   *:*      users:(("nmbd",1445,22))

tcp    UNCONN     0      0           172.25.0.255:137                   *:*      users:(("nmbd",1445,19))

tcp    UNCONN     0      0           172.25.0.110:137                   *:*      users:(("nmbd",1445,18))

tcp    UNCONN     0      0           172.25.0.255:137                   *:*      users:(("nmbd",1445,14))

tcp    UNCONN     0      0            172.25.0.11:137                   *:*      users:(("nmbd",1445,13))

tcp    UNCONN     0      0                      *:137                   *:*      users:(("nmbd",1445,11))

tcp    UNCONN     0      0           172.25.0.255:138                   *:*      users:(("nmbd",1445,25))

tcp    UNCONN     0      0           172.25.0.111:138                   *:*      users:(("nmbd",1445,24))

tcp    UNCONN     0      0           172.25.0.255:138                   *:*      users:(("nmbd",1445,21))

tcp    UNCONN     0      0           172.25.0.110:138                   *:*      users:(("nmbd",1445,20))

tcp    UNCONN     0      0           172.25.0.255:138                   *:*      users:(("nmbd",1445,16))

tcp    UNCONN     0      0            172.25.0.11:138                   *:*      users:(("nmbd",1445,15))

tcp    UNCONN     0      0                      *:138                   *:*      users:(("nmbd",1445,12))

tcp    LISTEN     0      50                     *:445                   *:*      users:(("smbd",1497,35))

tcp    LISTEN     0      50                     *:139                   *:*      users:(("smbd",1497,36))

tcp    LISTEN     0      50                    :::445                  :::*      users:(("smbd",1497,33))

tcp    LISTEN     0      50                    :::139                  :::*      users:(("smbd",1497,34))

 

 

Samba权限:

用户和常规权限:

应用目录设置的权限取决于需要访问此目录的用户以及客户端挂载此目录的方式

客户端一般是通过作为特定用户来验证对SMB服务器的访问权限,从而挂载共享,共享中的所有文件需要能够由用于挂载共享的用户进行读取(并可能写入)

 

SELINUX上下文及布尔值(服务端,客户端都要配置)

如果将仅通过samba来访问共享目录,则目录以其所有子目录和文件都应具有的布尔值:samba_share_t

这将为samba提供读写访问权限

目录的默认权限:

[root@desktop0 ~]# ls -Z /smb1/ -d

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /smb1/

修改成以下selinux权限:

[root@server /]# semanage fcontext -a -t samba_share_t '/smb1(/.*)?'

[root@server /]# restorecon -FRvv   /smb1

restorecon reset /smb1  context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0

 

如果[home]作为共享目录,表示为所有用户启动个人主目录共享,要实现这个功能,需要开启SELinux布尔值:samba_enable_home_dirs

[root@server0 myshare]# setsebool -P samba_enable_home_dirs  on

 

Samba配置文件详解:

配置文件位置:[root@server /]# cat /etc/samba/smb.conf

[global]#定义samba服务器的基本配置

Workgroup#定义服务器的windows工作组

Workgroup = WORDGROUP

netbios name = MYSERVER#主机的netbios名称,每个主机都不相同

log file = /var/log/samba/log.%m#日志存放的目录

server string = Samba Server Version %v#主机的说明

max log size = 50#日志单文档最大的大小,超过会被切割,rotate

Security#控制samba对客户端进行身份验证的方式

Security = user#客户端使用本地samba服务器管理的有效用户名和密码来登录

Share:共享不需要密码,大家都可以访问

User:使用SAMBA的数据库来验证用户,数据库在: passdb backend = tdbsam

Domain:使用外部的服务器密码

Hosts allow#指定允许访问samba服务的主机的列表如果未指定,则所有主机都可以访问

如果在[global]是未指定,则可以在共享的目录上配置,如果有指定,则代理全局配置

Hosts allow配置语法:

172.25.0.0/24

172.25.0.0/255.255.255.0

172.25.0.

[2001:db8:0:1::/64]

Desktop.example.com

.example.com 172.25.0.

文件共享节:

[share_name]#共享名称,客户端挂载的名称

comment = samba share#说明文字

path = /smb2#要共享出来实际目录

Browseable = yes#是否让所有用户看到这个目录

Writable = yes#所有经过身份验证的用户都对共享目录有读写权限,是否可写

 

Writable = no #这个配合使用 

Write list = @admin#只有admin组才有读写权限,不在admin组的用户只有只读权限,是否可写的用户或用户组

 

Valid users = admin#允许访问共享的用户的列表,如果为空则所有用户均可以访问共享,那些用户可以访问,不管是否能读写,只有这里指定的用户才可以访问共享,其它未指定用户禁止访问

 

Create mode directory mode#用户挂载后,在该共享文件夹下创建文件或目录的默认权限

 

Read only = no writable = yes 功能相同

 

Host allow = 172.25.0.0/24#允许那个网段的IP来访问

Host allow = 172.25.0  .example.com

Host allow = 172.25.0.0/24,desktop.example.com

 

仅允许用户fred  management组的成员对共享myshare具有只读访问权限

[myshare]

Path = /sharepath

Writable = no

Valid users = fred,@management

 

验证/etc/samba/smb.conf配置文件是否有错误:

[root@server /]# testparm

Load smb config files from /etc/samba/smb.conf

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

Processing section "[homes]"

Processing section "[printers]"

Processing section "[smb1]"

Processing section "[smb2]"

Loaded services file OK.

 

创建samba客户端登录用户:

security = user 时,需要创建samba用户

Samba用户帐号,在linux系统中(/etc/passwd)必须存在

但是samba的密码和linux的密码可以不同

[root@server /]# useradd -s /sbin/nologin fred

[root@server /]# yum -y install samba-client

Loaded plugins: langpacks

Package samba-client-4.1.1-31.el7.x86_64 already installed and latest version

fred用户创建samba密码

[root@server /]# smbpasswd -a fred

New SMB password:

Retype new SMB password:

Added user fred.

 

Pdbedit -L [-vw]

Pdbedit -a [-r] -x -u 用户帐户

Pdbedit -a -m -u 机器帐号

pdbedit -L  :查看samba用户

pdbedit -a  -u  user:添加samba用户,帐号在要/etc/passwd存在

pdbedit -r  -u  user:修改samba用户信息

pdbedit -x  -u  user: 删除samba用户

 

方法一:

先添加系统用户:

[root@server0 samba]# useradd -s /sbin/nologin gmy

 

再将系统用户添加到samba用户数据库

[root@server0 samba]# pdbedit -a gmy

new password:

retype new password:

 

方法二:

添加samba用户

pdbedit -a -u smb1  #这个用户要在系统在存在,否则创建失败

new password:然后输入密码

 

列出系统上配置了samba帐户的细节:

[root@server /]# pdbedit -L

andy:1001:

justin:1003:

fred:1005:

edward:1002:

root:0:root

 

启动samba服务:

[root@server /]# systemctl restart smb nmb

 

samba服务加入到防火墙:

[root@server /]# firewall-cmd --permanent --add-service=samba

success

[root@server /]# firewall-cmd --reload

success

[root@server /]# firewall-cmd --list-all

public (default, active)

  interfaces: eth0 eth1 eth2

  sources:

  services: dhcpv6-client dns mountd nfs rpc-bind samba smtp ssh

  ports: 3260/tcp

  masquerade: no

  forward-ports:

  icmp-blocks:

  rich rules:

 

 

在客户端挂载samba共享目录:

查看由服务器samba共享出来的目录列表:

[root@desktop ~]# smbclient -L //172.25.0.11

Enter root's password:

Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]

 

Sharename       Type      Comment

---------       ----      -------

smb1            Disk      samba share

smb2            Disk      samba share

IPC$            IPC       IPC Service (Samba Server Version 4.1.1)

root            Disk      Home Directories

Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]

 

Server               Comment

---------            -------

SERVER               Samba Server Version 4.1.1

 

Workgroup            Master

---------            -------

STAFF                SERVER

 

挂载服务端共享的目录:

[root@desktop /]# mount -t cifs -o username=fred //172.25.0.11/smb1 /smbfiles/

Password for fred@//172.25.0.11/smb1:  ****#输入fred的密码

[root@desktop /]# df -Th

Filesystem         Type      Size  Used Avail Use% Mounted on

/dev/vda1          xfs        10G  3.1G  6.9G  31% /

devtmpfs           devtmpfs  734M     0  734M   0% /dev

tmpfs              tmpfs     750M     0  750M   0% /dev/shm

tmpfs              tmpfs     750M   17M  733M   3% /run

tmpfs              tmpfs     750M     0  750M   0% /sys/fs/cgroup

//172.25.0.11/smb1 cifs       10G  3.6G  6.5G  36% /smbfiles

 

通过密码文件来认证:

[root@desktop /]# cat /etc/smb.txt

username=fred

password=fred

[root@desktop /]# mount -t cifs -o credentials=/etc/smb.txt //172.25.0.11/smb1 /smbfiles/

[root@desktop /]# df -Th

Filesystem         Type      Size  Used Avail Use% Mounted on

/dev/vda1          xfs        10G  3.1G  6.9G  31% /

devtmpfs           devtmpfs  734M     0  734M   0% /dev

tmpfs              tmpfs     750M     0  750M   0% /dev/shm

tmpfs              tmpfs     750M   17M  733M   3% /run

tmpfs              tmpfs     750M     0  750M   0% /sys/fs/cgroup

//172.25.0.11/smb1 cifs       10G  3.6G  6.5G  36% /smbfiles

 

创建自动挂载:

vim /etc/fstab

//server0/myshare/mysharecifs  credentials=/etc/smb.txt,sec=ntlmssp,defaults   0   0

 

#mount

//server0/myshare on /myshare type cifs (rw,relatime,vers=1.0,cache=strict,username=harry,domain=SERVER0,uid=0,noforceuid,gid=0,noforcegid,addr=172.25.0.11,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1)

 

 

执行多用户SMB挂载:

Multiuser挂载选项将挂载凭据与用于确定每个用户的文件访问权限的凭据进行隔离。与sec=ntlmssp身份验证一起使用

Root用户使用multiuser选项以及一个SMB用户名(对共享内容具有最低访问权限),挂载共享常规用户随后可以使用cifscredis命令将自己的SMB用户名和密码存储在当前会话的内核密钥环中。其对共享的访问权限是通过来自密钥环的自身凭据而非挂载凭据来验证。用户可以随时清除或更改其针对该登录会话的凭据,并且在会话结束后将会清除。文件访问权限完全由SMB服务根据当前使用的访问凭据强制实施。

默认情况下,挂载凭据确定对挂载点的访问权限

先以对共享文件夹具有最低权限的用户进行挂载

使用multiuser选项将挂载凭据与用于确定每个用户的文件访问权限的凭据进行隔离

可与sec=ntlmssp选项一起使用

使用cifscreds将身份验证凭据存储在本地用户的密钥环中

Samba服务端权限:

Vim /etc/samba/smb.conf

[myshare]

comment = myshare files

path = /myshare

writable = no

write list = natasha

valid users = natasha,harry

服务端用户名:

[root@server0 myshare]# grep natasha /etc/passwd

natasha:x:1006:1006::/home/natasha:/sbin/nologin

 

在客户端安装软件包:

[root@desktop0 ~]# yum install cifs-utils

Loaded plugins: langpacks

rhel_dvd                                                                 | 4.1 kB  00:00:00     

Package cifs-utils-6.2-6.el7.x86_64 already installed and latest version

 

创建一个与服务器端用户名和密码一样的用户natasha

[root@desktop0 ~]# useradd -u 1006 -g 1006  natasha    

[root@desktop0 ~]#passwd  natasha    

[root@desktop0 ~]#密码redhat

 

创建认证文件:

[root@desktop0 ~]# cat /etc/smb.txt

username=harry

password=redhat

 

分割线

感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS