ubuntu下用samba实现windows与linux文件共享(同事的blog,拿来备份)

首先要安装samba

sudo apt-get install samba
sudo apt-get install smbfs

1.windows 访问 ubuntu
下面我们来共享群组可读写文件夹,

A: 可匿名访问,只有读取权限 /home/share
B: 授权用户可访问,且可读写 /home/mes

首先创建这个两个文件夹

代码:

mkdir /home/share
chmod 755 /home/share

mkdir /home/mes
chmod 777 /home/mes

备份并编辑smb.conf允许网络用户访问

代码: sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
sudo vim /etc/samba/smb.conf

更改及添加如下代码:

[global]
#security = user
security = share
username map = /etc/samba/smbusers #用户映射文件

workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936

然后设定共享:

[share] #共享名
path = /home/share #共享路径
browseable = no #相当于windows系统中 共享名$
guest ok = yes #是否允许匿名访问
read only = yes #只读
writable = no #是否可写

[mes]
path = /home/mes
browseable = no
guest ok = no
create mask = 0700
directory mask = 0700
writable = yes
valid users = mes,@mes #可访问的用户及组,可不加组
write list = mes #有写入权限的用户

到此,设置文件已经结束,接下来就是创建用户

sudo useradd mes -s /bin/false -d /home/mes #没有shell,不可本机登陆(安全起见)
sudo smbpasswd -a mes #设置smb访问密码,这个不是系统密码(上步允许登陆系统的话,还可设定系统密码)。 -a 是添加用户,-x 是删除用户

建立用户映射文件
sudo vim /etc/samba/smbusers
gbmddl = "mes" #这样就可用gbmddl 用户访问smb共享,给暴力破解系统账号密码增加难度,因gbmddl在系统中根本就不存在

然后重启samba,其它用户即可访问
sudo /etc/init.d/samba restart



2.Ubuntu linux 系统访问windows xp/2003/2000系统

第一种:用smb访问
如果在ubuntu linux系统终端pingwindows主机的ip地址可以ping通,且windows计算机中有共享的文件夹,则打开位置下的网络服务器,点击界面中windows网络->workgroup,在workgroup组中就可以看到windows计算机名,双击会弹出输入用户名和密码的对话框,将我们上面设置smb的用户名和密码输入就可以进行访问。

第二种:用ubuntu 系统自带的连接到服务器功能访问
在位置中启动连接到服务器,在服务类型中选择“windows共享”,在服务器中输入windows计算机的ip地址或计算机名,点击连接,这样在系统桌面中就会显示一个连接到windows 计算机的文件卷。
我们可以像访问ubuntu系统中的磁盘一样来访问它,同样在访问的时候要输入smb的用户名和密码。

第三种:用mount挂载windows的共享目录到本地磁盘
首先要在ubuntu系统中建立一个挂载点,在这里我们建立的挂在点为 /mnt/wind
同样在保证网络连接正常,且windows中有共享目录的前提下,进行一下操作
以windows的ip为192.168.0.1,共享文件夹为share为例
命令如下:
mount -t smbfs –o username=wangyh,password=123456 //192.168.0.1/share /mnt/wind
有是这样在访问的时候会出现中文乱码的问题,这样我们可以按下面命令来执行,可以解决这个问题
mount -t smbfs -o iocharset=uft8,codepage=cp936,clmask=777,fmask=777,userneme=wangyh,password=123456 //192.168.0.1/share /mnt/wind
注解:usename和password都为smb的用户和密码,如果要详细了解mount命令,使用man mount在终端查看详细用法
提示:要访问windows中有特殊密码的文件夹,可以在samba中新建一个与windows登录相同名相同密码的用户,然后mount即可,例:
sudo useradd administrator //不要让其有登录ubuntu的权限
sudo smbpasswd -a administrator
然后提示输入密码:输入windows访问的密码即可

第四种:使用smbclient 命令
命令如下:
smbclient //192.168.0.1/share -U wangyh
password:输入smb用户wangyh的密码
回车就可以用,用命令get下载文件,用put上传文件。
注解:
smbclient介绍:
命令 说明
?或help [command] 提供关于帮助或某个命令的帮助
![shell command] 执行所用的SHELL命令,或让用户进入 SHELL提示符
cd [目录] 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录
lcd [目录] 切换到客户端指定的目录;
dir 或ls 列出当前目录下的文件;
exit 或quit 退出smbclient
get file1 file2 从服务器上下载file1,并以文件名file2存在本地机上;
如果不想改名,可以把file2省略
mget file1 file2 file3 filen 从服务器上下载多个文件;
md或mkdir 目录 在服务器上创建目录
rd或rmdir 目录 删除服务器上的目录
put file1 [file2] 向服务器上传一个文件file1,传到服务器上改名为file2;
mput file1 file2 filen 向服务器上传多个文件

你可能感兴趣的:(Linux)