本文是转字网上的两段,若是是菜鸟,想懂有点难度,我这里给点注释 linux
在linux上共享文件夹windows下看
*******************************************
首先给linux设一个ip,要和windows是一个网段的
mkdir /share ---------------在根下建立文件夹(除了root的目录下不能建立其余均可以)
chmod 777 /share/ ------------给share文件夹赋权
vi /etc/samba/smb.conf ------------(编辑samba下的smb.conf文件)
编辑security = share----------通常在第58行
编辑最后面的 286 [weihaiyang]
287comment = share
288path =/share
289valid users = nobody
290public = yes
291writable = yes
292printable = no
293create mask = 0765 (前面的数字是行数) ios
service smb restart 重启smb服务
而后在windows下的“运行”里输入linux的ip就OK了 windows
[data]
path = /data
writeable = yes
guest ok = yes
注:这个共享,你能够先在图形界面上操做,而后去cat这个文件,就能看到变化,共享后,就是在smb.conf的后面加上这一段,几个共享,几段,若是更改访问权限,是直接改上面的。 浏览器
这是第二段,但这段稍微复杂,就是多用户多共享,密码访问,道理跟第一段相似,只是复杂点。 安全
在linux创建共享文件夹
咱们今天要实现的环境是,假如公司有财务,技术,领导3个部门,咱们分别为3个部门创建3个用户组为caiwu,network,lingdao;
三个部门里各有2个用户,咱们建用户分别为caiwu01,caiwu02,network01,network02,lingdao01,lingdao02
而后咱们分别就公司的具体状况创建相应的目录及访问权限,经过如下的例子,但愿你们能在平时的工做中灵活的应用samba的安全权限来设置大家的samba文件服务器。
1。首先服务器采用用户验证的方式,每一个用户能够访问本身的宿主目录,而且只有该用户能访问宿主目录,并具备彻底的权限,而其余人不能看到你的宿主目录。
2。创建一个caiwu的文件夹,但愿caiwu组和lingdao组的人能看到,network02也能够访问,但只有caiwu01有写的权限。
3。创建一个lindao的目录,只有领导组的人能够访问并读写,还有network02也能够访问,但外人看不到那个目录
4。建议一个文件交换目录exchange,全部人都能读写,包括guest用户,但每一个人不能删除别人的文件。
5。建议一个公共的只读文件夹public,全部人只读这个文件夹的内容。
好,咱们先来前期的工做
#groupaddcaiwu
#groupaddnetwork
#groupaddlingdao
#useraddcaiwu01-gcaiwu
#useraddcaiwu02-gcaiwu
#useraddnetwork01-gnetwork
#useraddnetwork02-gnetwork
#useraddlingdao01-glingdao
#useraddlingdao02-glingdao
而后咱们使用smbpasswd-acaiwu01的命令为6个账户分别添加到samba用户中
#mkdir/home/samba
#mkdir/home/samba/caiwu
#mkdir/home/samba/lingdao
#mkdir/home/samba/exchange
#mkdir/home/samba/public
咱们为了不麻烦能够在这里把上面全部的文件夹的权限都设置成777,咱们经过samba灵活的权限管理来设置上面的5点要求。
如下是个人smb.conf的配置文件
[global]
workgroup=bmit
#个人网络工做组
serverstring=Frank'sSambaFileServer
#个人服务器名描述
security=user
#使用用户验证机制
encryptpasswords=yes
smbpasswdfile=/etc/samba/smbpasswd
#使用加密密码机制,在win95和winnt使用的是明文
其余的基本上能够按照默认的来。
[homes]
comment=HomeDirectories
browseable=no
writable=yes
validusers=%S
createmode=0664
directorymode=0775
#homes段知足第1条件
[caiwu]
comment=caiwu
path=/home/samba/caiwu
public=no
validusers=@caiwu,@lingdao,network02
writelist=caiwu01
printable=no
#caiwu段知足咱们的第2要求
[lingdao]
comment=lingdao
path=/home/samba/lingdao
public=no
browseable=no
validusers=@lingdao,network02
printable=no
#lingdao段能知足咱们的第3要求
[exchage]
comment=ExchangeFileDirectory
path=/home/samba/exchange
public=yes
writable=yes
#exchange段基本能知足咱们的第4要求,但不能知足每一个人不能删除别人的文件这个条件,即便里设置了mask也是没用,其实这个条件只要unix设置一个粘着位就行
chmod-R1777/home/samba/exchange
注意这里权限是1777,相似的系统目录/tmp也具备相同的权限,这个权限能实现每一个人能自由写文件,但不能删除别人的文件这个要求
[public]
comment=ReadOnlyPublic
path=/home/samba/public
public=yes
readonly=yes
#这个public段能知足咱们的第5要求。
到此为止咱们的设置已经能实现咱们的共享文件要求,记得重启服务哦
#/etc/rc.d/init.d/smbrestart
若是你们没有winodws,不妨先用samba的cilent端命令来测试一下
命令的用法我在这里只举几个例子,具体的你们去试验
smbclient-L服务器ip-N
guest账户查询你的服务器的samba共享状况,你能够检验一下是否lingdao目录时候能被guest账户看到,应该是看不到的,固然你也能够以某个用户的名义查看
smbclient-L服务器ip-Ucaiwu01
系统会提示密码,只要输入smb密码就行。
smbclient//服务器ip/caiwu-Ucaiwu01
#以caiwu01用户的名义登陆caiwu目录
smbmount//服务器ip/caiwu/mnt/caiwu-ousername=caiwu01
#把服务器的财务目录映射到本地的/mnt/caiwu目录
linux访问windows的共享文件
linux能够经过Samba访问windows共享文件,若是smb的服务已经启动了的话,直接在浏览器中输入:smb://172.30.7.48/ 后就会列出共享的文件夹,而后点击一个文件夹,若是须要密码的话就会提示用户输入密码。 服务器
Samba的概念和使用以下:
1 Samba 简介 网络
Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 便可以用于Windows和Linux之间的共享文件,也同样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是须要架设服务器的; tcp
你们知道在Windows 网络中的每台机器便可以是文件共享的服务器,也能够同是客户机;Samba 也同样能行,好比一台Linux的机器,若是架了Samba Server 后,它能充当共享服务器,同时也能作为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器; 工具
咱们在Windows网络中,看到共享文件功能知道,咱们直接就能够把共享文件夹当作本地硬盘来使用。在Linux的中,就是经过Samba的向网络中的机器提供共享文件系统,也能够把网络中其它机器的共享挂载在本地机上使用;这在必定意义上说和FTP是不同的。 测试
Samba 用的netbios协议,若是您用Samba 不成功,
Linux与Windows 、Linux 和 Linux
2 Samba 功能和应用范围
Samba 应该范围主要是Windows和Linux 系统共存的网络中使用;若是一个网络环境都是Linux或Unix类的系统,没有必要用Samba,应该用NFS更好一点;
那Samba 能为咱们提供点什么服务呢?主要是共享文件和共享打印机;
3 Samba 两个服务器相关启动程序、客户端及服务器配置文件等;
3.1 Samba 有两个服务器,一个是smb,另外一个是nmb;
smb 是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;若是不打开nmb服务器的话,只能经过IP来访问,好比在Windows的IE浏览器上打入下面的一条来访问;
\\192.168.1.5\共享目录
\\192.168.1.5\opt
而nmb是解析用的,解析了什么呢?就是把这台Linux机器所共享的工做组及在此工做组下的netbios name解析出来;
通常的状况下,在RPM包的系统,若是是用RPM包安装的Samba ,通常能够经过以下的方式来启动Samba服务器;
[root@localhost ~]# /etc/init.d/smb start
启动 SMB 服务: [ 肯定 ]
启动 NMB 服务: [ 肯定 ]
若是中止呢?就在smb后面加stop ;重启就是restart
[root@localhost ~]# /etc/init.d/smb stop
[root@localhost ~]# /etc/init.d/smb restart
对于全部系统来讲,通用的办法就是直接运行smb 和nmb;固然您要知道smb和nmb所在的目录才行;若是是本身编译的Samba ,您应该知道您把Samba放在哪里了;
[root@localhost ~]# /usr/sbin/smbd
[root@localhost ~]# /usr/sbin/nmbd
查看服务器是否运行起来了,则用下面的命令;
[root@localhost ~]# pgrep smbd
[root@localhost ~]# pgrep nmbd
关掉Samba服务器,也能够用下面的办法,大可能是通用的;要root权限来执行;
[root@localhost ~]# pkill smbd
[root@localhost ~]# pkill nmbd
3.2 查看Samba 服务器的端口及防火墙;
查看这个有何用呢?有时你的防火墙可能会把smbd服务器的端口封掉,因此咱们应该smbd服务器所占用的端口;下面查看中,咱们知道smbd所占用的端口是139和445 ;
[root@localhost ~]# netstat -tlnp |grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 10639/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 10639/smbd
若是您有防火墙,必定要把这两个端口打开。若是不知道怎么打开。可能你和我同样是新手,仍是把防火墙规则清掉也行;
[root@localhost ~]# iptables -F
或
[root@localhost ~]# /sbin/iptables -F
3.三、查看Samba 服务器的配置文件;
若是咱们是用Linux发行版自带的Samba软件包,通常状况下Samba服务器的配置文件都位于/etc/samba目录中,服务器的主配置文件是smb.conf;也有有户配置文件 smbpasswd、smbusers和lmhosts等(最好您查看一下这些文件的内容);还有一个文件是secrets.tdb,这个文件是 Samba 服务器启动手自动生成的;咱们慢慢根据教程的进度来适当地增长这些文件的说明吧;一会儿都说出来,感受内容太多;因此只能一点一点的来了;
3.四、Samba 在Linux 中的一些工具(服务器端和客户端);
smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtree
smbclient smbcquotas smbmnt smbpasswd smbspool smbtar smbumount
smbd nmbd mount
其中服务器端的是smbd、nmbd、smbpasswd ;其它的大可能是客户端;这些并非都须要必定要精通的,但至少得会用几个;好比smbmount(也就是mount 加参数的用法),还用smbclient等;
3.5 在Linux 中的经常使用工具mount(smbmount)和smbclient;Windows查看Linux共享的方法;
3.5.1 在Linux系统中查看网络中Windows共享文件及Linux中的Samba共享文件;
通常的状况下,咱们要用到smbclient;经常使用的用法也无非是下面的;
[root@localhost ~]# smbclient -L //ip地址或计算机名
这个之后慢慢补充吧;
3.5.2 在Windows中访问Linux Samba服务器共享文件的办法;
这个简单吧,在网上领居,查看工做组就能看获得,或者在浏览器上输入以下的
\\ip地址或计算机名\共享文件夹(不是Linux下的共享文件夹名字,定义是smb.conf配置文件中的comment ),好比\\192.168.4.223\share
这样就能看到这个机器上有什么共享的了,点鼠标操做完成;若是访问不了,不要忘记把Linux的防火墙规划清掉,或让相应的端口经过;
3.5.3 smbfs文件系统的挂载;
mount 的用法,加载网络中的共享文件夹到本地机;mount就是用于挂载文件系统的,SMB作为网络文件系统的一种,也能用mount挂载;smbmount说到底也是用mount的一个变种;
mount 挂载smbfs的用法;
mount -t smbfs -o codepage=cp936,username=用户名,password=密码 , -l //ip地址/共享文件夹名 挂载点
或
mount -t smbfs -o codepage=cp936,username=用户名,password=密码 , -l //计算机名/共享文件夹名 挂载点
或
mount -t smbfs -o codepage=cp936 //ip地址或计算机名/共享文件夹名 挂载点
smbmount的用法:
smbmount -o username=用户名,password=密码 , -l //ip地址或计算机名/共享文件夹名挂载点
smbmount //ip地址或计算机名/共享文件夹名 挂载点
说明:
若是您的服务器是以share共享的,则无需用户名和密码就能挂载,若是出现要密码的提示,直接回车就行;您也能够用smbmount 来挂载,这样就无需用mount -t smbfs来指定文件系统的类型了;
对于挂载点,咱们要本身创建一个文件夹,好比咱们能够建在/opt/smbhd,这由您说的算吧;
在mount的命令中,咱们发现有这样的一个参数codepage=cp936,这是服务器端文件系统的编码的指定,cp936 就是简体中文,固然您能够用utf8等,尝试一下吧。
若是您挂载了远程的smbfs文件系统出现的是简体中文乱码,就要考虑挂载时要指定编码了;
四、由最简单的一个例子提及,匿名用户可读可写的实现;
第一步: 更改smb.conf
咱们来实现一个最简单的功能,让全部用户能够读写一个Samba 服务器共享的一个文件夹;咱们要改动一下smb.conf ;首先您要备份一下smb.conf文件;
[root@localhost ~]# cd /etc/samba
[root@localhost samba]# mv smb.conf smb.confBAK
而后咱们来从新建立一个smb.conf文件;
[root@localhost samba]#touch smb.conf
而后咱们把下面这段写入smb.conf中;
[global]
workgroup = LinuxSir
netbios name = LinuxSir05
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /opt/linuxsir
writeable = yes
browseable = yes
guest ok = yes
注解:
[global]这段是全局配置,是必段写的。其中有以下的几行;
workgroup 就是Windows中显示的工做组;在这里我设置的是LinuxSir
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,能够本身来定义;这个不是什么重要的;
security 这是验证和登陆方式,这里咱们用了share ;验证方式有好多种,这是其中一种;另一种经常使用的是user的验证方式;若是用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
path = 能够设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否能够浏览,能够;
guest ok 匿名用户以guest身份是登陆;
第二步:创建相应目录并受权;
[root@localhost ~]# mkdir -p /opt/linuxsir
[root@localhost ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[root@localhost ~]# chown -R nobody:nobody /opt/linuxsir
注释:关于受权nobody,咱们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,咱们要以这个为准。有些系统nobody用户组并不是是nobody ;
第三步:启动smbd和nmbd服务器;
[root@localhost ~]# smbd
[root@localhost ~]# nmbd
第四步:查看smbd进程,确认Samba 服务器是否运行起来了;
[root@localhost ~]# pgrep smbd
13564
13568
第五步:访问Samba 服务器的共享;
在Linux 中您能够用下面的命令来访问;
[root@localhost ~]# smbclient -L //LinuxSir05
Password: 注:直接按回车
在Windows中,您能够用下面的办法来访问;
//LinuxSir05/