(一) 从Windows访问Linux
一、安装Samba服务
1、检测本地是否安装Samba服务,从图中可以看出本机已经安装了samba服务。
–qa | grep samba
2、如果没有安装,请放入第二张光盘,然后进行安装
mount /media/cdrom/
cd /media/cdrom/RedHat/RPMS/ ls samb*
rpm –ivh samba*.rpm
二、配置共享型Samba服务器
所谓共享型Samba服务器就是无需身份验证,类似匿名的FTP。
1、备份samba配置文件,养成一个好习惯,配置任何服务的时候最好将原配置文件做一下备份
cd /etc/samba/
tar –cvf smb.tar *.* smb.conf ls
2、创建共享目录及修改访问权限
mkdir -p /home/share
chmod 777 /home/share
3、编辑配置文件 vi /etc/samba/smb.conf,在文件底部复制[myshare]内容,然后修改如下
[myshare]
Comment = Linux share
Path = /home/share
Public = yes
Writable = yes
Printable = no
Create mask = 0765
[global]
security = share
4、启动samba服务
service smb start
5、查看本机Linux的IP地址
ifconfig
6、打开Windows客户端搜索Linux 的 Ip地址 假如不能访问的话输入如下命令:
setsebool -P samba_enable_home_dirs on
chcon -t samba_share_t /home/share
7、测试写入权限,新建一个写入成功啦!!!!!.txt
三、配置用户型samba服务器
所谓用户型samba服务器,就是用户登陆时提供身份验证,未经允许的用户是不能进行访问的。
1、还原smb配置文件,停止smb服务
service smb stop
2、编辑smb.conf,设置安全级别为user级别
security = use
3、启用samba验证密码
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
4、设置一个只允许user1访问的共享
[myshare]
Comment = Linux share
Path = /home/share
Valid users = user1
Public = no
Writable = yes
Printable = no
Create mask = 0765
5、添加系统用户
[root@localhost ~]# Useradd user1
[root@localhost ~]# Useradd user2
6、添加samba用户
[root@localhost ~]# Smbpasswd -a user1
New SMB password:
Retype new SMB password:
Mismatch - password unchanged.
Unable to get new password.
[root@localhost ~]# Smbpasswd -a user2
New SMB password:
Retype new SMB password:
Mismatch - password unchanged.
Unable to get new password.
7、启动samba服务器
Service smb start
8、客户端搜索samba服务器,以user1身份登陆
9、可以看到user1目录与myshare目录,并可以访问myshare目录
10、删除刚才默认的链接(在Windows命令窗口)
先使用命令net use 查看共享信息
然后使用命令net use * /delete (删除原来的共享信息)
11、以user2身份登陆,无法访问myshare共享
(二) 从Linux访问Windows
1、Windows共享ABC目录,并开启guest用户,如下图:
开启guest用户是为了测试命令:
smbclient -L 192.168.1.10 (列出该服务器的所有共享目录)
2、列出Windows服务器里的所有共享目录
[root@localhost ~]# smbclient -L 192.168.1.10 //匿名查看该服务器的共享目录 Password:
Domain=[CONCORD-E2I0W1S] OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2]
Sharename Type Comment --------- ---- -------
3、查看Windows服务器的ABC目录里的文件
[root@localhost ~]# smbclient //192.168.1.10/ABC -U administrator
//使用管理员的帐号访问Windows服务器共享文件 Password:
Domain=[CONCORD-E2I0W1S] OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2]
smb: \> dir
//查看ABC目录下的文件
. D 0 Sat Aug 6 15:33:13 2011
.. D 0 Sat Aug 6 15:33:13 2011
、将Windows服务器的ABC共享目录挂载到\mnt目录下
[root@localhost ~]# mount -o username=administrator //192.168.1.10/ABC /mnt //挂载共享目录ABC到/mnt Password:
[root@localhost ~]# ls /mnt abc.txt Windows Server.txt
[root@localhost ~]# cd /mnt
[root@localhost mnt]# mkdir Linux
//现在已经可以直接对共享目录ABC进行直接操作
其它备注:
[global]代码:
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local,UTF-8 有可能需要改成 cp936。
用mount挂载windows的共享目录到本地磁盘
首先要在Linux系统中建立一个挂载点,在这里我们建立的挂在点为 /mnt/wind 同样在保证网络连接正常,且windows中有共享目录的前提下,进行一下操作
以windows的ip为192.168.0.1,共享文件夹为share为例 命令如下:
mount -t smbfs –o username=XXXX,password=XXXX //192.168.0.1/share /mnt/wind
有是这样在访问的时候会出现中文乱码的问题,这样我们可以按下面命令来执行,可以解决这个问题
mount -t smbfs -o iocharset=uft8,codepage=cp936,clmask=777,fmask=777,userneme=XXXX,password=XXXX //192.168.0.1/share /mnt/wind
注解:usename和password都为smb的用户和密码,如果要详细了解mount命令,使用man mount在终端查看详细用法
提示:要访问windows中有特殊密码的文件夹,可以在samba中新建一个与windows登录相同名相同密码的用户,然后mount即可
例: useradd administrator //不要让其有登录Linux的权限 smbpasswd -a administrator
然后提示输入密码:输入windows访问的密码即可
使用smbclient 命令 命令如下:
smbclient //192.168.0.1/share -U XXXX
password:输入smb用户XXXX的密码
回车就可以用,用命令get下载文件,用put上传文件。