Samba服务的组成部分
1. 软件包:
Samba-common – Samba的支持文件
Samba-client – 客户端应用程序
Samba – 服务器应用程序
2. 服务名称:smb nmb
3. 服务端口: 通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容
4. 主配置文件:/etc/samba/smb.conf
/etc/samba/smb.conf:
[global]部分 workgroup hosts allow 用于指定Windows工作组或网络域名。 hosts
allow是用逗号、空格或制表符分隔的允许访问服务的主机集合。如果在[global] 部分中指定,
将适用于所有服务,无论单个服务是否具有不同的设置。 您可以按名 称或IP号指定主机。例如,您可以使用allow hosts =
192.168.0. 表示允许一个网络。安全性 该选项影响客户端如何响应Samba,并且在smb.conf文件中是最重要的设置之一。 security = user
客户端必须通过有效的用户名和密码登录。 security = domain 只有当计算机已添加到NT域时才能正常工作。它要求将
encrypted passwords 参数设置为yes。在该模式中,Samba通过将用户名/密码传递至 Windows
NT主域控制器或备份域控 制器来进行验证,与Windows NT Server采用的方 式完全一样。请注意,有效的UNIX用户以及域控制
器上的账户必须仍然存在,以允 许Samba具有有效的UNIX账户,可用以映射文件访问。您必须设置 passwd server参数
,为Samba提供服务器,以验证密码。 security = server
Samba将通过将用户名/密码传递至另一个SMB服务器来尝试进行验证。 您必须设置password server参数,
为samba提供服务器, 以验证密码。 security = ads Samba在ADS
realm中作为域成员。如要在该模式下操作,运行Samba的
计算机需要安装并配置Kerberos,并且需要使用net实用程序将Samba加入ADS realm。
/etc/samba/smb.conf:其他部分[homes] 此共享(默认情况下启用)是一个特别共享,通过CIFS使用户的主目录可。它包括browseable
= no, 因此在用户进行身份验证之前,将不会显示为可用共享。共享名称可以指定为homes( 在这种情况下, Samba服务器会将其转换为用户的主目录路径)或username。[printers] 默认情况下也可用,将共享当前可用的打印机 。
[share] 如果您想要设置其他共享,请将共享名称放置在括号中,如上所示。共享需要至少一个path参 数。
基本配置:
yum install samba samba-common samba-client -y
systemctl start smb
systemctl enable smb
smbpasswd -a student ##用户创建密码
pdbedit -L ##查看添加的用户
student:1000:Student User
smbclient -L //172.25.254.138 -U student
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
student Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
smbclient //172.25.254.138/student -U student
Enter student's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
. D 0 Thu Jul 10 19:06:52 2014
.. D 0 Thu Jul 10 18:19:09 2014
.bash_logout H 18 Wed Jan 29 07:45:18 2014
.bash_profile H 193 Wed Jan 29 07:45:18 2014
.bashrc H 231 Wed Jan 29 07:45:18 2014
.ssh DH 0 Thu Jul 10 18:19:10 2014
.config DH 0 Thu Jul 10 19:06:53 2014
40913 blocks of size 262144. 28381 blocks available
smb: \> quit
如何添加目录?
vim /etc/samba/smb.conf 在最后一行添加
[DATA]
comment = local directory /mnt
path = /mnt
systemctl restart smb
smbclient //172.25.254.138/DATA -U student
touch /mnt/file{1..4}
登陆后看不到里面创建的文件,这是什么情况?
查看你的安全上下文:
semanage fcontext -a -t samba_share_t ‘/mnt(/.*)?’
restorecon -RvvF /mnt/
但是如果把mnt的安全上下文改了,别的服务就访问不了,可以这样进行:
getsebool -a |grep samba
setsebool -P samba_export_all_ro on
若是要挂载后可写还要开启(及配置文件的更改,往下看)
setsebool -P samba_export_all_rw on
隐藏文件目录
vim /etc/samba/smb.conf
[DATA]
comment = local directory /mnt
path = /mnt
browseable = no
systemctl restart smb
还有以下几种功能:
vim /etc/samba/smb.conf
#map to guest = bad user
在公共配置区块中添加,配置guest访问和挂载共享目录(同时开启guest ok = yes)
..........................
[DATA]
comment = local directory /mnt
path = /mnt
browseable = yes ##创建的目录是否可见
#guest ok = yes ##匿名用户登陆
#writable = yes ##允许用户可写
valid user = test ##允许用户登陆查看
[CONFIG]
comment = local directory /etc
path = /mnt
write list = student ##只允许student用户可写
writable = yes ##所有用户可写
admin users = student ##创建文件所属用户
@/+student ##创建文件所属用户组
SMB多用户挂载:
安装cifs-utils软件包,它包含了cifscreds命令:
yum install -y cifs-utils
创建/root/smbpasswd:
username=student
password=smb
设置文件权限
chmod 600 /root/smbpassword
编辑/etc/fstab,永久挂载smb共享:
//172.25.254.138/DATA /mnt/ cifs credentials=/root/smbpasswd,multiuser,sec=ntlmssp 0 0
mount -a
su - test
ls ##是不能看到任何东西的
$ cifscreds add 172.25.254.138 ##添加之后就可看到
总结:
访问CIFS共享
连接到CIFS文件共享的四个基本方法:
1. 图形访问CIFS共享
转至 “网络” –> “连接服务器”。填写以下字段:
Server Address : 172.25.254.138
Userame: student
Password: westos
2. 命令行FTP方式访问CIFS共享:
[root@server0 ~]# smbclient -L //172.25.254.138 -U student
[root@server0 ~]# smbclient //172.25.254.138/DATA -U student
Enter wxh’s password: smb
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
smb: > ls
3. 手动挂载CIFS共享
mount -o username=student,password=smb //172.25.254.138/student/ /mnt
mount -o credentials=/root/smbpasswd,multiuser,sec=ntlmssp //172.25.254.138/CONFING /mnt
4. 永久挂载CIFS共享
将以下行添加到/etc/fstab:
//172.25.254.138/DATA /mnt cifs credentials=/root/userpasswd 0 0