Linux Samba 指定用户访问特定的共享文件夹

Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件

例如:指定某个用户123访问一个特定的共享文件夹adc, 其他用户不可以访问abc目录

1、先创建一个用户命令useradd 123

root@ubuntu:/home# useradd 123

2、创建一个smbpasswd用户, 在创建这个用户时要先创建一个系统用户123(上一步已完成)

root@ubuntu:/home# smbpasswd -a 123
New SMB password:
Retype new SMB password:
Added user 123.
root@ubuntu:/home# 

3、创建一个abc目录,修改目录的用户组及权限 

root@ubuntu:/home# mkdir abc
root@ubuntu:/home# chown 123 abc/
root@ubuntu:/home# chmod 700 abc/
root@ubuntu:/home# ls -al abc/
drwx------  2 123  root 4096 5月  30 12:39 .

4、配置smb服务:

编辑/etc/samba目录下的smb.conf文件
vi /etc/samba/smb.conf
smb.conf中包含了多个全程单元,每个单元的名字放于方括号([])中,方括号也是区分各个单元的标识。
第一个单元是[global],用于一些全局设置,对于不熟悉samba的用户来说,一般不要对此单元进行修改。
第二个单元是[home],它的作用是使linux用户可以从其它机器上连接到自己的home目录。
要设置一个特定的共享目录,建议在smb.conf文件尾部增加一个全程单元。

一般包括几条语句。下面是一个例子:
[abc] 
  comment = Shared Folder with username and password
  path = /home/abc
  public = yes
  writable = yes
  valid users = 123
  write list = 123
  read list = 123
  create mask = 0777
  directory mask = 0777
  create mode = 0777
  directory mode = 0777
  available = yes
  browseable = yes
  #guest ok = yes
  #read only = no
  #force user = 123
  #force group = 123

[abc] 给共享文件的取个别名也可以和原来的一样
说明: 
comment:提示,在windows的网络邻居上显示为备注。
path:linux上共享目录 
valid users: 允许访问linux共享目录的用户,此用户需是linux的samba用户
public:允许guest访问
writable: 允许用户写
printable: 若设为yes,则被认定为打印机
create mask:在共享目录上建立的文件的权限

5、重启smb服务:

/etc/init.d/smb restart

如果SMB服务未启动,请执行/etc/init.d/smb start启动。
如果想让系统重启后自动启动SMB服务,请在/etc/init.d/boot.local文件尾加入如下两行:
rcnmb start
/etc/init.d/smb start

6、 在Windows中访问Linux共享的文件夹:

a. 在“开始 > 运行”中输入“\\Linux服务器IP地址”即可登录到目标服务器:
b. 具体访问某目录,如abc,系统会弹出对话框,需要输入samba用户(123及密码)。

输入用户名和密码后即可访问Linux系统中的文件,此用户名和密码即为上述增加的samba用户名和密码,输入其他用户则不可访问!!!

7、 把Linux的共享文件夹映射为Windows本地的一个磁盘分区:

a. 在“开始 > 运行”中输入“cmd”启动Windows命令行。
b. 执行net use Q: \\Linux服务器IP地址\abc  命令完成映射。
c. 打开Windows的“我的电脑”可以看到一个挂载盘了。

 

备注:   \\访问Linux共享的文件夹时出现问题:

在访问\\192.168.1.12\abc是windons报错:
不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接...

问题原因:
	简单讲,已经使用了一个用户名连接到服务器或服务器上共享的资源上面,并且未退出。如\\192.168.1.12\xxx链接导致
	现在再使用不同的用户名连接到服务器或服务器上共享的资源上时,就会有这样的提示。
	
	----------------------------------------------------------------------------------
	用net use 查看当前的远程连接:
	C:\Users\Administrator>net use
		不记录新的网络连接。
		状态       本地        远程                      网络

		-------------------------------------------------------------------------------
		已断开       Y:        \\192.168.1.2\SN   Microsoft Windows Network
		OK           Z:        \\192.168.1.2\install Microsoft Windows Network
		OK                     \\192.168.1.19\Code    Microsoft Windows Network
		已断开                 \\192.168.1.12\xxx  Microsoft Windows Network

		命令成功完成。
		
解决方案:
	可以先退出原来连接的用户或者使用原来连接的用户名连接,就不会有这样的提示了。
	也可以注销当前用户,重新登陆再打开使用。
	
	可在Windons cmd下运行net use \\上次的linux连接 /del 也可解决问题;如net use \\192.168.1.12\xxx /del
	也可删除所有链接,在Windons cmd下运行net use * /del /y来清除系统记录列表,即可解决问题!

	-------------------------------------------------------------------------------
	可以用net use 删除当前的远程连接:	
	net use \\192.168.1.12\xxx /del
	\\192.168.1.12\xxx 已经删除。

 

你可能感兴趣的:(linux,学习)