samba 文件共享(共享文件夹)
完成了windows和linux的文件共享
配置SMB共享
Samba软件项目
用途:为客户机提供共享使用的文件夹
协议:SMB(TCP 139),CIFS(TCP 445)
所需软件包:samba
系统服务:smb
在RHCE7 中有这样一道题:
搭建基本的samba服务
通过 Samba 发布共享目录
在 system1 通过 SMB 共享/common 目录:
您的 SMB 服务器必须是 STAFF 工作组的一个成员
共享名必须为 common
只有 example.com 域内的客户端可以访问 common 共享
common 必须是可以浏览的
用户 harry 必须能够读取共享中的内容,如果需要的话,验证的密码是 migwhisk
1.安装samba软件包
[root@system1 ~]# yum -y install samba
2.创建samba的共享帐号 与系统用户名相同 但有独立密码
使用pdbedit管理工具
添加用户:pdbedit -a 用户名
查询用户:pdbedit -L [用户名]
删除用户:pdbedit -x 用户名
[root@system1 ~]# useradd -s /sbin/nologin harry#防止用户直接登陆操作系统
[root@system1 ~]# grep 'harry' /etc/passwd
harry:x:1003:1004::/home/harry:/sbin/nologin
[root@system1 ~]# pdbedit -a harry#添加Samba用户
[root@system1 ~]# pdbedit -L#查询所以Samba用户
harry:1003:
3.修改配置文件及参数
文件路径:/etc/samba/smb.conf
[root@system1 ~]# vim /etc/samba/smb.conf
...
workgroup = STAFF#89行 选改工作组 现在都不用了
...
[common]#321行 共享名
path = /common# 共享的实际路径
...
[root@system1 ~]# mkdir /common
[root@system1 ~]# echo 'test' > /common/tset.txt
4.重启服务,并设置开机自启
[root@system1 ~]# systemctl restart smb
[root@system1 ~]# systemctl enable smb.service
5.测试并访问
使用smbclient测试(一般直接挂载 不用装包)
所需软件包:samba-client
列出共享资源
smbclient -L 服务器地址
连接到共享文件夹
smbclient -U 用户名 //服务器地址/共享名
[root@system2 ~]# yum -y install samba-client.x86_64
[root@system2 ~]# smbclient -L //172.25.0.11
Enter root's password:
Anonymous login successful
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
common #共享名 Disk #共享类型
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@system2 ~]# smbclient -U harry //172.25.0.11/common
Enter harry's password: #这里输入密码
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*#不能访问
6.SELinux: 布尔值(功能的开关)
具体关于SELinux的功能介绍 请看 : https://blog.51cto.com/13558754/2058355
getsebool 查看SELinux开关
setsebool 控制SELinux开关
需要加 -P 选项才能实现永久设置 (内存太小会死机)
[root@system1 ~]# getsebool -a | grep samba 查看
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off #只读
samba_export_all_rw --> off#
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@system1 ~]# setsebool -P samba_export_all_ro=on
[root@system1 ~]# getsebool -a | grep samba_export_all_ro
samba_export_all_ro --> on
[root@system2 ~]# smbclient -U harry //172.25.0.11/common
Enter harry's password:
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls#可以成功显示配置文件
. D 0 Mon Nov 6 10:43:17 2017
.. D 0 Mon Nov 6 10:42:56 2017
tset.txt N 5 Mon Nov 6 10:43:17 2017
40913 blocks of size 262144. 28492 blocks available
7.客户端访问点
安装软件包cifs-utils
[root@system2 ~]# yum -y install cifs-utils.x86_64
修改/etc/fstab
[root@system2 ~]# mkdir /mnt/samba/
[root@system2 ~]# vim /etc/fstab
//172.25.0.11/common /mnt/samba cifs username=harry,password=123,_netdev 0 0
#_netdev 先启动网络 在完成挂载
验证
[root@system2 ~]# mount -a
[root@system2 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
在RHCE7中还有这样的一道题
配置多用户Samba挂载
在 system1 通过 SMB 共享目录/devops,并满足以下要求:
共享名为 devops
共享目录 devops 只能被 example.com 域中的客户端使用
共享目录 devops 必须可以被浏览
用户 kenji 必须能以读的方式访问此共享,该问密码是 atenorth
用户 chihiro 必须能以读写的方式访问此共享,访问密码是 atenorth
此共享永久挂载在 system2.example.com 上的/mnt/dev 目录,并使用用户 kenji 作为认证。任何用户可以通过用户 chihiro 来临时获取写的权限
为了方便理解 将这到题目分成两部分进行实验
1) chihiro 读写的方式访问此共享
1.创建samba的共享帐号
[root@system1 ~]# useradd -s /sbin/nologin kenji
[root@system1 ~]# useradd -s /sbin/nologin chihiro
[root@system1 ~]# pdbedit -a kenji
[root@system1 ~]# pdbedit -a chihiro
[root@system1 ~]# pdbedit -L#查询所以Samba用户
harry:1003:
chihiro:1005:
kenji:1004:
2.修改配置文件
[root@system1 ~]# vim /etc/samba/smb.conf
...
[devops]
path = /devops
write list = chihiro
...
[root@system1 ~]# mkdir /devops
[root@system1 ~]# echo dasfasd > /devops/123.txt
3.重启smb服务
[root@system1 ~]# systemctl restart smb.service
4.客户端验证
[root@system2 ~]# smbclient -L //172.25.0.11
Enter root's password:
Anonymous login successful
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
common Disk
devops Disk
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
5.客户端挂载
[root@system2 ~]# vim /etc/fstab
...
//172.25.0.11/devops /mnt/dev cifs username=chihiro,password=atenorth,_netdev 0 0
...
[root@system2 ~]# mkdir /mnt/dev
[root@system2 ~]# mount -a
[root@system2 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
//172.25.0.11/devops 10G 3.1G 7.0G 31% /mnt/dev
实现读写操作
[root@system1 ~]# setfacl -m u:chihiro:rwx /devops/#开启目录本地权限
[root@system1 ~]# getfacl /devops/
getfacl: Removing leading '/' from absolute path names
# file: devops/
# owner: root
# group: root
user::rwx
user:chihiro:rwx
group::r-x
mask::rwx
other::r-x
[root@system1 ~]# setsebool samba_export_all_rw=on#开启SELinux samba 读写功能
[root@system1 ~]# getsebool -a | grep 'samba_export_all_rw'
samba_export_all_rw --> on
[root@system1 ~]# systemctl restart smb.service
2) multiuser 多用户访问
管理员只需要作一次挂载
客户端在访问挂载点时,若需要不同权限,可以临时切换为新的共享用户
multiuser ,提供对客户端多个用户身份的区分支持
sec=ntlmssp ,提供NT局域网管理安区支持
[root@system2 ~]# vim /etc/fstab
//172.25.0.11/devops /mnt/dev cifs username=kenji,password=123,_netdev,multiuser,sec=ntlmssp 0 0
[root@system2 ~]# umount /mnt/dev/
[root@system2 ~]# mount -a
[root@system2 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
//172.25.0.11/devops 10G 3.1G 7.0G 31% /mnt/dev
[student@system2 /]$ cifscreds add -u chihiro 172.25.0.11
[student@system2 /]$ cd /mnt/dev/
[student@system2 dev]$ touch abc.txt
[student@system2 dev]$ ls
123.txt abc.txt
扩展
在windows操作系统中如果想要使用samba
关闭防火墙
运行----> 输入\\172.25.0.11 ----->输入上面建立的用户名和密码-----> 进入 从而实现windows 和Linux 文件共享