附加篇 linux环境配置:ubuntu和centOS配置samba并映射windows网络磁盘

一、简介

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端

二、参数含义

Samba的主配置文件为/etc/samba/smb.conf

#==================Global Settings ===================
[global]
workgroup = WORKGROUP
说明:设定 Samba Server 所要加入的工作组或者域。

server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。

netbios name = smbserver
说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。

hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50

max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。

log file = /var/log/samba/log.%m
说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。

security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。

  1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
  2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。

passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2.tdbsam: 该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库 可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的 参数很多,我们列出几个主要的。
  pdbedit –a username:新建Samba账户。
  pdbedit –x username:删除Samba账户。
  pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
  pdbedit –Lv:列出Samba用户列表的详细信息。
  pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
  pdbedit –c “[]” –u username:恢复该Samba用户的账号。

encrypt passwords = yes/no
说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。

smb passwd file = /etc/samba/smbpasswd
说明:用来定义samba用户的密码文件。smbpasswd文件如果没有那就要手工新建。

username map = /etc/samba/smbusers
说明:用来定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。

guest account = nobody
说明:用来设置guest用户名。

共享参数:
#================== Share Definitions ==================
[共享名]
comment = 任意字符串
说明:comment是对该共享的描述,可以是任意字符串。

path = 共享目录路径
说 明:path用来指定共享目录的路径。共享目录为share,就写完整目录/home/share

browseable = yes/no
说明:browseable用来指定该共享是否可以浏览。

writable = yes/no
说明:writable用来指定该共享路径是否可写。

available = yes/no
说明:available用来指定该共享资源是否可用。

admin users = 该共享的管理者
说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
例如:admin users =david,sandy(多个用户中间用逗号隔开)。

valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users = david,@dave,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@组名”表示。)

invalid users = 禁止访问该共享的用户
说明:invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)

write list = 允许写入该共享的用户
说明:write list用来指定可以在该共享下写入文件的用户。
例如:write list = david,@dave

public = yes/no
说明:public用来指定该共享是否允许guest账户访问。

guest ok = yes/no
说明:意义同“public”。

Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。

将需要映射的路径的用户和属组必须和配置文件中的用户一致;

useradd twx  #创建用户
chmod -R 777 /home/share  #为share下所有的文件加上权限
chown -R twx:twx /home/share  #用share下的所有文件用户和属组改为twx

三、unbuntu安装并映射

1.安装

sudo apt-get install samb

2.修改配置文件:vi /etc/samba/smb.conf

[share]
comment = Share Folder require password
browseable = yes
path = /home/share      //Linux下共享文件夹的路径
valid users = root      //在windows下通过root账户登录
public = yes
writable = yes
available = yes

保存退出

3.添加用户到smb,也就是配置文件中valid users的用户,也必须是linux内的用户

sudo smbpasswd -a root //将sc添加到samba用户
sudo smbpasswd -e root //使能sc用户

查看samba服务器中已拥有哪些用户:

pdbedit -L

查看Linux中所有用户:

cat  /etc/passwd

查看Linux中所有组:

cat  /etc/group

4.重启smb

service smbd start
service smbd stop
service smbd restart
service smbd status

5.在windos界面映射网络磁盘,并可以使用
登录的账号为设置的smb的用户和密码
附加篇 linux环境配置:ubuntu和centOS配置samba并映射windows网络磁盘_第1张图片

四、centOS安装并完成映射

1.yum安装smb

yum install samba samba-client samba-swat

2.关闭防火墙及关闭防火墙开机自启

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

3.永久关闭SeLinux,需要重启机器

修改配置文件/etc/selinux/config,将SELINU置为disabled
重启后,查看SeLinux状态

[root@localhost ~]# sestatus
SELinux status:                 disabled

4.修改配置文件/etc/samba/smb.conf

[share]
comment = Share Folder require password
browseable = yes
path = /home/share      //Linux下共享文件夹的路径
valid users = root      //在windows下通过root账户登录
public = yes
writable = yes
available = yes

5.添加用户到smb

sudo smbpasswd -a root //将sc添加到samba用户
sudo smbpasswd -e root //使能sc用户

6.重启smb

systemctl start smb
systemctl stop smb
systemctl restartsmb
systemctl status smb
systemctl enable smb #设置开机自启动

7.映射到windos
映射方法与unbuntu一致

例1 共享文件夹配置:

#======================= Global Settings =====================================

[global]                                                  //该设置与Samba服务整体运行环境有关,它的设置项目针对所有共享资源       

# ----------------------- Network Related Options -------------------------
        workgroup = WORKGROUP                             //定义工作组,也就是windows中的工作组概念
        server string = WZQ Samba Server Version %v     //定义Samba服务器的简要说明
        netbios name = WZQSamba                         //定义windows中显示出来的计算机名称

# --------------------------- Logging Options -----------------------------

        log file = /var/log/samba/log.%m                  //定义Samba用户的日志文件,%m代表客户端主机名
                                                          //Samba服务器会在指定的目录中为每个登陆主机建立不同的日志文件
# ----------------------- Standalone Server Options ------------------------
        security = user 
     map to guest = Bad User                                 //共享级别,用户不需要账号和密码即可访问

#============================ Share Definitions ==============================

[public]                                                  //设置针对的是共享目录个别的设置,只对当前的共享资源起作用
        comment = Public Stuff                            //对共享目录的说明文件,自己可以定义说明信息
        path = /share                                     //用来指定共享的目录,必选项
        public = yes                                      //所有人可查看,等效于guest ok = yes

例2 特有的用户才可以登入

#======================= Global Settings =====================================

[global]

# ----------------------- Network Related Options -------------------------

        workgroup = WORKGROUP
        server string = David Samba Server Version %v
        netbios name = DavidSamba

# --------------------------- Logging Options -----------------------------
        log file = /var/log/samba/log.%m

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)

        security = user                                   //用户级别,由提供服务的Samba服务器负责检查账户和密码

#============================ Share Definitions ==============================


[public]
        comment = Public Stuff
        path = /share
        public = yes

[ts]                                                      //ts 组目录,只允许ts组成员访问
        comment = TS
        path = /ts
        valid users = @ts   #将ts属组的用户加入

你可能感兴趣的:(系统及环境,linux)