samba主要用于共享给windows,NFS主要用于linux之间(个人观点) Samba需要的软件: samba:主要提供了SMB服务所需的各种服务程序(smbd,nmbd)的文件档。 samba-client:提供了Linux作为Samba客户端时,所需的工作指令。 Samba-common:提供的是服务端和客户端都会使用到的数据,包括SAMBA的主要配置文件(smb.conf)和语法检验指令(testparm)等。 linux 共享给windows 1. 安装前检查是否已安装Samba #rpm –qa | grep samba 2. #yum installsamba , yum会自动查找软件的关联性 3. #vi /etc/samba/smb.conf:配置文件已键值对的形式存在 修改已有的参数 global部分: workgroup 工作组名称(访问服务器的客户端电脑的工作组,注释1) server string 主机的简易说明,可随意填写 unix charset (Linux服务器上使用的编码,一般来说就是i18n) doc charset (Windows客户端的编码) log file 登录档(一般设为默认就可以) security 安全性参数, 包括(share, user, domain) share: 不需要设置密码,任何人都可以访问 user: 使用samba服务本身的密码数据库 passdb backend (user密码的数据库) //参考例子 workgroup= MYGROUP #注释1 serverstring = Samba Server Version %v unixcharset=utf-8 doccharset=utf-8 logfile = /var/log/samba/log.%m security= user passdbbackend = tdbsam 分享资源部分:Share Definitions [共享名称] 客户端看到的文件夹名称 comment 这个路径的说明 path 共享的Linux文件系统目录 browseable 是否让所有的用户看到 writable 是否可写人 read only 只读 public 默认yes (writable 和read only 最后出现的为主要设定) /////////////////// [myShare] comment= myShare's share path path=/usr/package browseable= yes writable= yes public= yes 4. 修改共享目录可执行权限: #chmod –R 777 [服务器共享的文件夹名称] #-R对当前目录下所有文件及文件夹极其子目录及子文件,权限改为777 。读 写 运行 如 #chmod –R 777 /usr/package 5. 使用testparm命令检查配置是否正确 6. 为用户设定samba服务权限:#smbpasswd–a [服务器已经存在的用户名称,如admin] 键入新密码,确认新密码(新密码不同于admin的登录密码,是windows进入共享目录的密码) [以后添加共享可以不再添加用户,使用已经配置好的即可,如果修改密码则 #smbpasswd–a admin] [samba使用脚本自动创建用户密码:#cat/etc/samba/sambaSettingPass.pwd | smbpasswd -a admin -s 其中【sambaSettingPass.pwd】中密码:一定填写2行 123 123 使用之前请添加此文件的执行权限 chmod +x /etc/samba/sambaSettingPass.pwd 7. 启动samba服务,包含两个服务模块smbd 和 nmbd centeros7及以上版本: systemctlstart smb.service (启动服务) systemctlstart nmb.service systemctlenable smb.service (开机运行服务) systemctlenable nmb.service 8. samba服务需开放3个端口 分别为137,138, 139 nmbd这个deamon利用UDP需要开放137,138 smbd这个deamon利用TCP需要开放139,445(不一定存在) 方式: #firewall-cmd--zone=public --add-port=137/UDP –-permanent #firewall-cmd--zone=public --list-all #firewall-cmd--reload 访问:\\ip\myshare windows 共享给linux 1.linux查询“rpm -qa | grep samba-client”,或“yum list samba-client”之类的命令。 在linux下查看windows共享的文件夹smbclient -L//IP地址 -U 用户名 2.在/etc/fstab 中添加如下:(username可以是windows下的User组用户) //192.168.1.111/shareTools /usr/share/pictures/ cifs defaults,auto,username=dell,password=123456 0 0 3.# mount –a 刷新fstab文件,如果不操作则无法挂载,添加或者更新后都需要此操作,或者重启电脑 4.linux访问:# mount -t cifs -o username=dell,password=123456,iocharset=utf8,codepage=cp936//192.168.1.111/shareTools/usr/roadsafe/pictures/ 注意:“-o”表示挂载参数,常见的是需要提供共享的用户名和密码,另外需要注意的是iocharset和codepage,这两个参数是用来解决系统之间的字符编码转换的,如果出现乱码的情况,是需要调整这两个参数的,针对简体中文,使用utf8和cp936一般都可以解决问题。挂载完成之后,就可以像使用本地文件目录一样访问Windows共享文件夹和文件了。 常见问题: 1. linux共享给windows,即使使用linux的root账户,依然不能在windows客户端拥有读写权限。 解决方法: 关闭setlinux对samba网络共享的限制,可以用setenforce 0 命令,强制修改。永久设置必须在/etc/sysconfig/selinux中添加设置 selinux=0【问题:客户端可以网络访问文件,但是不能插入文件】 通过#/usr/sbin/sestatus–v 可以查看状态,enabled即为开启 2. windows共享给linux: 2.1 linux上通过“smbclient -L //IP地址 -U 用户名””不能查看的windows共享。 解决方法:windows上“控制面板\网络和 Internet\网络和共享中心\高级共享设置”选择【关闭密码保护共享】 2.2 可以查看到共享,但是linux没有读写权限 解决方法:文件夹--右键--属性--共享--“共享(S)”选择everyone,权限设置【读取/写入】--共享(H) (责任编辑:IT) |