Samba安装与配置

 

Windows文件共享

Windows主机之间使用SMB/CIFS网络协议实现文件和打印资源的共享

Windows无法与UNIX/Linux主机之间实现资源共享

Samba服务器

Samba服务器在UNIX系统中实现了SMB/CIFS协议

通过Samba服务可以实现UNIX/Linux主机与Windows主机之间的资源互访

 

特点:

必须是系统用户,但使用独立密码访问

默认安装samba并添加用户(smbpasswd -a 用户名),即可访问自己的宿主目录(可读写)。

工具/原料

 

  • linux

  • samba

方法/步骤

 

  1.  

    查看是否安装了samba

     

    rpm -q samba

    查到samba-3.0.33-3.28.el5说明已安装

     

    默认安装了客户端:

    rpm -qa | grep samba

    samba-client-3.0.33-3.28.el5

    samba-common-3.0.33-3.28.el5

     

  2.  

    安装

    yum -y install samba

     

     

    启动服务

    /etc/rc.d/init.d/smb start

    service smb start

     

     

    两个进程:

    smbd   ---> tcp 139  用户验证和文件共享

    nmbd   --->udp 137  138  浏览共享和计算机名解析

     

    ps -le | grep smbd

    ps -le | grep nmbd

  3.  

    一 用户管理

    1.首先必须是系统用户,添加Linux系统用户

    useradd 用户名   #添加用户

    passwd 用户名   #设置密码

     

     

    2.然后设置samba的密码(samba自带的用户管理工具)

    smbpasswd -a 用户名  #加用户

    smbpasswd 用户名  #改smb密码

     

    root可以使用管理命令(系统自动的samba用户数据库管理工具)

    pdbedit -a username:新建Samba账户。

    pdbedit -x username:删除Samba账户。

    pdbedit -L:列出Samba用户列表,读取/etc/samba/passdb.tdb数据库文件。

    pdbedit -Lv:列出Samba用户列表的详细信息。

  4.  

    二.建立samba连接

    为了安全,不要把root设为samba用户

     

    重启服务

    service smb restart

     

    Windows中如何连接:

     

    \\服务器地址

    \\192.168.88.88

    可以映射网络驱动器

     

    net use

    net use * /del /y

    net use \\192.168.88.88 "password" /user:your_user

     

    查看有哪些客户端连接

    smbstatus

     

    查看日志

    cat /var/log/samba

     

     

    ------------------------------

    如果不能访问:

    防火墙

    iptables -L 查看

    iptables -F 清空防火墙规则,拆除防火墙

     

    即时生效,重启后复原 

    service iptables stop

     

    永久性生效,重启后不会复原

    chkconfig iptables off 

     

    SELinux

    允许访问

    setsebool -P samba_enable_home_dirs on

    或完全禁用SELinux:

    vi /etc/selinux/config 改为SELINUX=disabled

  5.  

    三、配置文件

    如果查找配置文件在哪里

    rpm -ql samba-common | grep smb.conf

     

     

    编辑配置文件

    vi /etc/samba/smb.conf

     

    [global] 全局环境选项

    workgroup 工作组或域

    server string 描述信息

    security 安全模式,有如下选项

    share 不验证权限,直接共享

    user 缺省,推荐,由Linux Samba服务器做验证

    server 第三方主机验证

    domain 第三方主机验证(必须是Windows 域控制器)

    hosts allow 哪些主机可以访问(如果没有配置,全部主机都可以)

    如果是ip直接写上,如果是ip段只写网段部份,多个用空格分隔 如: 192.168.1. 192.168.2.

    哪些主机不允许访问,hosts deny 一般不和hosts allow同时使用

    log file 日志文件(最好启用日志)

     

    [homes]  只要有这个配置段,用户默认就可以通过自己的用户名,访问自己的宿主目录

    comment  描述

    browseable=no 无权限访问的目录,不显示出来

    writable=yes 可写

  6.  

    四、samba实例

    需求:配置/software目录的共享,允许user1 user2两个用户完全访问

     

    创建目录

    mkdir /software

     

    添加用户

    useradd user1

    passwd user1

    useradd user2

    passwd user2

    添加samba密码

    pdbedit -a user1

    pdbedit -a user2

     

    编辑配置文件

    vi /etc/samba/smb.conf

    建议写在配置文件尾

    [software]   共享名,不能有特殊符号,一般是字母或数字组成

    path = /software  共享目录,只能是一个目录

    valid users = user1 user2 多个用空格分开。如果没配置此项,所有用户都可以访问

    writable = yes    写权限 yes  no

     

    Samba服务器配置检测命令

    testparm

    如果配置文件写错,例valid users=user1 写成了valid user=user1 将提示

     

    重启服务

    /etc/rc.d/init.d/smb restart

     

    设置目录权限

     

    直接改为777,但这样不安全

    chmod -R 777 /software

     

    创建一个用户组,改变目录所属组,对组授权,然后从新连接就可以了

    groupadd softadmin

    usermod -aG softadmin user1

    usermod -aG softadmin user2

    chgrp softadmin /software

    chmod g+w /software

     

    推荐用acl

    setfacl -R  -m u:user1:rwx /software #让user1有rwx权限 (已有目录或文件)

    setfacl -R  -m d:u:user1:rwx /software #让以后新创建的文件或目录,user1也有rwx权限

    setfacl -R  -m u:user2:rwx /software

    setfacl -R  -m d:u:user2:rwx /software

     

    windows 下,重新连接

    net use * /del /y

    net use \\192.168.88.88 "password" /user:your_user

     

     

     

    提供一个共享目录,所有有户都能使用,却不能删除别人的文件

    [test]

    path = /test

    wrieable=yes

    然后,设置目录为  chmod 1777 /test

  7. 7

    五、扩展

    Linux之间使用samba

    问题:如何在linux中使用SAMBA服务器的共享目录?

    解答:mount  //192.168.88.88/software  /mnt/software  -o username=your_user

    >输入密码

     

©著作权归作者所有:来自51CTO博客作者magicm55的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 身份验证和权限管理---Openshift3.9学习系列第三篇
  2. Oracle的SYS用户登录报权限不足(ORA-01031: insufficient privile
  3. Oracle 定义者权限与调用者权限(AUTHID CURRENT_USER)
  4. 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtilit
  5. OpenShift 4的身份认证 | 让我们重新认识OpenShift系列2
  6. Shell编程案例:统计指定目录下指定文件大小的个数及总和
  7. 超级详细|Linux系统下从0到1的玩法大全
  8. 从0实现基于Linux socket聊天室-实现聊天室的公聊、私聊功能-4
  9. 掌握 Linux 用户组

随机推荐

  1. 【第824期】小公司的一年,一起看看小公司
  2. 【第786期】深入了解 JavaScript 中的 fo
  3. 早读君有约
  4. 【第829期】你不懂JS:ES6与未来 组织(上)
  5. Android(安卓)NotificationManager 和Not
  6. 学习Linux的第8天
  7. 【第846期】你不懂JS:异步流程控制
  8. 坚持写作快两年了,有些私藏工具跟你们分享
  9. 【同说】机械转行前端,半年零基础自学的心
  10. RocketMQ 源码分析 —— Message 存储