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
smbpasswd -a student ##student 必须是本机用户
pdbedit -L ##查看用户
pdbedit -x student ##删除e
测试
smbclient -L //172.25.254.160 -U student
smbclient //172.25.254.160/student -U student
2.samba 共享目录
vim /etc/samba/smb.conf
[共享名称]
comment = 共享说明
path = 共享目录路径
:wq
systemctl restart smb
共享目录建立目录时需要修改selinux属性,次方式修改只针对修改目录
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -FvvR /westos/
共享系统建立目录要修改的selinux属性,此方式修改针对所有目录,一旦开放,selinux不保护目录访问
setsebool -P samba_export_all_rw on ##可以读写
setsebool -P samba_export_all_ro on ##只读
测试:
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
测试:
vim /etc/fstab
//172.25.254.160/westos /mnt cifs defaults,username=student,password=redhat 0 0
mount -a
匿名用户可以登陆:
vim /etc/samba/smb.conf
[global]
map to guest = bad user
[westos]
guest ok = yes
4.samba共享目录的管理参数
[westos]
writeable = yes ##用户可写
write list = +student ##指定student组用户可写
write list = student ##指定student用户可写
valid users = student ##指定student用户可登陆
valid users = @student ##指定student用户组可登陆
browseable = no ##指定目录对客户不可见
admin users = student ##指定管理用户
5.smb多用户挂载
在服务主机
useradd test
smbpasswd -a test
在客户主机
yum install cifs-utils
vim /root/passfile
username=smb用户
password=smb用户密码
mount -o credentials=/root/smbpass,multiuser,sec=ntlmssp //172.25.254.160/westos /mnt/ ##使用/root/smbpass用户信息挂载 multiuser打开多用户挂载 sec=ntlmssp ntlmssp安全方式连接服务端和客户端
useradd test
su - test
cifscreds add -u test 172.25.254.160 ##添加用户test
cd /mnt/
ls
cifscreds clear -u test 172.25.254.160 ##清除用户test