samba

来源:互联网 发布:plc编程100例视频教程 编辑:程序博客网 时间:2024/06/10 02:54

samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 ( document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等;

samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 ( testparm )等等;

samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等。

!!!!以下测试均在另一个主机上

1.samba作用

提供cifs协议实现共享文件

2.安装

yum install samba samba-common samba-client -y
systemctl start smb nmb ##开启服务
systemctl enable smb nmb ##开机启动
这里写图片描述
*)测试
smbclient -L //172.25.254.133 ##匿名登陆,不需要输入密码
这里写图片描述

3.添加smb用户

smb用户必须为本机用户
smbpasswd -a student ##添加smb用户
New SMB password: ##输入密码
Retype new SMB password: ##再次输入密码

pdbedit -L ##查看smb用户信息
pdbedit -x smb用户 ##删除smb用户

setsebool -P samba_enable_home_dirs on ##在selinux中设定smb用户可以访问自己的家目录
这里写图片描述

*)测试
smbclient -U student //172.25.254.133/student ##-U username 使用smb用户登陆
Enter student’s password: ##输入密码
这里写图片描述

4.共享目录的基本设定

vim /etc/samba/smb.conf ##主配置文件
[hello] ##共享名称
comment = Local Directory ##对共享目录的描述
path = /westos ##共享目录的绝对路径
这里写图片描述
mkdir /westos
touch /westos/file{a..c}
systemctl restart smb.service ##重启服务
这里写图片描述
(1)当共享目录为新建目录时
即path = /westos ##新建目录
这里写图片描述
semanage fcontext -a -t samba_share_t ‘/westos(/.*)?’ ##更改安全上下文
restorecon -RvvF /westos/ ##刷新安全上下文
这里写图片描述

*)测试
smbclient //172.25.254.133/hello -U student
Enter student’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb:\> ls
smb: \> q ##退出
这里写图片描述

(2)当共享目录为系统建立目录
即 path = /mnt
这里写图片描述
setsebool -P samba_enable_home_dirs 0 ##关闭访问家目录
setsebool -P samba_export_all_ro on ##所有只读共享
setsebool -P samba_export_all_rw on ##读写共享
这里写图片描述

*)测试
smbclient //172.25.254.133/hello -U student
这里写图片描述

5.samba的配置参数

(1)匿名用户访问
125 map to guest = bad user ##指定匿名用户
guest ok = yes ##允许匿名用户访问
这里写图片描述

这里写图片描述

这里写图片描述

*)测试
smbclient //172.25.254.133/hello
Enter kiosk’s password: ##不用输入密码
这里写图片描述

(2)访问控制
hosts allow = 172.25.254.60 ##只允许60主机访问
hosts deny = 172.25.254.60 ##只禁止60主机访问
valid users = westos ##当前共享的有效用户为westos
valid users = @westos ##当前共享的有效用户为westos组
valid users = +westos ##当前共享的有效用户为westos组

*)测试
smbclient //172.25.254.133/hello -U smbusername
hosts deny = 172.25.254.60 时(只禁止60主机访问)
这里写图片描述
[root@foundation60 ~]# smbclient //172.25.254.133/hello
Enter kiosk’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
tree connect failed: NT_STATUS_ACCESS_DENIED ##连接失败,权限被禁止
这里写图片描述

valid users = westos(当前共享的有效用户为westos)时
这里写图片描述

这里写图片描述
[root@foundation60 ~]# smbclient //172.25.254.133/hello -U westos
Enter westos’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: > q ##westos用户可以访问
[root@foundation60 ~]# smbclient //172.25.254.133/hello -U student
Enter student’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
tree connect failed: NT_STATUS_ACCESS_DENIED ##student用户被拒绝

这里写图片描述

valid users = @westos(当前共享的有效用户为westos组)
这里写图片描述

这里写图片描述
student就可以访问了
这里写图片描述

(3)读写控制

*)所有用户可写
chmod o+w /mnt/ ##添加可写权限
setsebool -P samba_export_all_rw 1 ##读写共享
vim /etc/samba/smb.conf ##编辑主配置文件
writable = yes ##可写
这里写图片描述

这里写图片描述
*)设定指定用户可写
共享目录有匿名用户写权限:
writable = no ##不可写
write list = student ##可写用户
write list = @student ##可写用户组
write list = +student ##可写用户组
这里写图片描述
共享目录无匿名用户写权限:
chmod o-w /mnt ##设定只有超级用户可写
writable = yes
admin users = westos ##共享用户以超级用户身份操作
这里写图片描述

这里写图片描述

*)测试
远程端:
mount -o username=westos,password=westos //172.25.254.133/hello /mnt
touch rm …
所有用户可写:
客户端:
这里写图片描述
服务器端:
这里写图片描述

设定指定用户可写:
当/mnt 匿名用户有写权限:
客户端:
这里写图片描述
服务器端:
这里写图片描述

当/mnt 匿名用户没有有写权限:
客户端:
这里写图片描述
服务器端:
这里写图片描述

服务器端:
ls -l /mnt
ll -d /mnt

6.SMB多用户挂载

SMB多用户挂载可以有效地限制用户的访问。

客户端:
vim /root/westos ##编辑smb用户文件
username=student
password=student

chmod 600 /root/westos ##使该文件只有root可读写
yum install cifs-utils -y
mount -o credentials=/root/westos,multiuser,sec=ntlmssp //172.25.254.133/hello /mnt ##挂载

#credentials=/root/westos ##指定挂载时用到的用户文件
#multiuser ##支持多用户认证
#sec=ntlmssp ##认证方式为标准smb认证方式
这里写图片描述

*)测试
su - kiosk ##切换用户
cd /mnt
ls
ls: reading directory .: Permission denied ##因为没有smb的认证所以无法访问smb共享
这里写图片描述

cifscreds add -u westos 172.25.254.133 ##smb认证
Password: ##smb用户密码
ls /mnt/ ##此时可以查看到
这里写图片描述

原创粉丝点击