linux samba

SMB文件共享

samba是linux和unix系统上实现smb协议的一个免费软件,由服务器及客户端程序构成。smb是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印等资源的共享服务。smb协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享资源。

Samba服务的组成部分

软件包:
Samba-common - Samba 的支持文件
Samba-client - 客户端应用程序
Samba - 服务器应用程序
服务名称:smb
服务端口:通常使用TCP/445进行所有连接。还使用UDP137,UDP138和TCP139进行向后兼容
主配置文件:/etc/samba/smb.conf

1.samba服务器的安装及访问调试

yum install samba-client samba-common.x86_64 samba.x86_64 -y
systemctl stop firewalld.service
setsebool -P samba_enable_home_dirs on

linux samba

smbpasswd -a student 	##student 必须是本机用户

linux samba

pdbedit -L		##查看用户

linux samba

pdbedit -x student	##删除e

linux samba

测试

smbclient -L //172.25.254.160 -U student

linux samba

smbclient //172.25.254.160/student -U student 

linux samba

2.samba 共享目录

vim /etc/samba/smb.conf
[共享名称]
comment = 共享说明
path = 共享目录路径

:wq

linux samba

systemctl restart smb
共享目录建立目录时需要修改selinux属性,次方式修改只针对修改目录
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -FvvR /westos/

linux samba
linux samba
linux samba

共享系统建立目录要修改的selinux属性,此方式修改针对所有目录,一旦开放,selinux不保护目录访问
setsebool -P samba_export_all_rw on   ##可以读写
setsebool -P samba_export_all_ro on   ##只读

linux samba
测试:

smbclient //172.25.254.160/共享名称 -U student

排错
NT_STATUS_IO_TIMEOUT 本地解析问题

3.samba 匿名访问

vim /etc/samba/smb.conf

hosts allow = 172.25.254.160   ##允许160访问
hosts deny = 172.25.254.160	##禁止160

linux samba
linux samba

测试:

vim /etc/fstab

//172.25.254.160/westos /mnt cifs  defaults,username=student,password=redhat 0 0
mount -a

linux samba
linux samba

匿名用户可以登陆:

vim /etc/samba/smb.conf
[global]
map to guest = bad user

[westos]
guest ok = yes

linux samba
linux samba
linux samba

4.samba共享目录的管理参数

[westos]
writeable = yes    ##用户可写

linux samba
linux samba

write list = +student  ##指定student组用户可写
write list = student ##指定student用户可写

linux samba
linux samba
linux samba

valid users = student   ##指定student用户可登陆
valid users = @student ##指定student用户组可登陆

linux samba
linux samba

browseable = no     ##指定目录对客户不可见

linux samba
linux samba

admin users = student ##指定管理用户

5.smb多用户挂载

在服务主机

useradd test
smbpasswd -a test

linux samba

在客户主机

yum install cifs-utils
vim /root/passfile
username=smb用户
password=smb用户密码

linux samba

mount -o credentials=/root/smbpass,multiuser,sec=ntlmssp //172.25.254.160/westos /mnt/                     ##使用/root/smbpass用户信息挂载 multiuser打开多用户挂载 sec=ntlmssp ntlmssp安全方式连接服务端和客户端

linux samba

useradd test
su - test
cifscreds add -u test 172.25.254.160      ##添加用户test
cd /mnt/
ls

linux samba

cifscreds clear -u test 172.25.254.160    ##清除用户test