samba配置
来源:互联网 发布:《linux就该这么学 编辑:程序博客网 时间:2024/06/03 22:44
1. samba简介
Samba是在Linux和UNIX系统上实现SMB协议的文件共享软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是C/S型协议,client通过该协议可以访问server上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。samba实现了Windows或者Linux主机与Linux服务器之间的资源共享,为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,共享文件系统、打印机及其他资源。
Samba服务的组成部分
1.1 软件包:
Samba-common – Samba的支持文件Samba-client – 客户端应用程序Samba – 服务器应用程序
1.2 服务名称:smb nmb
1.3 服务端口: 通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容
1.4. 主配置文件:/etc/samba/smb.conf
2. samba基本配置及访问
2.1 yum安装samba
我们首先搜索查看一下相关软件包
然后执行yum安装:
yum install samba samba-common samba-client
2.2 添加samba用户,此用户必须是系统中存在的用户
smbpasswd(8)
The smbpasswd command is a tool for changing LanMan and Windows NT password hashes on Samba and Windows NT servers.
添加命令:
smbpasswd -a student
然后查看用户:
[root@localhost ~]# pdbedit -Lstudent:1000:Student User[root@localhost ~]#
如果您创建仅Samba用户,请将UNIX密码设置为/sbin/nologin。
[root@serverX ~]# useradd -s /sbin/nologin username
2.3 配置一个共享目录
[halo]comment = mnt to loadpath = /mntbrowseable = yesvalid users = studentwritable = yes
下图中的share modes = yes 不需要添加,否则可能出错!!
注意:针对系统级的设备或者目录(例如此例中的/mnt目录)要想被samba访问,就需要关闭sebool值,针对普通文件或者目录请设置selinux标签,否则可能导致访问失败!!
getsebool -a | grep sambasetsebool -P samba_export_all_ro ONsetsebool -P samba_export_all_rw ON
2.3 查看共享列表并且登陆访问
1. 图形访问CIFS共享:
转至 “网络” --> “连接服务器”。填写以下字段:Server Address : 172.25.254.136Userame: studentPassword: redhat
2.命令行访问:
查看共享列表:smbclient -L //172.25.254.136
[root@localhost ~]# smbclient -L //172.25.254.136Enter root's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1] Sharename Type Comment --------- ---- ------- halo Disk mnt to load IPC$ IPC IPC Service (Samba Server Version 4.1.1)Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1] Server Comment --------- ------- Workgroup Master --------- -------[root@localhost ~]#
登陆访问:smbclient //172.25.254.136/halo -U student
[root@foundation ~]# smbclient //172.25.254.136/halo -U studentEnter student's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]smb: \> ls . D 0 Tue Aug 15 11:08:33 2017 .. D 0 Wed Aug 16 08:33:40 2017 haloya D 0 Tue Aug 15 11:08:33 2017 10473900 blocks of size 1024. 7289968 blocks availablesmb: \>
如果在登陆访问的过程中出错,例如:
[root@localhost ~]# smbclient //172.25.254.136/halo -U studentEnter student's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]tree connect failed: NT_STATUS_ACCESS_DENIED
运行以下命令检查配置文件是否正确,如果配置文件没有格式上的错误,那么,就检查一下你的配置选项是否设置了有效用户限制,例如:valid users = student
[root@localhost ~]# testparm -v -s | grep usershare
2.4. 挂载共享目录进行访问
[root@foundation ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda3 120529408 32572540 87956868 28% /devtmpfs 1868044 0 1868044 0% /devtmpfs 1881152 488 1880664 1% /dev/shmtmpfs 1881152 9064 1872088 1% /runtmpfs 1881152 0 1881152 0% /sys/fs/cgroup/dev/sda1 508588 149440 359148 30% /boottmpfs 376232 28 376204 1% /run/user/1000tmpfs 376232 0 376232 0% /run/user/0[root@foundation ~]# mount //172.25.254.136/halo /mnt -o username=student,password="redhat" [root@foundation ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda3 120529408 32572520 87956888 28% /devtmpfs 1868044 0 1868044 0% /devtmpfs 1881152 488 1880664 1% /dev/shmtmpfs 1881152 9064 1872088 1% /runtmpfs 1881152 0 1881152 0% /sys/fs/cgroup/dev/sda1 508588 149440 359148 30% /boottmpfs 376232 28 376204 1% /run/user/1000tmpfs 376232 0 376232 0% /run/user/0//172.25.254.136/halo 10473900 3183704 7290196 31% /mnt[root@foundation ~]# cd /mnt/[root@foundation mnt]# lshaloya[root@foundation mnt]#
2.5 永久挂载CIFS共享
将以下行添加到/etc/fstab:
//172.25.254.136/halo /mnt/share cifs credentials=/root/userpasswd 0 0
然后创建/root/userpasswd,并且指定samba用户名和密码
vim /root/userpasswd
user=wxhpass=westos
3. samba高级配置
3.1 保护SMB
samba_enable_home_dirs和use_samba_home_dirs SELinux布尔值
samba_enable_home_dirs布尔值允许本地Linux主目录作为CIFS文件共享导出至其他系统。另一方面 use_samba_home_dirs布尔值允许挂载远程CIFS文件共享并将其用作本地Linux主目录。
# setsebool -P samba_enable_home_dirs onsamba_share_t用于共享用户自定义samba共享# chcon -R -t samba_share_t /smbshare或 # semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'# restorecon -vvFR /smbsharesamba_export_all_ro 和 samba_export_all_rw用于共享系统目录# setsebool -P samba_export_all_ro on# setsebool -P samba_export_all_rw on
3.2 配置guest访问和挂载共享目录
在配置文件/etc/samba/smb.conf中对应区块分别添加下面两条内容:
map to guest = bad user#在公共配置区块中添加
guest ok = yes
#在具体共享目录中添加
配置后重启服务进行测试
mount -o //172.25.254.136/halo /mnt username=guest,password=””
3.3 samba配置多用户挂载
1.在客户端安装yum install cifs-utils -y
然后创建认证文件/root/smbpassword
echo username=student >/root/smbpasswd echo password=redhat >>/root/smbpasswd
设置文件权限
chmod 600 /root/smbpassword
2. 配置挂载认证
mount -o credentials=/root/smbpassword,sec=ntlmssp //172.25.254.136/halo /mnt/
添加用户挂载访问认证
cifscreds add -u username
编辑/etc/fstab,永久挂载smb共享:
//172.25.254.136/halo /mnt/ cifs credentials=/root/smbpassword,multiuser,sec=ntlmssp 0 0
然后执行 mount -a
- samba配置
- 配置samba
- 配置samba
- samba 配置
- samba配置
- samba配置
- samba 配置
- samba 配置
- samba 配置
- samba配置
- samba配置
- samba 配置
- samba配置
- samba配置
- samba配置
- 配置samba
- 配置Samba
- samba配置
- 正确使用cookie中的domain
- express组合gulp自动更新代码重启浏览器
- 矩阵A+B
- Apache Camel系列(1)----使用场景
- response的contentType 几种类型
- samba配置
- HDU-1008-Elevator
- 原根
- python3--list的使用
- 八大排序方法详解(附java代码)
- Grails项目实现-购物车 过程文档(1)
- 用Maven自动生成带有sh和bat启动脚本的java应用
- loadrunner之资源监控与分析
- jstl自定义标签