Linux samba

1.Samba介绍

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

2.Samba作用

提供cifs协议实现共享文件

3.Samba安装

yum install samba samba-common samba-client -y

systemctl start smb nmb ##nmb服务是对smb做解析的,解释的。

systemctl enable smb nmb

Linux samba

Linux samba

4.添加smb用户

smb用户必须时本地用户

smbpasswd -a student

New SMB password: #输入smb当前用户密码

Retype new SMB password: #确认密码

pdbedit -L #查看smb用户信息

pdbedit -x smb用户 #删除smb用户

setsebool -P samba_ enable_home_dirs on ##在selinux中设定smb用户可以访问自己的家目录

Linux samba

Linux samba

5.共享目录的基本设定

vim /etc/samba/smb.conf

[haha] 共享名称(等于作为磁盘名字)

comment = 对共享目录的描述

path = 共享目录的绝对路径

workgroup = WESTOS

当共享目录为用户自建立目录时

semanage fcontext -a -t samba_share_t ‘目录名称(/.*)?’

restorecon -RvvF 目录名称

Linux samba

Linux samba


Linux samba

Linux samba

Linux samba



当共享目录为系统建立目录(在设定下面的selinux的时候,要用系统目录)

setsebool -P samba_export_all_ro on #只读共享

setsebool -P samba_export_all_rw on #读写共享、

5.samba的配置参数

匿名用户访问

guest ok = yes

map to guest = bad user

访问控制

hosts allow = #仅允许

hosts deny = #仅拒绝

valid users = #当前共享的有效用户

valid users = westos #当前共享的有效用户为westos

valid users = @westos #当前共享的有效用户为westos组

valid users = +westos #当前共享的有效用户为westos组

Linux samba
Linux samba

Linux samba

Linux samba

Linux samba


Linux samba

Linux samba

读写控制

所有用户均可写

chmod o+w /mnt

setsebool -P samba_export_all_rw on

vim /etc/samba/smb.conf

writable = yes

设定指定用户可写

write list = student #可写用户

write list = +student #可写用户组

write list = @student

admin users = westos #共享的超级用户指定

Linux samba


Linux samba

Linux samba



Linux samba


Linux samba


Linux samba

Linux samba

Linux samba

Linux samba

6.smb多用户挂载

在client上

vim /root/haha

username=student

password=lee

chmod 600 /root/haha ##使这个文件不让别的任何人看见,因为里面记录的使账号和密码

yum install cifs-utils -y

mount -o credentials=/root/haha,multiuser,sec=ntlmssp //172.25.254.100/haha /mnt/

credentials=/root/haha 指定挂载时所用到的用户文件

multiuser 支持多用户认证

sec=ntlmssp 认证方式为标准smb认证方式

su - kiosk

ls /mnt

ls: cannot access /mnt: Permission denied #因为没有作smb的认证所以无法访问smb共享

cifscreds add -u westos 172.25.254.100

Password: ##smb用户westos的密码

Linux samba