当前设置samba的系统环境介绍
VM下CentOS6.7 64
IP192.168.0.70
关闭selinux
setenforce 0
关闭iptables
service iptables stop
安装samba
yum -y install samba
|---|----------------------| | 1 | yum -y install samba |
更改samba配置文件security = user为security = share
sed -i '/;/!s/security = user/security = share/' /etc/samba/smb.conf
|---|----------------------------------------------------------------------| | 1 | sed -i '/;/!s/security = user/security = share/' /etc/samba/smb.conf |
注释:
security = user 定义安全级别 ,使用samba服务自我管理的帐号和密码进行用户认证;用户必须是系统用户,但密码非为/etc/shadow中的密码,而由samba自行管理的文件,其密码文件的格式由passdb bachend进行定义
security = share 匿名共享
修改samba配置文件
cat >> /etc/samba/smb.conf << EOF [share] #此处是模块名称,名字随便起 comment = blog.whsir.com #注释 path = /win #指定目录 browseable = yes #如果把此处改成no,smbclient -L //192.168.0.70在用命令查看时,就看不到share,见下图 guest ok = yes #是否可浏览,是否可被所有用户看到 writable = yes #是否可写(全局可写) create mask = 0644 #新建文件权限644 directory mask = 0755 #新建目录权限755 EOF
|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 | cat >> /etc/samba/smb.conf << EOF [share] #此处是模块名称,名字随便起 comment = blog.whsir.com #注释 path = /win #指定目录 browseable = yes #如果把此处改成no,smbclient -L //192.168.0.70在用命令查看时,就看不到share,见下图 guest ok = yes #是否可浏览,是否可被所有用户看到 writable = yes #是否可写(全局可写) create mask = 0644 #新建文件权限644 directory mask = 0755 #新建目录权限755 EOF |
可以用testparm命令测试下配置文件是否有错误
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[share]"
WARNING: The security=share option is deprecated
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
这种是个警告,忽略即可
创建需要共享的目录
mkdir /win
|---|------------| | 1 | mkdir /win |
更改权限,可以直接更改属组和属组,也可以将目录权限改成777
chown -R nobody.nobody /win 或 chown -R 777 /win
|-------|-------------------------------------------------| | 1 2 3 | chown -R nobody.nobody /win 或 chown -R 777 /win |
重启samba
service smb restart
|---|---------------------| | 1 | service smb restart |
Windows客户端访问
开始-运行-打开\\192.168.0.70\share
|---|---------------------------------| | 1 | 开始-运行-打开\\192.168.0.70\share |
Linux客户端访问
挂载到linux本地/data目录,即本地data目录就是远程/win目录,此处要求输入密码直接回车即可。
mount -t cifs //192.168.0.70/share /data
|---|------------------------------------------| | 1 | mount -t cifs //192.168.0.70/share /data |
给samba添加帐号密码
更改samba配置文件security = share为security = user
sed -i '/;/!s/security = share/security = user/' /etc/samba/smb.conf
|---|----------------------------------------------------------------------| | 1 | sed -i '/;/!s/security = share/security = user/' /etc/samba/smb.conf |
其他配置跟上面相同(看上面修改samba配置文件部分)
给samba添加用户,用户必须是当前linux已经存在的用户,不存在则需要创建
useradd whsir -s /sbin/nologin
|---|--------------------------------| | 1 | useradd whsir -s /sbin/nologin |
smbpasswd -a whsir #这里输入两遍密码
|---|------------------------------| | 1 | smbpasswd -a whsir #这里输入两遍密码 |
重启samba
service smb restart
|---|---------------------| | 1 | service smb restart |
Windows客户端访问
开始-运行-打开\\192.168.0.70\share就需要密码了
|---|---------------------------------------| | 1 | 开始-运行-打开\\192.168.0.70\share就需要密码了 |
Linux客户端访问
挂载到linux本地/data目录,即本地data目录就是远程/win目录,密码就是刚才设置的密码
mount -t cifs //192.168.0.70/share -o username=whsir /data
|---|------------------------------------------------------------| | 1 | mount -t cifs //192.168.0.70/share -o username=whsir /data |
附录:
smbpasswd命令:
-a:添加
-x:删除
-d:禁用
-e:启用
-n:将指定的用户密码置空
pdbedit命令:
-L :列出samba中所有已添加用户
注意:
手动创建useradd用户时,会有uid和gid,用这个用户在windows端上传修改文件时,权限会变成这个用户的uid和gid,这样就会导致一个权限问题。
如果是linux客户端的话,必须在当前linux客户端有这个用户,并且uid和gid跟服务端对应一致,才不会出现权限问题,当然你可以直接让samba使用nobody用户
samba不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。
在cmd中输入net use * /del /y即可解决
附:多用户权限限制,可参考以下配置
[us1] path = /data/us1 browseable = no guest ok = no writable = yes create mask = 0644 directory mask = 0755 force create mode = 0644 force directory mode = 0755 valid users = ys1 [us2] path = /data/us2 browseable = no guest ok = no writable = yes create mask = 0644 directory mask = 0755 force create mode = 0644 force directory mode = 0755 valid users = us2
|----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [us1] path = /data/us1 browseable = no guest ok = no writable = yes create mask = 0644 directory mask = 0755 force create mode = 0644 force directory mode = 0755 valid users = ys1 [us2] path = /data/us2 browseable = no guest ok = no writable = yes create mask = 0644 directory mask = 0755 force create mode = 0644 force directory mode = 0755 valid users = us2 |