重置虚拟机:
IP----172.25.254.137
hostname:samba.example.com
指定yum source
samba服务:
windows作为客户端访问linux的共享文件
windows共享出去了文件,即为server端
linux如何查看windows的共享文件:
安装yum install samba-client -y
查看server端共享了什么:smbcliet -L //server端IP -U usersname
挂载后使用:mount //server端IP/共享文件 /挂载目录 username=guest
linux共享出去了文件,即为server端(windows做为客户端访问linux的共享文件):
yum samba samba-common sam-cient -y ##安装相关软件包##
systemctl start smb ##开启smb服务##
netstat -antple | grep smb ##查看smb的端口##
systemctl stop firewalld ##关闭火墙##
setsebool -P samba_enble_home_dirs on ##修改selinux属性,打开samba访问节目录的权限##
samba用户和系统用户不是同一个,samba用户必须添加,而且要添加的用户在系统中也必须真实存在。所谓的samba用户都是指服务端的。
smbpasswd -a student ##添加samba用户##
pdbedit L ##列出samba用户##
pdbedit -x student ##删除samba用户##
linux也可以测试:
首先需要安装smb-client软件包
smbclient -L //172.25.254.137 -U student ##查看那student用户有什么##
smbclient //172.25.254.137/student -U student ##登陆并进入student用户家目录##
实际操作:
[root@samba ~]# systemctl start smb ##开启smb服务##
[root@samba ~]# systemctl stop firewalld.service ##关闭火墙##
[root@samba ~]# setsebool -P samba_enable_home_dirs on ##修改selinux属性##
[root@samba ~]# smbpasswd -a student ##建立samba用户student##
New SMB password: ##输入密码##
Retype new SMB password: ##确认密码##
Added user student.
[root@samba ~]# pdbedit -L ##列出samba用户##
student:1000:Student User
[root@samba ~]# smbclient -L //172.25.254.137 -U student ##查看student用户的共享文件有什么##
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
student Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@samba ~]# smbclient //172.25.254.137/student -U student ##登陆进入student用户家目录##
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls ##列出当前目录##
. D 0 Thu Jul 10 19:06:52 2014
.. D 0 Thu Jul 10 18:19:09 2014
.bash_logout H 18 Wed Jan 29 07:45:18 2014
.bash_profile H 193 Wed Jan 29 07:45:18 2014
.bashrc H 231 Wed Jan 29 07:45:18 2014
.ssh DH 0 Thu Jul 10 18:19:10 2014
.config DH 0 Thu Jul 10 19:06:53 2014
40913 blocks of size 262144. 28512 blocks available
smb: \> quit ##退出(exit或者Ctrl+D也可以退出)##
[root@samba ~]#
补充命令:
getsebool -a | grep samba ##查看samba服务相关的selinux属性##
工作组的修改:vim /etc/samba/amb.conf
89 workgroup = westos
效果如下:Domain=[WESTOS]即为参数修改处
[root@samba ~]# smbclient -L //172.25.254.137 -U student
Enter student‘s password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
westos Disk local directory westos
linux Disk local directory linux
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
student Disk Home Directories
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@samba ~]#
samba共享目录:
假设要共享目录/westos(/westos目录要先存在)
vim /etc/samba/smb.cnf ##修改samba服务的配置文件##
[共享名称]
comment = 共享说明
path = 共享目录路径
例如:
[westos]
comment = local directory westos
path = /westos
systemctl restart smab ##重启samba服务##
修改selinux:
只针对单一目录:
semanage fcontext -a -t samba_share_t ‘/westos(/.*)?‘ #修个目录安全上下文#
restorecon -FvvR /westos/ #刷新该目录的selinux属性#
针对所有目录:
setsebool -P samba export all rw on ##开放读写权限##
setsebool -P samba export all ro on ##开启只读权限##
共享系统建立目录修改selinux属性,该操作针对所有目录,一旦开放selinux不保护目录访问
课堂实践:
[root@samba ~]# mkdir /westos
[root@samba ~]# mkdir /linux
[root@samba ~]# vim /etc/samba/smb.conf
[root@samba ~]# tail -n 3 /etc/samba/smb.conf
[westos]
comment = local directory westos
path = /westos
[root@samba ~]# systemctl restart smb.service
[root@samba ~]# semanage fcontext -a -t samba_share_t ‘/westos(/.*)?‘
[root@samba ~]# restorecon -FvvR /westos/
restorecon reset /westos context unconfined_u:object_r:default_t:s0->system_u:object_r:default_t:s0
[root@samba ~]# smbclient //172.25.254.137/westos -U student
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
. D 0 Fri Mar 17 22:17:15 2017
.. D 0 Fri Mar 17 22:17:19 2017
40913 blocks of size 262144. 28482 blocks available
smb: \> quit
[root@samba ~]# !vim
vim /etc/samba/smb.conf
[root@samba ~]# tail -n 3 /etc/samba/smb.conf
[linux]
comment = local directory linux
path = /linux
[root@samba ~]# setsebool -P samba_export_all_ro on
[root@samba ~]# smbclient //172.25.254.137/linux -U student
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
. D 0 Fri Mar 17 22:17:19 2017
.. D 0 Fri Mar 17 22:17:19 2017
40913 blocks of size 262144. 28512 blocks available
smb: \> quit
[root@samba ~]#
samba的匿名访问
修改samba的配置文件
guest ok = yes
(不知道怎么写的时候men 5 文件名)
重启服务
测试访问共享
结果:能访问,mount挂载不能
问题解决:
修改配置文件:map to guest = bad user ##把所有的匿名用户映射为guest用户
总结:samba匿名用户访问需要修改配置文件
125 map to guest = bad user
321 [westos]
322 comment = locla directory westos
323 path = /westos
324 guest ok = yes
注:配置文件修改后一定要重启服务
管理参数:配置文件中,修改哪个共享目录的管>理参数就在那个目录下添加参数
writable = yes ##用户可以使用samba这个程序执行写的动作(解决服务本身拒绝的问题)##
chmod 777 /westos ##修改共享目录权限(解决文件系统本身拒绝的问题)##
注意:服务允许不代表文件系统也允许
writable = yes ##任意用户可写##
write list = lee ##指定lee用户可写##
write list = @lee ##指定lee用户组可写(@和+效果一样)##
注:指定某个用户或某个用户组可写时需要注释掉任意用户可写
valid users = lee ##指定lee用户可登陆##
valid users = @lee ##指定lee用户组可写(@和+效果一样)##
browseable = no ##隐藏共享目录(但是用户可以进入)##
admin users = lee ##用户lee对westos有绝对的控制权,对共享目录来说lee用户相当于root用户##
samba认证:(samba认证主要在客户机操作)
yum install cifs-utils -y ##安装软件包
不需要开启服务
vim /root/passwdfile
username=smb用户
password=smb用户密码
mount //server端IP/共享目录 /挂载点 -0 credentials=/root/smbpasswdfile,multiuser,sec=ntlmssp ##挂载使用认证文件:multiuser表示多用户认证,sec=ntlmssp表示认证方式##
su - lee ##lee与samba用户同名##
ls /mnt
cifscreds add server端IP ##lee用户认证samba共享系统##
ls /mnt查看成功
su - test ##test与samba用户不同名##
ls /mnt
cifscreds add server端IP ##test用户认证samba共享系统##
cifscreds add IP 去这个IP上做认证(输入密码)
cifscreds clearall 清除所有认证
cifscreds
客户端认证时用户身份和samba用户身份一致且输入samba用户密码正确,
samba多用户认证的作用:
防止匿名用户查看
以各自的samba用户身份建立文件
原文地址:http://12459513.blog.51cto.com/12449513/1908216