一、samba服务的安装和配置
1、
linux与非linux之间文件的共享
NFS能使Linux主机之间实现资源访问,
而SAMBA服务软件能够使windows与linux之间实现资源共享
SMB通信协议采用的是C/S结构,SAMBA软件可分阶段客户端及服务端两部分,通过执行SAMBA客户端程序,linux主机便可以使用网络上的windows主机所共享的资源,
2、安装步骤
# yum -y install samba samba-client samba-common
安装完成后运行 rpm -qa | grep "samba",确保都安装成功了。
3、samba配置
假设我们有这样一个场景
共享名 路径 权限
SHAREDOC /smb/docs 所有人员包括来宾均可以访问
RDDOCS /smb/tech 仅允许特定组的用户进行读写访问
准备工作:
创建共享目录(假设共享/smb目录下的文件)
# mkdir -p /smb/docs
# mkdir -p /smb/tech
//创建操作系统用户
# useraddalice
# useraddjack
# useradd tom
# useradd RD
//修改用户的组
# usermod -aG RD alice
# usermod -aG RD jack
# usermod -aG RD tom
账号创建完以后检查用户所属组,确保每个用户所属组都有1003 RD
# id alice
uid=1000(alice) gid=1000(alice)groups=1000(alice),1003(RD)
# id jack
uid=1001(jack) gid=1001(jack)groups=1001(jack),1003(RD)
# id tom
uid=1002(tom) gid=1002(tom)groups=1002(tom),1003(RD)
# id RD
uid=1003(RD) gid=1003(RD)groups=1003(RD)
// 将用户添加到samba中
pdbedit -a username #username必须是linux中存在的,然后会提示设置密码,最好和原username密码一致
pdbeditd -L #可以查看samba中的用户,登录共享目录时,
如果在弹出登录账号和密码,只有加入到了samba用户中的用户才能登陆,
当然如果没有弹出登录账号和密码,也就是匿名登陆
//修改目录权限
# chgrp RD /smb/tech
# chgrp RD /smb/docs
# chown RD /smb/tech
# chown RD /smb/docs
# chmod 770 /smb/tech
# chmod 770 /smb/docs
修改完成后再检查一下文件夹权限
# ls /smb -l
//备份原有的配置文件在原目录下
# cd /etc/samba
# cp smb.conf smb.conf.origin
# vi/etc/samba/smb.conf
gg然后dG,全部删除
删除原有所有内容,添加如下内容:
[global]
workgroup=WORKGROUP
netbios name=centos7-lvvl
server string=Samba Server
#security=share
security=user
map to guest = Bad User
[SHAREDOCS]
path=/smb/docs
read only=yes
browseable=yes
guest ok=yes #访问此共享目录时匿名,不会弹出登陆信息,
[RDDOCS]
path = /smb/tech/
public = no
writable = yes
write list = @RD @RD:RD这个组的所有用户,指明哪些用户可以写入,默认是有读取功能
valid users = @RD #有效用户,只有在RD组中的才是有效用户,[RDDOCS]中的设置只有效用户有效,也只有有效用户才能登入
4.检查smb.conf的配置
一定要检查下,可用 testparm命令,smb启动不了,很可能是配置文件中写错了,一定记得检查
testparm--help
用法:[选项...]<配置文件>[主机名] [主机IP]
-s,--suppress提示符抑制提示输入
-v,--verbose显示默认选项过多
-l,--skip-逻辑检查跳过全球检查
- 显示,所有参数的显示参数,类型,可能的值
--parameter名= STRING限制testparm给定参数
--section名= STRING限制testparm来命名的节
帮助选项:
- ?,--help显示此帮助信息
--usage显示简要的使用消息
常见的samba选项:
-V,--version打印版本
常见的samba调试:
-d,--debuglevel= DEBUGLEVEL设置调试级别
常见的samba命令行配置:
在命令行--option=名称=值设置的smb.conf选项
4. 防火墙和SELinux
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld #开机禁用防火墙
关闭SELinux
vi /etc/selinux/config
改成SELINUX=disable
5. 重启服务
RedHat Liunx都是用service restart smb来重启的,在CentOS里面服务的操作都是用systemctl来完成了。
运行下面命令:
# systemctl restart smb
# systemctl reload smb
# systemctl status smb
最后这条命令是检查状态的。
Active:active(running)就可以
重要参数:
共享资源的基本设置 /etc/samba/smb.conf
security: share/user/server/domain
share:不需要用户名和密码,匿名登录
user:需用户名和密码
server: 用户名和密码在指定的一台samba上验证,验证错误,客户端会用user级别访问
domain:服务器加入window域环境,验证工作由windows域控制器负责。
ads:使用ads安全级别加入到windows域环境中,包含有domain级别中的所有功能,可以具备域控制器的功能。
security设为user时,samba服务器必须创建一些用户名和密码供客户端登录使用,这些帐号必须是linux系统中存在的用户,并且这些账号要加入到samba服务中,可用pdbedit - a添加linux中已有用户到samba中
1:pdbedit:管理samba 用户数据库的一个工具
pdbedit -a username 增加一个samba用户
pdbedit -x samba_user 删除用户
pdbedit -L 查看创建的samba用户
当用户登录时,其在共享文件夹里的权限是其所用帐号在samba所在linux中的权限
用户也可不用登录,如果共享目录中有设置guest ok = yes,就不会登陆,优先级比全局中更高
注意:
在新的版本中,比如centos7 , security = share 是禁用的。security=share is deprecated
解决方法:
[global]
security = user
map to guest = Bad User
不过,一但改成share,samba就启动不了,可能centos7有更改,最好不要改成share,
valid users: 指定了用户或组,就要登入samba用户账号
available 设置是启用共享资源
available = yes 启用
available = no 不启用
public: yes,默认是可匿名访问,
no,要登入samba用户账号,不公开,如果指定有效用户,除了指定的有效用户外,其它用户都无法访问
guest ok: 是否允许用户不使用账号和密码访问资源,默认不指明是匿名访问。
guest ok = yes,允许
guest ok = no,不允许,
注意,如果同时又指定有效用户,除了指定的有效用户外,其它用户都无法访问
comment 针对共享资源所做的说明文字,在win中,光标停留在共享文件夹上时,
会弹出文本框,上面显示comment的内容。默认值为空字符串,不设置不影响使用,
path 或共享的资源是目录,就指定该目录的位置
path = /tmp 共享/tmp目录
hosts allow 设置连接主机的地址
hosts allow = 192.168.0.1 server.abc.com 允许来自192.168.0.1或server.abc.com的主机访问path共享文件
hosts deny 设置禁止连接主机的地址
hosts deny = 192.168.0.1 server.abc.com 不允许来自192.168.0.1或server.abc.com的主机访问path共享文件
read only 设置共享文件是否只读,一般文件默认是可读,具体登入的samba账户对文件有没有可读权限,具体看文件对不同用户的权限
read only = yes 允许只读
read only = no 不仅仅只读,可读还可写
如果访问共享资源的用户,有写的权限,旦是此处又要求只读,些read only优先级更高
writable 设置是否允许写入
writable = yes 允许写入
writable = no 不允许写入
browseable 设置用户是否可看到地共享资源
browseable = yes 允许
browseable = no 不允许
win系统断开samba服务网络连接:
win客户端机器(开始->运行->输入cmd)在dos下输入命令net use * /delete /y
就可以断开所有网络用户的链接了。
如果登录的时候勾选了保存用户,就(开始->运行->输入control keymgr.dll,在弹出的对话框中选择你samba服务器的主机名删除即可。
实战:
6.1 向公众开放 Linux文件资源,来访者只有读权限。
[public Linux] #在vim下,[]内如果格式错误,颜色是白色,访问时会出错,格式不要出现特殊字符,像\/等
comment=public stuff
path = /
read only = yes
public = yes #公开,不弹出登入框
6.2 共享CD-ROM
修改smb.conf之前,先安装光驱,可执行下列命令:
mount /dev/sr0 /mnt/cdrom
然后定制samba,内容如下:
[cdrom]
path = /mnt/cdrom
ready only = yes
public= yes
6.3 为多个用户提供服务
[more man]
comment = userl’sstuff,user2’sstuff,user3’sstuff
path = /home/user1 (用户userl的主目录)
valid users = user1 user2 user3
public = no (除了user1,user2,user3外不向公众用户开放)
writable = yes (三用户对/home/user1中的文件有写权限)
printable = yes (允许打印) #如果找不到打印机,不会访问不了,内部可能先确定有无打印机,在弹出登入框
6.4 向公众用户开放/dev目录,浏览设备类型。
[dev]
comment = open and browse the /dev directory
path = /dev (路径为/dev)
ready only = yes (只读)
public = yes (公众共享)
二、SSH工具(SecureCRT工具不错)
ssh工具原理:
linux默认安装sshd服务(带d的一般都是守护进程),默认启动,监听端口22
上传
rz
下载
sz linux中文件全路径