------------samba--------------
--smb(Server Message Block))--IBM注册
提供了四种服务
1.用户验证和授权
2.文件和打印机共享
3.域名解析
4.浏览
*****************************************************************************
配置好之后,如果客户端访问不了smb服务器,把防火墙禁用了,就可以了。
*****************************************************************************
--------------------安装-----------------
yum -y install samba (samba-client和samba-common默认已经安装)
(查看文件是安装哪个包时产生的 rpm -qf /etc/samba/smb.conf)
samba服务器随着服务器的启动而自启动需要下列命令
systemctl enable smb
systemctl start smb
主配置文件 /etc/samba/smb.conf
/etc/samba/lmhosts --名称解析
首先创建一个共享文件夹 jinni
chmod -R 777 jinni
------------ smb.conf----------------------
注:smb受selinux管制!!!如果上传的文件看不到,有可能是selinux挡住了,关闭即可。
vim /etc/sysconfig/selinux(配置文件修改权限)需重启系统
1.警告模式 setenforce 0 (permissive) 2.强制模式 setenforce 1 (enforcing) 3.关闭模式 disabled
getenforce selinux 查看selinux状态
setsebool -P samba_enable_home_dirs=1(如果关掉selinux就不用此命令了)
chcon -t samba_share_t /jinni(修改共享目录selinux类型属性)
securetty = user/share
---认证级别--一共五个!
share: 不需要做身份验证
user: 该服务需要做身份验证,认证来自于本机
domain/server: 来自于网络中的另一台计算机
ads: 认证来自微软的活动目录
-为smb添加用户(用户必须是本地帐户)
smbpasswd -a 用户名 #添加一个samba用户
smbpasswd -d 用户名 #禁用一个samba用户
smbpasswd -e 用户名 #恢复一个samba用户
smbpasswd -x 用户名 #删除一个samba用户
useradd user1/user2
smbpasswd -a user1
smbpasswd -a user2
修改smb用户密码
smbpasswd smbname
查看samba服务器中已拥有哪些用户
pdbedit -L
user1----smb用户密码--
smbclient -L //192.168.1.1 --使用匿名身份浏览
smbclient -L //192.168.1.1 -U user1 --(用户访问)
smbclient //192.168.1.1/RHCE --访问
如果想要查询samba服务器中现有哪些用户,可以使用net命令
net rpc user -S iscas
net rpc user -w workgroup
***************************************************************
配置文件 vim smb.conf
[haha] --共享的名称
path = /jinni(需要共享的目录的路径)
comment = 注释
browseable = yes --所有用户都可以浏览
browseable = no --所有用户都不可以浏览
public = no --匿名不允许访问,smb用户允许访问。 用来指定该共享是否允许guest账户访问。
public = yes --匿名和smb用户都允许访问
writable = yes --所有用户都可以写
writable = no --所有用户都不可以写
write list = user1 --允许写入该共享的用户,如果某个用户同时位于"read list"和"write list"配置中,以后者为准。
read list = user2
hosts allow = 192.168.1.253/255.255.255.0 (允许某个域访问)
hosts deny = 192.168.1.0/255.255.255.0 (拒绝某个域访问)
valid users = harry, user4, user5(允许访问该共享的用户,如果此配置为空,则任何用户均可访问samba服务器)
invalid users = user1, user2(禁止访问该共享的用户)
admin list = jinguanhua 用来指定该共享的管理员(对该共享具有完全控制权限)
(writeable与read only 配置变量的意义完全相反)
read only = no 设定该共享服务是否为只读
为了便于不同的windows用户,以同一用户身份与权限访问共享资源时,需要增加“username map”配置变量,定义一个用户名映射文件。
username map = /etc/samba/smbusers
还需要修改配置变量中定义的/etc/samba/smbusers文件,其中包含必要的用户名映射关系。
例如:
为了使windows2000系统中的administrator与windowsXP系统中的admin用户能够以jinni用户的身份访问samba服务器,可在smbusers文件中增加下列映射关系:
jinni = administrator admin
如果一个账号需要有其他同级文件夹的权限,除了修改write list,valid users,还需要配置文件夹权限。
设置用户yunwei有访问文件夹jinni和jinni下的子目录的rx权限
setfacl -R -m u:yunwei:rx jinni
挂载
mount -t cifs //IP/RHCE /yinhe -o username=smbuser1%123(把共享文件夹RHCE挂载到本地文件夹yinhe)
开机启动 vim /etc/fstab
//IP/RHCE /yinhe cifs defaults,username=smbuser1%123 0 0
testparm /etc/samba/smb.cono station1.example.com 192.168.1.1
----测试某一台计算机是否有权限访问
*************************************************************
当在命令提示窗口输入net use命令时,会显示本机缓存的共享登录信息,如果你想切换用户访问其他文件夹,则可以删除那条缓存的记录即可。
net use * /delete
net use caiwu /delete
访问Samba共享的文件很慢很慢的问题
是因为network 和 hosts文件中的主机名不一样, 将hosts文件中的主机名改成和network中的主机名一样即可。
vim /etc/sysconfig/network vim /etc/hosts
在公司经常有员工误删除文件或者文件夹的情况。如何恢复被删除的共享文件或者文件夹???
可以通过smb.conf配置文件,给每个共享文件夹添加回收站配置!
vim /etc/samba/smb.conf
recycle:repository = /home/caiwu/.deleted
recycle:keeptree = Yes #指定是否按删除时的目录结构存放
recycle:versions = Yes #指定是否区覆盖同名的文件,yes是不覆盖
recycle:maxsixe = 0 #指定回收站目录的大小,0是不限制
recycle:exclude = *.tmp|*.mp3 #不放入回收站的文件类型
recycle:noversions = *.doc #指定覆盖同名文件的文件类型
#####recycle:repository = /home/caiwu/.deleted/%U #指定该共享文件夹的回收站目录 %U是按登录的用户名分开存放#####
#####禁止上传的文件veto files = /*.mp3/*.mp4/*.rmvb/*.wma/*.exe/*.bat/*.dll/*.avi/*.rar#######
注意事项:
1.回收站文件夹的用户和用户组设置, 权限设置要和共享文件夹的设置是一样的, 如果不一致被删除的文件是无法保存到回收站文件夹
2.如果maxsize设置为0, 那么回收站的文件需要管理员手工去删除. 当然, 可以将删除文件的任务交给计划任务去完成,如:
vim /etc/crontab
30 8 * * * root find /samba/deleted/ -mtime +30 -exec rm -rf {} \;
上面的设置就是每天8:30 删除回收站内大于30天的文件
3.每个共享文件夹要单独设置一个回收站文件, 避免同名文件覆盖,同时也方便管理和查找.