实现Linux系统与Windows系统之间文件共享
Samba服务
1:先到yum仓库安装相关服务
[root@linuxprobe ~ ]# yum install samba
Loaded plugins: langpacks, product-id, subscription-manager
省略
Installing:
samba x86_64 4.1.1-31.el7 rhel 527 k
Transaction Summary
=============================================================================== Install 1 Package
Total download size: 527 k
Installed size: 1.5 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : samba-4.1.1-31.el7.x86_64 1/1
Verifying : samba-4.1.1-31.el7.x86_64 1/1
Installed:
samba.x86_64 0:4.1.1-31.el7
Complete
2:安装完成后修改samba服务配置文件
[root@linuxprobe ~]# vim /etc/samba/smb.conf
1 [global]
2 workgroup = MYGROUP
3 server string = Samba Server Version %v
4 log file = /var/log/samba/log.%m
5 max log size = 50
6 security = user
7 passdb backend = tdbsam
8 load printers = yes
9 cups options = raw
10 [database]
11 comment = Do not arbitrarily modify the database file
12 path = /home/database
13 public = no
14 writable = yes
修改方式参考下列参数:
[database]:共享名称为 database
comment = Do not arbitrarily modify the database file:警告用户不要随意修改数据库
path = /home/database:共享目录为/home/database
public = no:关闭“所有人可见”
writable = yes:允许写入操作
Samba 服务程序的配置工作基创建用于访问共享资源的账户信息。在RHEL7中Samba服务程序默认使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问享资源,所以只有建立账户信息数据库之后,才能使用用户口令认证模式。另Samba 服务程序的数据库要求账户必须在当前系统中已经存在,否则之后创建文件时将导致文件的权限属性而混乱,从而引发错误。 pdbedit命令用于管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。 在第一次把账户信息写入到数据库时需要使用-a 参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。
Pdbedit命令常用参数:
-a 用户名:建立 Samba 账户
-x 用户名:删除 Samba 账户
-L:列出账户列表
-Lv:列出账户详细信息的列表
具体操作:
[root@linuxprobe ~]# id 用户名
uid=1000(用户名) gid=1000(用户名) groups=1000(用户名)
[root@linuxprobe ~]# pdbedit -a -u用户名
new password: 输入samba密码
retype new password: 再次输入密码
Unix username: 用户名
NT username:
Account Flags:
UserSID: S-1-5-21-507407404-3243012849-3065158664-1000
PrimaryGroupSID:S-1-5-21-507407404-3243012849-3065158664-513
Full Name: 用户名
Home Directory: \\localhost\用户名
HomeDir Drive:
省略。。。
```
**3:创建共享资源文件的目录**
```
[root@linuxprobe ~]# mkdir /home/database
[root@linuxprobe~]#chown-Rflinuxprobe:linuxprobe /home/database
[root@linuxprebe~]#semanage fcontext –a –t samba_share_t
/home/database
[root@linuxprobe ~]# restorecon -Rv /home/database
restoreconreset/home/databasecontext unconfined_u:object_r:home_root_t:s0->
unconfined_u:object_r:samba_share_t:s0
```
**4:设置SELinux服务与策略**
```
使其允许通过Samba服务程序访问普通用户家目录。执行 getsebool命令,筛选出所有与Samba服务程序相关的SELinux域策略,根据策略的名称选择出正确的策略条目进行开启即可。
[root@linuxprobe ~]# 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@linuxprobe ~]# setsebool -P samba_enable_home_dirs on
```
**5:重新启动samba服务,并清空iptables防火墙即可**
**6:在windows系统上查看共享资源**
>调出win系统的运行框,输入共享服务器的IP地址,格式如:\\192.168.10.10,进入后会提示输入账号密码,输入我们在samba服务创建的账号密码即可。注意linux系统防火墙一定要清空或放行策略,上文有提到,不然会访问不了。进入后即可看见从linux服务器上共享出的资源。
标签:samba,off,文件共享,Windows,database,--,Linux,home,root
From: https://www.cnblogs.com/megshuai/p/18518502