附加篇 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的用户和密码
在这里插入图片描述

四、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属组的用户加入
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux UbuntuCentOS是两种不同的Linux操作系统。它们的区别在于: 1. 发行商:Ubuntu由Canonical Ltd.开发和维护,而CentOS由Red Hat公司开发和维护。 2. 目标用户:Ubuntu主要面向桌面用户和初学者,而CentOS主要面向服务器和企业用户。 3. 软件包管理:Ubuntu使用apt-get和dpkg作为软件包管理工具,而CentOS使用yum和rpm。 4. 更新周期:Ubuntu每6个月发布一个新版本,每个版本提供9个月的支持。CentOS每2年发布一个新版本,每个版本提供10年的支持。 5. 默认桌面环境:Ubuntu默认使用Unity桌面环境,而CentOS默认使用GNOME桌面环境。 总的来说,Ubuntu更适合桌面用户和初学者,而CentOS更适合服务器和企业用户。 ### 回答2: Linux是一个自由和开放源代码的操作系统内核,它于1991年由Linus Torvalds创建。Linux是一种Unix操作系统,它可以在PC、服务器、移动设备和其他嵌入式设备中运行。目前,有许多不同的Linux发行版,其中包括UbuntuCentOSUbuntu是一种基于Debian的Linux发行版,它由Canonical Ltd.开发。Ubuntu以易于使用和基础设施的强大功能而闻名,许多开发者和企业使用它来构建Web服务器和云平台。其桌面界面被认为是非常友好和易于使用的,并且有一个巨大的第三方软件库,使得安装和维护软件变得容易。 CentOS是以企业级应用为目标的Linux发行版,它基于Red Hat Enterprise Linux(RHEL)的代码库。虽然RHEL是一个商业版本,但CentOS是免费的且源代码也是公开的。它具有非常稳定和可靠的软件包,以及针对企业级应用的安全性和稳定性功能。它也可以作为Web服务器和云平台使用。 虽然UbuntuCentOS都是Linux发行版,但它们之间还是有一些区别。首先,它们的软件包管理系统不同:Ubuntu使用dpkg和apt-get,而CentOS使用yum。此外,Ubuntu有更快的版本发布周期并且更新更频繁,而CentOS更注重稳定性和安全性,因此更新周期更长。最后,Ubuntu更适合桌面环境和个人用户,而CentOS更适合企业级应用。 总的来说,选择Ubuntu还是CentOS取决于用户的需求和偏好。如果需要一个稳定的、安全的服务器,那么CentOS可能是更好的选择;如果需要一个易于使用和更新、大量可用软件的桌面环境,那么Ubuntu可能更适合。 ### 回答3: Linux操作系统是一种自由、开放源码的操作系统,许多发行版选择外壳以自己定致, 两种最流行的Linux发行版是UbuntuCentOS。虽然它们都是Linux,但它们之间还是有许多不同的地方。 首先,UbuntuCentOS的使用场景不同。Ubuntu通常用于桌面以及个人电脑使用,因为它具有一个易于使用的界面,能够适应用户的需求。而CentOS通常用于服务器环境中,因为它有较强的稳定性,在企业级应用中广泛使用。 其次,UbuntuCentOS的更新方式不同。Ubuntu是一个半年一次的版本更新,这意味着在每次更新时它会抛弃过时的软件包,选择新的,更新他们,这样保证每半年有最新的软件包和更新。而CentOS是基于Red Hat Enterprise Linux (RHEL) 的镜像,不同之处在于它们会更注重于稳定性而不是更新。这就使得CentOS适合作为服务器操作系统。 另外,UbuntuCentOS在支持软件包上面有所不同。 Ubuntu是基于Debian的,所以它使用了.deb包,并且在其上使用APT作为其软件包管理器,这使得软件包的管理非常方便。 而CentOS是基于Red Hat的,所以它使用了.rpm包,并且使用yum作为其软件包管理器。此外, CentOS也有自己的仓库,包含了许多企业级应用并保证了软件包的稳定性。 最后,UbuntuCentOS在用户社区方面有所不同。虽然两个操作系统都有用户社区的支持,但是Ubuntu的用户社区更加庞大,生态更加发达,因此可以更快地获得解答或解决方案。而CentOS的用户社区更加小众,但是他们中的大多数都是经验丰富的专业人员,可以提供更深入的技术支持。 总之,UbuntuCentOS都是优秀的操作系统,有各自不同的特点和适用场景,选择适合自己的操作系统,才能更好地满足你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值