注意:修改配置文件后,需要重新启动服务,或重载配置,下面操作不再赘述。 主程序: nmbd:NetBIOS name server smbd:SMB/CIFS services Unit File: smb.service nmb.service 如果只在linux/unix之间共享文件,可以不启动此服务 监听的端口: 137/udp, 138/udp 139/tcp, 445/tcp
主配置文件的配置段: Global Settings 全局设置 NetworkRelated Options 网络相关选项 Logging Options 日志选项 Standalone Server Options 独立服务器选项 Domain Members Options 域成员选项 Domain Controller Options 域控制选项 Browser Control Options 浏览器控件选项 Printing Options 打印选项 File System Options 文件系统选项 Share Definitions 共享定义 修改后可使用testparm命令检查文件及生效选项
客户端程序包:samba-client, samba-client-libs smbclient:交互式命令行客户端,类似于lftp; mount.cifs:挂载cifs文件系统的专用命令; 在默认配置下匿名查看服务端共享: 服务端: 添加用户 smbpasswd [options] USERNAME -a:添加 -x:删除 -d:禁用 -e:启用 使用交互式文件访问,进入到共享(smbuser1用户家目录)目录后,可使用help,查看可执行的操作, 以上共享操作的权限在/etc/samba/smb.conf中定义,如下: 共享文件系统配置 [SHARED_NAME] 有三类: [homes]:定义samba用户通过samba服务访问自己的家目录权限 [printers]:定义打印服务; [shared_fs]:定义共享的文件系统; 常用指令: comment:注释信息; path:当前共享所映射的文件系统路径; browseable:是否可浏览,指是否可被用户查看; guest ok:是否允许来宾账号访问; public:是否公开所有用户; writable:是否可写; read only:是否为只读; write list:拥有写权限的用户列表; 用户名 @组名 +组名 新建共享目录 服务端编辑/etc/samba/smb.conf,添加内容如下: 客户端查看: 客户端访问:
对smbuser1用户开放samba共享文件系统的写权限,如下: 客户端重进共享目录 设置可写用户访问列表,
也可以设置组访问列表,在组名前加@或+符号,使用setfacl添加权限。
客户端测试: 服务端查看: 客户端挂载访问:
Windows下查看:
扩展: 在已挂载访问情况下延伸扩展。在samba共享目录下部署phpmyadmin,客户端httpd服务使用其共享目录做为站点目录, 部署php-fpm环境,使其phpmyadmin可以正常访问, 客户端:装httpd,php-fpm ,客户端遍/httpd/conf/httpd.conf文件,如下: Listen 172.16.250.222:80 监听本机IP80端口 DocumentRoot “/smb-test-dir” 重新定义站点根目录 DirectoryIndex index.php 设置默认网页 ProxyRequests off 关闭反向代理 将所有以.php结尾的网页文件反向代理到后端指定目录 ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/smb-test-dir/$1
#<Directory "/var/www/html"> #变更站点根目录 <Directory "/smb-test-dir"> #新站点目录显式控制,配置完成后httpd –t 检查语法,启动httpd服务,因本地解析php文件,所以php配置要修改,客户端配置完成。 服务端,服务端在共享目录下布置phpmyadmin,获取phpmyadmin包,将phpmyadmin包重命名为pma, 将包内config.sample.inc.php重命名为config.inc.php, 要确定$cfg[‘blowfish_secret’] = ‘a8b7ds3e2e122e2efrtc6d’;等号后面一定要有字符串,可以是随机生成的, 编写完成后,服务端配置完成。 测试: 客户端启动httpd与php-fpm服务, 浏览器输入:172.16.250.222/pma,如下: