Smaba服务器中/etc/samba/smb.conf文件详解:
Samba服务器实例练习题目:
设置Samba共享目录/software,允许jack和mary通过windows来读写权限;
1、根目录下创建/software
(1)否则会出现在验证通过后,进去了没有访问文件夹的权限的错误;
一般我们会将配置信息写在文件的末尾:
(1)、Netfilter/Iptables 防火墙:
在windows里cmd里输入linux的IP地址,或者主机名;
\例如:\192.168.9.75
注意:
1、一个用户对共享的文件具有写权限取决于:
(1)、samba是否授予写权限;
(2)、用户在linux系统中本身是否有写权限;【1,2的交集】
下面五条命令即可:
3、查看组和用户的权限信息;
4、关闭防火墙:
(1)、Netfilter/Iptables 防火墙:
----chcon命令:修改对象(文件)的安全上下文。比如:用户:角色:类型:安全级别。
5、配置好smb.conf,结果在/etc/samba/下找不到smbpasswd文件。
原因:samba启用了tdbsam验证。
解决:SMB.conf文件中注释掉 passdb backend = tdbsam 一行,
加上 smb passwd file = /etec/samba/smbpasswd
这样再建立用户就产生了smbpasswd文件了。
6、在linux查看Samba访问的客户端信息
1、错误解决方案:
解决方案:
2、登录后,没有出现验证过程,没有弹出窗口;
本地查看远程连接是否
最后Samba服务器的配置步骤总结:
安装好虚拟机以后,我们需要查看系统内是否有安装虚拟机:
1、检测samba有无安装
查看samba相关联的包
3、启动samba服务 :
5、samba配置
包括四个设置段:
[global] 设置全局环境选项
[homes] 设置用户宿主目录共享
[printers] 设置打印机共享
[sharefiles] 设置文件共享
6、实例:允许用户通过Windows客户端访问自己的宿主目录
(1)、安装Samba,不需对配置文件做修改,即可实现此功能,如果安装启用了SELinux,需要先执行:
“开始” - “运行” ,输入 \\Samba服务器地址
(5)、在linux查看Samba访问的客户端信息
Samba服务器实例练习题目:
设置Samba共享目录/software,允许jack和mary通过windows来读写权限;
1、根目录下创建/software
mkdir /software;
2、添加用户(因为samba你的用户必须是系统的用户):
useradd mery;
useradd Jack;
passwd mery;
passwd Jack;
3、如果安装了SELinux,这也是系统的一个防火墙,执行命令允许用户可访问系统目录;
(1)否则会出现在验证通过后,进去了没有访问文件夹的权限的错误;
#setsebool -P samba_enable_home_dirs on//
(2)如果想让其永久关闭我们可以在配置文件里永久的改变:
/etc/sellinux/config SELINUX-disable //改成配置文件;永久有效
(3) 也可以可以直接把一个目录让SELinux可以访问;
chcon -t samba_share_t /software //
4、vi /etc/samba/smb.conf //修改samba的配置文件;
一般我们会将配置信息写在文件的末尾:
[software] //共享名,不一定和路径名一样;
path= /software //共享目录 path只能共享一个文件路径;
valid users= Jack mary //指定用户 //如果写错,那么就是所有的用户都能访问,比如users 写成user。如果不写,那就是所有的samba用户都能看见;
writable= yes 权限
5、关闭防火墙:
(1)、Netfilter/Iptables 防火墙:
#iptables -F
或者:
service iptables stop;//如果不关闭,则会出现没有验证过程,不会弹出窗口的错误;
(2)、如果安装了SELinux,我们需要将某个目录设置为可访问:
SELinux #setsebool -P samba_enable_home_dirs on
/etc/sellinux/config SELINUX-disable //永久改变其权限;
6、给定samba用户一个验证密码
smbpasswd -a mery //给一个smbpasswd -a 的密码,这个用户是系统的用户的;现在加入到samba服务器中
smbpasswd -a jack
7、重启服务,有的不需要重启就可以。
/etc/rc.d/init.c/smb restart
或者:
service smb restart
有时候smb和nmb是分别启动的,那么这时候我们就需要分别对其进行启动;
/etc/rc.d/init.c/nmb restart
8、访问:用windows的CMD里输入linux的IP地址验证后访问,可以看见一个宿主文件,自己的,还有一个共享的文件夹;
在windows里cmd里输入linux的IP地址,或者主机名;
\例如:\192.168.9.75
出现验证对话框:
注意:
1、一个用户对共享的文件具有写权限取决于:
(1)、samba是否授予写权限;
(2)、用户在linux系统中本身是否有写权限;【1,2的交集】
下面五条命令即可:
groupadd softadmin //创建组
gpasswd -a Jack softadmin
gpasswd -a mery softadmin
chgrp softadmin /software //改变目录的所属组;
chmod g+w /software 改变组的权限;
2、测试语法错误:
testparm
然后回车就能看见自己的配置文件;这个很好用,可以用于检查;
3、查看组和用户的权限信息;
ls -ld /software
grep software /etc/grop //看一下这个组;
注:samba配置文件里的文件如果写错,就是等于没写;
4、关闭防火墙:
(1)、Netfilter/Iptables 防火墙:
#iptables -F
或者:service iptables stop;//检测端口,没有验证窗口的弹出过程;
(2)、不关闭,验证通过了没有访问权限;
SELinux #setsebool -P samba_enable_home_dirs on
如果忘记了策略名称,则查看一下;
getsebool -a |grep samba
(3)永久关闭SELinux的防火墙:修改配置文件
/etc/sellinux/config SELINUX-disable
(4)、我让samba可以使用该共享目录
chcon -t samba_share_t /software
//需要声明一下,可以直接把一个目录让SELinux可以访问;
----chcon命令:修改对象(文件)的安全上下文。比如:用户:角色:类型:安全级别。
5、配置好smb.conf,结果在/etc/samba/下找不到smbpasswd文件。
原因:samba启用了tdbsam验证。
解决:SMB.conf文件中注释掉 passdb backend = tdbsam 一行,
加上 smb passwd file = /etec/samba/smbpasswd
这样再建立用户就产生了smbpasswd文件了。
6、在linux查看Samba访问的客户端信息
smbstatus
查看日志:
ls /var/log/samba
1、错误解决方案:
[root@localhost etc]# smbclient //192.168.247.128/software -U jack
Password:
session setup failed: NT_STATUS_LOGON_FAILURE
通过分析发现可能是系统或者samba中某一处用用户引起的,正确的应该是samba和系统中同时有该用户!
解决方案:
[root@localhost etc]$ whereis smbpasswd
smbpasswd: /usr/bin/smbpasswd /usr/share/man/man8/smbpasswd.8.gz /usr/share/man/man5/smbpasswd.5.gz
[root@localhost etc]$ /usr/bin/smbpasswd -a jack
创建完samba密码后再连接就OK了!
[root@localhost etc]# smbclient //192.168.247.128/download -U jack
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \>
大公告成!
2、登录后,没有出现验证过程,没有弹出窗口;
service iptables stop;
3、否则会出现在验证通过后,进去了没有访问文件夹的权限的错误;
setsebool -P samba_enable_home_dirs on
4、windows如何切换用户:
本地查看远程连接是否
net use
再次登录:会话断开;
(1) net use * /delete /y 不用问我确认;
(2) net use * /del 最后再确认: y;
最后Samba服务器的配置步骤总结:
安装好虚拟机以后,我们需要查看系统内是否有安装虚拟机:
1、检测samba有无安装
rpm -q samba
如果没有安装,则会显示“no samba package”.
查看samba相关联的包
rpm -qa | grep samba
2、samba路径 : /etc/rc.d/init.d/smb
3、启动samba服务 :
/etc/rc.d/init.d/smb start
4、samba的两个守护进程: smbd(监听139TCP端口) 和 nmbd(137和138UDP端口)
5、samba配置
rpm -ql samba-common | grep smb.conf :查找smb.conf 配置文件
Samba配置文件应存放在:
/etc/samba/smb.conf
包括四个设置段:
[global] 设置全局环境选项
[homes] 设置用户宿主目录共享
[printers] 设置打印机共享
[sharefiles] 设置文件共享
6、实例:允许用户通过Windows客户端访问自己的宿主目录
(1)、安装Samba,不需对配置文件做修改,即可实现此功能,如果安装启用了SELinux,需要先执行:
setsebool -P samba_enable_home_dirs on
不知道启动那个可以查找:
getsebool -a | grep samba
(2)、设置用户Samba验证密码
smbpasswd -a 用户名
(3)、启动samba服务
/etc/rc.d/init.d/smb start
(4)、Windows客户端访问samba服务器共享资源:
“开始” - “运行” ,输入 \\Samba服务器地址
(5)、在linux查看Samba访问的客户端信息
smbstatus
查看日志:
ls /var/log/samba
7、本地查看远程连接是否
net use
本地关闭远程连接:
net use * /delete /y