如何在linux上安装配置samba服务器
1、首先需要登入安装了Linux系统的计算机,安装Samba。Fedora发行版一般使用yum工具安装Samba服务器,可以使用“rpm -q samba”查询Samba服务器是否已经安装,当然,也可以直接使用“yum install samba”安装Samba服务器。如果Samba已经安装,yum会给出提示,否则按照步骤,输入“y”就可以直接下载安装Samba服务器了。2、安装完成之后,需要查看一下Samba是否已经加入到自启动服务。使用“/sbin/chkconfig | grep smb”和“/sbin/chkconfig | grep nmb”命令可以查看smb和nmb是否加入到系统服务。(SMB是Samba共享服务,nmb是NetBIOS服务,为配合Windows使用,他们两个服务都要加入到系统服务中)。然后再使用“/sbin/service smb status”和“/sbin/service nmb status”查看服务是否已经启用。
3、接下来就要配置samba服务器了。编辑修改“/etc/samba/smb.conf”,设置共享和认证参数。如图就是我在用的Samba用户共享典型配置文件。编辑修改完成之后,可以使用“testparm /etc/samba/smb.conf”验证配置文件的有效性,以免因配置文件错误而导致Samba服务无法启动。
4、验证OK的话,接下来就是添加Samba共享用户了,使用“/usr/bin/smbpasswd -a 用户名称”的方式添加Samba共享用户,并为每个用户设置Samba共享认证的密码。
5、到这里基本上Samba服务器配置就完成了,如果上述步骤中smb和nmb服务没有自动添加到系统服务中,可以使用“/sbin/chkconfig --level 2345 smb on”和“/sbin/chkconfig --level 2345 nmb on”将其加入到系统服务中,其中2345是Linux的运行级别,一般都不会超出这几个运行级别。然后我们就可以使用“/sbin/service smb restart”和“/sbin/service nmb restart”重启服务了。
6、重启完成之后,Windows就可以访问用户共享了。在Windows资源管理器输入“\\\\共享IP地址\\共享用户”,就可以访问用户自己目录下的全部文件了。
7、为了测试共享权限,我们进入用户共享目录,尝试在Windows资源管理器中创建一个“test”目录。
8、回到Linux的用户目录,我们就可以看到,Windows和Linux查看到的用户共享目录是一致的。(你可能觉得看到的文件和目录说不一致,这是因为我的Windows设置了显示隐藏文件和文件夹的缘故。)
如何配置samba服务器
1、安装有关Samba的RPM包(samba、samba-common、samba-client)
2、创建Samba用户
3、修改配置文件
4、重启samba服务
5、设置目录访问权限
6、测试
具体步骤如下:
1、安装RPM包(缺省情况下RHEL5安装了samba的相关软件包,可以用如下命令查看)
[root@localhost ~]#rpm -qa | grep sambasamba -----samba服务器程序的所有文件
samba-common -----提供了Samba服务器和客户机中都必须使用的公共文件
samba-client -----提供了Samba客户机的所有文件
samba-swat -----以Web界面的形式提供了对Samba服务器的管理功能
2、创建samba用户
[root@localhost ~]#smbpasswd -a user1 (“-a”是创建samba用户,“-x”是删 [root@localhost ~]#smbpasswd -a user2 除samba用户,“-d”是禁用samba用 [root@localhost ~]#smbpasswd -a user3 户帐号,“-e”是启用samba用户帐号)3、修改配置文件
samba配置文件的位置:/etc/samba/smb.conf
[root@localhost ~]#vim /etc/samba/smb.confVi大开配置文件后,首先介绍一下Samba服务器的安全级别,如图所示:系统默认设置“user”
Samba服务器的安全级别分为5种,分别是user、share、server、domain和ads。在设置不同的级别时,samba服务器还会使用口令服务器和加密口令。
1、user -----客户端访问服务器时需要输入用户名和密码,通过验证后,才能使用服务器的共享资源。此级别使用加密的方式传送密码。
2、share -----客户端连接服务器时不需要输入用户名和密码
3、server -----客户端在访问时同样需要输入用户名和密码,但是,密码验证需要密码验证服务器来负责。
4、domain -----采用域控制器对用户进行身份验证
5、ads -----若samba服务器加入到Windows活动目录中,则使用ads安全级别,ads安全级别也必须指定口令服务器
共享目录的配置
[homes] -----samba用户的宿主目录comment = Home Directories -----设置共享的说明信息
browseable = no -----目录浏览权限
writable = yes -----用户对共享目录可写
这个共享目录只有用户本身可以使用,默认情况下,用户主目录位于/home目录下,每个Linux用户有一个以用户名命名的子目录。
以下是共享打印机的设置:
[printers] -----共享打印机comment = All Printers -----设置共享的说明信息
path = /var/spool/samba -----指定共享目录的路径
browseable = no -----目录浏览权限
guest ok = no -----允许来宾访问
writable = no -----用户对共享目录可写
printable = yes -----可以打印
以上是系统默认设置
添加自定义的共享目录:( user1对/ASUS有所有权,user2拥有只读权限,其他用户不能访问;public共享目录允许所有用户访问及上传文件)
[ASUS]comment = user1 Directories -----设置共享的说明信息
browseable = yes -----所有samba用户都可以看到该目录
writable = yes -----用户对共享目录可写
path = /ASUS -----指定共享目录的路径
[public]comment = all user Directories -----设置共享的说明信息
browseable = yes -----所有samba用户都可以看到该目录
writable = yes -----用户对共享目录可写
path = /public -----指定共享目录的路径
guest ok = yes -----允许来宾访问
4、修改完配置文件后需要重启samba服务
[root@localhost ~]#service smb restartSamba服务器包括两个服务程序
2 smbd
? smbd服务程序为客户机提供了服务器中共享资源的访问
2 nmbd
? nmbd服务程序提供了NetBIOS主机名称的解析,为Windows网络中域或者工作组内的主机进行主机名称的解析
5、设置目录权限
[root@localhost ~]#mkdir /ASUS ------创建要共享目录 [root@localhost ~]#mkdir /public ------创建要共享的目录 [root@localhost ~]#chmod 750 /ASUS ------修改/ASUS权限(属主拥有所有权,属组只读,其它用户不能访问)
[root@localhost ~]#chown user1 /ASUS ------将/ASUS的属主改为user1 [root@localhost ~]#groupadd ASUS ------添加ASUS组 [root@localhost ~]#usermod –G ASUS user1 ------将user1加入到ASUS组 [root@localhost ~]#usermod –G ASUS user2 ------将user2加入到ASUS组 [root@localhost ~]#chgrp ASUS /ASUS ------将/ASUS的属组改为ASUS
[root@localhost ~]#chmod 777 /public ------给所有用户分配完全控制权限
配置完成后,还要检查/etc/service文件中以“netbios”开头的记录,正确的文件
记录如下所示,如果这些记录前有#或没有这些记录,应手工添加,否则用户无
法访问Linux服务器上的共享资源
6、测试
找一台内网windows客户端,打开“网上邻居 ”,输入samba服务器的IP点击
“搜索”
如图所示:已经搜索到
双击打开,如图所示:提示输入用户名和密码,先来输入user1的用户名和密码
作测试。
登录成功,
打开user1的宿主目录,此目录user1是拥有所有权限的,创建一个目录测试一
下,如图所示:可以创建
Public目录是允许任何用户上传、下载及删除文件,如图所示
User1对ASUS目录拥有完全控制权限,所以user1可以在此目录下作任何操作
切换另一个用户测试,由于我们在同一台计算机上作测试,测试之前首先要清楚
计算机上的缓存,如图所示:打开 “命令提示符模式”,“net use /del *”是清
除计算机上缓存
重新打开网上邻居,找到Samba 服务器的共享资源,以user2的身份登录
以下几幅图片可以看到,user2对ASUS目录拥有只读权限,对public、user2目
录拥有所有权
再切换一个用户登录,记得要清除缓存哦,输入user3的用户名及密码
如图所示:user3无法访问ASUS目录
User3只对user3和public目录拥有所有权
samba安装、配置、排错
零:场景:
| 共享名 | 路径 | 权限 |
| SHAREDOC | /smb/docs | 所有人员包括来宾均可以访问 |
| RDDOCS | /smb/tech | 仅允许特定组的用户进行读写访问 |
特定组的组名为RD,目前的Alice、Jack、Tom三个人
一、 安装Samba
//或者使用rpm安装
//查看安装版本信息
Tips:也之前的SAMBA 3有一个重大的变化是:security不再支持share
WARNING: Ignoring invalid value \'share\' forparameter \'security\'.
二、 配置Samba服务器
1.创建共享目录(假设共享/smb目录下的文件)
2.配置内核参数
3.配置smb.conf文件
1)备份原配置文件:
2)删除原有所有内容,添加如下内容:
[global]
workgroup=BIGCLOUD
netbios name=ZZSRV2
server string=Samba Server
security=user
map to guest = Bad User
[SHAREDOCS]
path=/smb/docs
readonly=yes
browseable=yes
guest ok=yes
[RDDOCS]
path = /smb/tech/
public = no
writable = yes
write list = @RD
validusers = @RD
三、 创建用户并分配权限
1.创建操作系统用户
2.修改用户的组
uid=1000(alice) gid=1000(alice)groups=1000(alice),1003(RD)
3.创建SAMBA用户
4.修改目录权限
5.查看服务状态
drwxrwx--- 2 RD RD 4096 Aug 11 17:08 /smb/tech/
smb.service - Samba SMB Daemon
Loaded: loaded(/usr/lib/systemd/system/smb.service; enabled)
Active: active (running) since Tue2014-08-12 11:38:29 CST; 14s ago
Main PID: 16807 (smbd)
Status: \"smbd: ready to serveconnections...\"
CGroup: /system.slice/smb.service
16807 /usr/sbin/smbd
16808 /usr/sbin/smbd
systemd[1]:Starting Samba SMB Daemon...
smbd[16807]:[2014/08/12 11:38:29.255341, 0]../lib/util/become_daemon.c:136(daemon_ready)
systemd[1]:Started Samba SMB Daemon.
smbd[16808]:STATUS=daemon \'smbd\' finished starting up and ready to serve connectionsfailedto retrieve print...CCESSFUL
Hint:Some lines were ellipsized, use -l to show in full.
四、 测试连通性
1.Linux上测试
Domain=[BIGCLOUD] OS=[Unix] Server=[Samba 4.1.1]
Domain=[BIGCLOUD] OS=[Unix] Server=[Samba 4.1.1]
2.Windows上测试
1)使用虚拟机(如VMware)安装Linux(如Ubuntu)系统时,为方便Windows和Linux文件互通方便(主要是Windows下访问Linux文件了),一般都会在LINUX下安装Samba服务器。
在XP下,可以通过[//192.168.3.104]()(Linux系统IP)进行访问其共享文件,但在WIN7或VISTA下却不行,因为Samba只支持NTLM认证,而WIN7或VISTA则采用NTLMv2认证,因此必须经过一些设置才行,具体设置如下:
开始-运行-secpol.msc-本地策略-安全选项-网络安全:LAN管理器身份验证级别-发送 LM 和 NTLMv2 ,如果已协商,则使用NTLMv2 (会话安全 )-完成设置。(如下图所示)
这时,再使用[//192.168.3.104]()(Linux系统IP)就可以访问Linux共享文件了 _
2)C:netuse * /del
您有以下的远程连接:
继续运行会取消连接。
您想继续此操作吗? (Y/N) [N]: y
命令成功完成。
C:netuse \\192.168.188.12 P@ssw0rd /U:alice
命令成功完成。
3)打开资源管理器进行写入测试
4)如果windows下登录samba服务器后无法访问linux下共享目录,提示没有权限。则检查:
a、确保linux下防火墙关闭或者是开放共享目录权限;
b、确保samba服务器配置文件smb.conf设置没有问题,可网上查阅资料看配置办法 ;
c、确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smb.conf中允许了这项操作。
大家的云服务器能配置好Samba么
1. 安装iptables防火墙
安装iptables和iptables-services
yum install iptables
yum install iptables-services
*关闭centos自带的防火墙
systemctl stop firewalld
systemctl mask firewalld
2. 清空防火墙默认规则和自定义规则
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
3. 防火墙开放samba服务所需端口和常用端口
vi /etc/sysconfig/iptables
添加以下内容到iptables中
-A INPUT -m state –state NEW -m tcp -p tcp –dport 139 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 445 -j ACCEPT
-A INPUT -m state –state NEW -m udp -p udp –dport 137 -j ACCEPT
-A INPUT -m state –state NEW -m udp -p udp –dport 138 -j ACCEPT
-A INPUT -p tcp –dport 22 -j ACCEPT
-A INPUT -p tcp –dport 21 -j ACCEPT
-A INPUT -p tcp –dport 80 -j ACCEPT
-A INPUT -p tcp –dport 443 -j ACCEPT
-A INPUT -p icmp –icmp-type 8 -j ACCEPT
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-P OUTPUT ACCEPT
4. 开启iptables防火墙
注册iptables服务
systemctl enable iptables.service
开启服务
systemctl start iptables.service
查看状态
systemctl status iptables.service
5. 安装和配置samba
yum install samba
设置samba开机启动
chkconfig smb on
vim /etc/samba/smb.conf,粘贴复制以下内容
[global]unix charset = gbk
dos charset = gbk
workgroup = img
netbios name = img
server string = uc
security = user
smb ports = 1315 1314 #很重要,貌似阿里云屏蔽了samba默认的端口
comment = uc
path=/home/xuhaoguang/work
create mask = 0664
directory mask = 0775
writable = yes
valid users = work #登录samba服务的账号
browseable = yes
给samba添加work账号:
smbpasswd -a work
启动samba:
service smb restart
6. 客户端连接samba服务
mac:
command +k ; smb://ip_address:1314
windows:
运行输入:\\Samba服务器的ip
我是按照上面的步骤完成阿里云服务器上的samba配置的,仅供大家参考!
如何搭建samba服务器
samba安装和启动
samba的源码安装采用最新版本samba-4.1.14,官网下载。安装过程如下:
$ sudo mkdir /usr/local/samba-4.1.14
$ ./configure --prefix=/usr/local/samba-4.1.14
...
Checking for program xsltproc : not found
Checking for program python : /usr/bin/python
Checking for program python : /usr/bin/python
Checking for program python : /usr/bin/python
Checking for Python version = 2.5.0 : ok 2.7.6
Checking for library python2.7 : not found
Checking for library python2.7 : yes
Checking for program python2.7-config : not found
Checking for program python-config-2.7 : not found
Checking
for custom code
: Could not find the python development headers
/home/anonymalias/Downloads/samba-4.1.14/wscript:100:
error: the configuration failed (see
\'/home/anonymalias/Downloads/samba-4.1.14/bin/config.log\')
上面错误的原因是samba必须依赖python,执行
$ sudo apt-get install python-dev
后面就是make sudo make install,安装ok后,安装目录结构如下:
/usr/local/samba-4.1.14$ ls
bin etc include lib private sbin share va
将源码文件下默认的conf文件拷贝到安装目录下的etc目录中
/usr/local/samba-4.1.14$ cp /home/anonymalias/Downloads/samba-4.1.14/examples/smb.conf.default etc/smb.conf
修改smb.conf中配置
global段添加如下字段
[global]...
netbios name = ubuntu
共享资源字段采用默认配置
[homes]comment = Home Directories
browseable = no
writable = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]comment = All Printers
path = /usr/spool/samba
browseable = no
# Set public = yes to allow user \'guest account\' to print
guest ok = no
writable = no
printable = yes
添加用户名为Ubuntu的账户,
/usr/local/samba-4.1.14$ sudo bin/smbpasswd -a ubuntu
New SMB password:
Retype new SMB password:
samba服务器的用户是依赖于linux的用户,只能添加linux中已存在的用户,否则会出现如下错误:
/usr/local/samba-4.1.14$ sudo bin/smbpasswd -a user1
New SMB password:
Retype new SMB password:
Failed to add entry for user user1.
启动samba 服务
/usr/local/samba-4.1.14$ sudo sbin/nmbd
/usr/local/samba-4.1.14$ sudo sbin/smbd
在Windwos文件管理器或直接win+R,输入server ip,可以看到如下界面:
怎么在LINUX下配置SAMBA服务器
在Linux平台,以二进制程序包和源代码两种方式安装samba服务器,并整理相关配置文件,并给出基本应用操作。
步骤:
1.机器上已经存在的samba服务,版本为3.0.21b,这是通过使用rpm命令得到的。如下:
# rpm –qa | grep samba
Samba-client-3.0.21b-2
Samba-common-3.0.21b-2
2.将上面的samba-client-3.0.21b-2卸载。使用命令:rpm –e samba-client-3.0.21b-2。
3.用rpm –e samba-common-3.0.21b-2来卸载common,因为依赖关系,不成功。
4.下载二进制程序包:
samba-common-3.0.23c-4.i386.rpm,
samba-client-3.0.23c-4.i386.rpm,
samba-doc-3.0.23c-4.i386.rpm,
samba -3.0.23c-4.i386.rpm。
5.安装这些程序包。分别使用命令:
rpm –Uvh samba-common-3.0.23c-4.i386.rpm
rpm –ivh samba-client-3.0.23c-4.i386.rpm
rpm –ivh samba-3.0.23c-4.i386.rpm
rpm –ivh samba-doc-3.0.23c-4.i386.rpm
使用选项Uvh来安装common是因为原来的common没有被卸载,因此应进行升级安装(U)。
6.安装完毕后,可以使用rpm –qa samba来确认。会输出samba-3.0.24c-4。
7.下面开始对samba服务进行配置。
8.首先,修改/etc/samba/lmhosts文件。加入一行,为本机上的Windows系统IP地址和主机名。这样才可以通过Windows来访问Unix的samba服务。
9.创建目录/export/sambadir作为共享目录。
命令:mkdir –p /export/sambadir
chmod 777 /export/sambadir
10.修改/etc/samba/smb.conf文件。这是samba的配置文件。
Security = user
Log file = /var/log/samba/log.%m
Path = /export/sambadir
11.使用testparam来测试修改结果。
12.加入一个用户,并修改其密码。
13.使用chkconfig命令来设置在启动级别5中启动samba。命令如下:
Chkconfig –list | grep smb
Chkconfig –level 5 smb on
Chkconfig –list | grep smb
14.重新启动网络服务:
/etc/rc.d/init.d/cups stop
/etc/rc.d/init.d/smb restart
15.然后就可以在Windows系统中通过12步中设定的用户名和密码来访问Linux。
16.使用源代码的安装方式:下载samba-3.0.23c.tar.gz源代码包,解压。
Cd samba-3.0.23c/source
./autogen.sh
./configure –prefix=/usr –localstatedir=/var –with-configdir=/etc/samba –with-privatedir=/etc/samba –with-fhs –with-quotas –with-smbmount –enable-cups –with-pam_smbpass –with-syslog –with-utmp –with-swatdir=/usr/share/swat –with-shared-modules=idmap_rid –with-libsmbclient
Make
Make install
17.其余步骤与7之后相同。
这是我实验时写的,平台是redhat 9