一.安装samba服务器
首先: rpm -qa|grep samba // 查看要机是否有安装
如果有安装 就用 rpm -e samba //删除以前的安装
然后 yum -y install samba // yum 安装samba
samba-common //samba 的公用组件
samba //samba的服务器端
samba-client //samba的客户端s
二.配置samba
[global]
workgroup = SAMBA
security = user //这里的user 表示必须使用 用户名 密码才可以登录 samba 在以前的版本中可能还有 share等选项 ,V3.5版本后的只有user可以用
其它的设置不用改,默认就可以了
在文件的未尾,添加自己要共享的目录
[share] //它表示共享目录在别的机器上的显示的名称
comment = *nhui share //这只是个说明的文字,意义不大
path = /var/share// 设置共享目录的路径
writable = yes//表示目录可写
public = yes// 也可以写 guest ok = yes 表示允许以guest的身分访问
browsable = yes // 共享目录是否可见
以上几行已经足够了
create mask = 0664 表示在共享目录中新建的文件的访问权限 可以不写
write list = root,user1,user2 // 表示可以用户的白名单 可以不写
文件修改完成,保存退出
# testparm -s smb.conf // 检测一下smb.conf的书写有没有错误
-------------------------------------------------------------------------------------------------------------------------------------
samba 必须有自己的用户才可以访问,并且用户还必须是 本机 系统上的用户,(不能是远程的用户)
所以接下来
在本机创建一个用户 useradd mysmb
把这个用户添加到 samba的用户中,使用命令 smbpasswd -a mysmb // -a 表示新添加一个用户 不可缺少 回车后,就可以输入samba 的用户密码了
-----------------------------------------------------------------------------------------------------------------------------------
samba服务是要开启两个服务进程的 一个是 smb 服务 另一个是 nmb 服务
service smb start service nmb start
--------------------------------------------------------------------------------------------------------------------------------------------
将samba服务设为开机自启动的
systemctl enable smb.service
systemctl enable nmb.service
systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
任务 | 旧指令 | 新指令 |
使某服务自动启动 | chkconfig –level 3 httpd on | systemctl enable httpd.service |
使某服务不自动启动 | chkconfig –level 3 httpd off | systemctl disable httpd.service |
检查服务状态 | service httpd status | systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active) |
显示所有已启动的服务 | chkconfig –list | systemctl list-units –type=service |
启动某服务 | service httpd start | systemctl start httpd.service |
停止某服务 | service httpd stop | systemctl stop httpd.service |
重启某服务 | service httpd restart | systemctl restart httpd.service |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
注意,我们在 windows上连接 samba的文件夹 要关闭防火墙和 selinux service firewalld stop //关闭防火墙 关闭 selunux 有两种方法 1。 临时方法 getenforce //查看 selinux的况态 setenforce 0 // 临时关闭 selinux 2。永久关闭 在windows 运行中 输入 \\ ip地址\share 就可以访问了 或者用 映射网络驱动器 -------------------------------------------------------------------------------------------------------------------------------- 可能会有linux目录访问权限的问题,简单粗暴的方法 在linux下对共享的目录 chmod 777 /var/share //做成最大权限
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
值得一提的是 ,当我们在windows 使用ide工具来开发一个网站项目,然后上传到 linux 服务器上的测试 我们就可以使用 samba 服务
使用windows 直接在 linux上面修改 文件
但是 apache 运行的时候,httpd 的进程的执行者是 daemon , (查看方法 ps aus|grep httpd ) ,那么,我们通过访问 网站上的程序在网站目录下创建的文件等都是daemon用户的,当samba用户来访问时,就打不开,没有权限,
这时我们的做法是,,创建的 samba用户的名 ,就用 apache , 然后在 apache.conf 文件中也把 user daemon 改成 apache, 这样就不冲突了
nginx 的话,也一样要修改 ,nginx 默认的是root用户