RedHat系统下Samba服务器配置详解及具体应用实例

Smaba服务器中/etc/samba/smb.conf文件详解:
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

出现验证对话框:

RedHat系统下Samba服务器配置详解及具体应用实例_第1张图片

RedHat系统下Samba服务器配置详解及具体应用实例_第2张图片


注意:
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


你可能感兴趣的:(Linux,基础)