samba

xiaoxiao2021-02-28  211

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/ ##此时可以查看到

转载请注明原文地址: https://www.6miu.com/read-60599.html

最新回复(0)