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/smbconf”,设置共享和认证参数。如图就是我在用的Samba用户共享典型配置文件。编辑修改完成之后,可以使用“testparm /etc/samba/smbconf”验证配置文件的有效性,以免因配置文件错误而导致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设置了显示隐藏文件和文件夹的缘故。)targz包是源代码的包,不能直接运行,需要安装 tar xvf samba-351targz cd samba-351 && cd source3 && /configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-piddir=/var/run \ --with-pammodulesdir=/lib/security \ --with-fhs \ --with-automount \ --with-cifsumount \ --enable-nss-wrapper \ --with-pthreads && make make install && install -v -m755 /nsswitch/libnss_win{s,bind}so /lib && ln -v -sf libnss_winbindso /lib/libnss_winbindso2 && ln -v -sf libnss_winsso /lib/libnss_winsso2 && install -v -m644 /examples/smbconfdefault /etc/samba && install -v -m755 -d /usr/share/doc/samba-351 && install -v -m644 /docs/pdf \ /usr/share/doc/samba-351 && ln -v -s //samba/swat /usr/share/doc/samba-351 以上就是用源代码安装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配置smbconf文件
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/
smbservice - Samba SMB Daemon
Loaded: loaded(/usr/lib/systemd/system/smbservice; enabled)
Active: active (running) since Tue2014-08-12 11:38:29 CST; 14s ago
Main PID: 16807 (smbd)
Status: "smbd: ready to serveconnections"
CGroup: /systemslice/smbservice
16807 /usr/sbin/smbd
16808 /usr/sbin/smbd
systemd[1]:Starting Samba SMB Daemon
smbd[16807]:[2014/08/12 11:38:29255341, 0]/lib/util/become_daemonc:136(daemon_ready)
systemd[1]:Started Samba SMB Daemon
smbd[16808]:STATUS=daemon 'smbd' finished starting up and ready to serve connectionsfailedto retrieve printCCESSFUL
Hint:Some lines were ellipsized, use -l to show in full
四、 测试连通性
1Linux上测试
Domain=[BIGCLOUD] OS=[Unix] Server=[Samba 411]
Domain=[BIGCLOUD] OS=[Unix] Server=[Samba 411]
2Windows上测试
1)使用虚拟机(如VMware)安装Linux(如Ubuntu)系统时,为方便Windows和Linux文件互通方便(主要是Windows下访问Linux文件了),一般都会在LINUX下安装Samba服务器。
在XP下,可以通过[//1921683104](file://1921683104/)(Linux系统IP)进行访问其共享文件,但在WIN7或VISTA下却不行,因为Samba只支持NTLM认证,而WIN7或VISTA则采用NTLMv2认证,因此必须经过一些设置才行,具体设置如下:
开始->运行->secpolmsc->本地策略->安全选项->网络安全:LAN管理器身份验证级别->发送 LM 和 NTLMv2 ,如果已协商,则使用NTLMv2 (会话安全 &)->完成设置。(如下图所示)
这时,再使用[//1921683104](file://1921683104/)(Linux系统IP)就可以访问Linux共享文件了 _
2)C:>netuse /del
您有以下的远程连接:
继续运行会取消连接。
您想继续此 *** 作吗 (Y/N) [N]: y
命令成功完成。
C:>netuse \19216818812 P@ssw0rd /U:alice
命令成功完成。
3)打开资源管理器进行写入测试
4)如果windows下登录samba服务器后无法访问linux下共享目录,提示没有权限。则检查:
a、确保linux下防火墙关闭或者是开放共享目录权限;
b、确保samba服务器配置文件smbconf设置没有问题,可网上查阅资料看配置办法 ;
c、确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写 *** 作,即使你在smbconf中允许了这项 *** 作。
推荐用yum来安装,这样它可以自己解决包的依赖关系,省时、省事又方便。一条命令搞定:
yum -y install samba
2、 配置Samba
关于Samba的配置网上资料一大堆,可照着很多教程一步一步做下去发现最后就是用不了,郁闷至极啊。
我的目的不是多仔细,多深入的教你Samba的好,而是教会你如何快速的可以将Samba用起来,因此安全性方面的东西考虑的不是很多。但为了照顾到大家不同档次的水平和口味,我还是尽可能的多写一些东西。
首先,我强烈的建议大家在修改系统原有任何文件的时候一定要养成“先备份,后修改”的好习惯,相信我,这个习惯会为侬节约很多不必要浪费的时间。接下来我要做的是将/home/目录下的用户“koorey”的主目录给挖出来,供我在windows下访问。步骤如下:
1) 备份Samba的配置文件:cp /etc/samba/smbconf /etc/samba/smbconfbak
2) 网上很多教程说针对/etc/samba/smbconf文件要在[global]字段中加入下配置项:
dos charset = GB2312 ←将Windows 客户端的文字编码设置为简体中文 GB2312
unix charset =GB2312 ←指定Samba所在的CentOS服务端新建文件或目录时的编码为 GB2312
display charset= GB2312 ←指定使用SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
directory mask =0777 ←指定新建目录的属性(以下4行)
force directorymode = 0777
directorysecurity mask = 0777
force directorysecurity mode = 0777
create mask =0777 ←指定新建文件的属性(以下4行)
force createmode = 0777
security mask =0777
force securitymode = 0777
声明:我没有加这些配置,而且在我在共享出来的目录里添加,修改删除文件都没任何问题,还没有乱码现象。
我在/etc/samba/smbconf文件的末尾之添加如下字段:
[koorey]
comment = koorey
path = /home/koorey
writable = yes
3) Linux中/etc/passwd里的用户和Samba里的用户几乎没啥关系,硬说有的话,那就是:Samba的所有用户都必须是系统里已存在的用户。我们要授权系统用户访问Samba的话,通过命令:
smbpasswd -a koorey #添加用户koorey到Samba用户数据库中
这条命令输入完后,会提示为新建的用户koorey设置访问密码。最后再执行一下service smb restart命令就OK了。至此,Samba服务器就架设好了。不信?为啥?因为后面还有章节,哈哈,说的没错。理论上说确实已经架设好了,可千万不要忽略了Linux的安全机制的存在:iptables和selinux。其中本人就吃了selinux不少苦头。因为只弄了iptables,却忘记了selinux这个牛叉叉的家伙。关于iptables本人会在后面的博客从头到脚,从里到外,循序渐进的以此和大家交待它的来龙去脉。当然,如果你感兴趣的话。
3、 在对待iptables的问题上:
普通青年:直接在命令行敲…
service iptables stop。
文艺青年:依次在命令行敲…
iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 137 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 138-j ACCEPT
iptables-save
service iptables restart
4、 同样,在对在selinux的问题上:(这丫的把我坑惨了呀)
普通青年:直接在命令行敲…
setenforce 0
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled为开机重启后不再执行setenfore节约光阴。
文艺青年:依次在命令行敲…
setsebool -Psamba_enable_home_dirs on
setsebool -Psamba_export_all_rw on
完事儿之后再:getsebool -a | grep samba一把,你懂得…
5、最后在Windows系统里,访问结果如下:
6、打完收工。
不管你是普通青年还是文艺青年,如果你是一步一步照着做下来的,结果最后Samba还不通,请留言告诉我。yum的报错是不能取得镜像列表,大概是网络问题
至于rpm安装错误,你注意这一行:
perl(Convert::ASN1) is needed by samba-3033-328el5i386
指的是需要perl的Convert::ASN1这个模块
你可以在光盘里找名称为perl-Convert-ASN1的rpm,装上应该就可以了首先解压这个文件,
1,tar -xvfz samba-403targz(只需要打出sam这几个字母然后按“Tab”建就可以联想出完整的文件名字了)
2,cd samba-403
3, /configure
4make
5make install
从你的截图可以看得出你缺少了 make这个指令,也就是没有安装gcc
建议你挂上你的系统镜像, 然后挂载在例如/mnt目录下,然后去里面找到gccrpm的包就全部安装上就可以了。安装方法是rpm -ivh xxxgccrpm 然后再执行上面的步骤。只有把gcc安装上,你才能安装samba1> CentOS 62下安装和启动
服务端:
yum install samba
客户端:
yum install samba-client
启动:
service nmb start
service smb start
2> samba 服务端配置
配置文件/etc/samba/smbconf中,[global] 全局配置,优先级最低;[homes] 用户家目录配置;[printers] 打印机相关;
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
security = user #模式,验证用户名密码
encrypt passwords = Yes #密码加密存储
passdb backend = tdbsam #密码存储方式
username map = /etc/samba/smbusers #虚拟用户
log level = 0 #日志级别
log file = /var/log/samba/%mlog #日志目录
max log size = 50
cups options = raw #打印机相关
[homes]
comment = Home Directories for %S #%S 为通配符,当前登录用户
guest ok = No
valid users = %S
force user = %S #只当前登录用户可写
writeable = Yes
browseable = No #共享其他人不可见
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = No
printable = Yes
browseable = No
还可以自定义配置如
[sm22]
comment = data dir for sm2
path = /data/sm2
guest ok = No
valid users = sm2
writeable = Yes
directory mask = 0700
browseable = No
3> Samba 用户管理
a> 添加系统用户
useradd -s /sbin/nologin test1 #test1不能登录 *** 作系统
smbpasswd -a test1 #添加test1至samba数据库
b> 添加大量的虚拟用户(sm11、sm12、sm13)映射至test2用户
useradd -s /sbin/nologin test2
smbpasswd -a test2
vim /etc/samba/smbusers
test2 = sm11 sm12 sm13 sm14 sm15 sm16
4> 为特殊用户建立单独配置文件
a> 为 sm2 用户创建单独配置文件
cp /etc/samba/smbconf /etc/sambaconfsm2
b> 编辑 /etc/samba/smbconf 文件
vim /etc/samba/smbconf
[global]
config file = /etc/samba/smbconf%U
c> 编辑 /etc/smbconfsm2 文件,去掉 browseable = no 这样 sm2 在访问服务器时,sm22 服务可见
[sm22]
comment = data dir for sm2
path = /data/sm2
guest ok = No
valid users = sm2
writeable = Yes
directory mask = 0700
d> 重启 samba 服务ed Hat Linux 90,则系统会默认安装Samba组件。我们可以在终端命令窗口输入以下命令进行验证:
[root@ahpeng root] rpm -qagrep samba
如果结果出现以下所示的5个软件包,则表示已经安装:
samba-swat-227a-790
samba-227a-790
redhat-config-samba-104-1
samba-common-227a-790
samba-client-227a-790
如果没有安装过Samba软件包,则可以插入第1张安装光盘,然后鼠标依次单击“主菜单→系统设置→添加/删除应用程序”菜单项,打开“软件包管理”对话框,在该对话框中找到“Windows文件服务器”选项,确保该选项处于选中状态,然后单击“更新”按钮即可开始安装。
你也可以把第1张安装光盘插入光驱,然后在终端命令窗口输入以下命令:
[root@ahpeng root]# cd /mnt/cdrom/RedHat/RPMS
[root@ahpeng RPMS]# rpm -ivh samba
[root@ahpeng RPMS]# rpm -ivh redhat-config-samba-104-1noarchrpm
二、Linux主机访问Windows主机
安装好Samba之后,就有了与Windows互相访问的基础。这里先介绍一下如何用字符命令方式访问Windows宿主机的共享资源。
1、查询宿主机的共享资源
可以使用“smbclient –L WindowsHostName”命令(此处的WindowsHostName用Windows主机名代替)。本例是要查询Windows主机Peter 上的共享资源,可以在终端窗口输入“smbclient –L Peter”命令,然后回车即可看到Windows主机的共享资源。
2、连接宿主机的共享目录
可以使用“smbclient //WindowsHostName/ShareName”命令来连接Windows主机上的某个共享文件夹,如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName –U UserName”命令。例如要连接Windows主机Peter上的共享目录Share,我们可以在终端窗口输入“smbclient //Peter/Share”命令然后回车即可。
如果连接成功,即可出现“smb:>”提示符,在该命令提示符下输入适当的命令,即可对所连接的共享目录进行 *** 作。
Smb支持的命令有大约40个命令,可以很方便地对共享目录进行删除、重命名、切换目录等 *** 作。如果要列出共享目录“Share”下的具体内容,可以使用ls命令。要删除其下的testtxt文件,可以使用“del testtxt”命令。共2页。
3、映射网络驱动器
我们知道,Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹来使用。在Linux下可以借助于 smbmount命令来实现,具体的命令参数是“smbmount //WindowsHostName/ShareName /mnt/smbdir”(此处的ShareName指代Windows共享资源名称,smbdir指代挂载点名称)。假设要将Windows主机 Peter下的共享文件夹Share映射为/mnt/WinShare目录,具体步骤是:
首先在/mnt目录下创建一个目录,假设为/mnt/WinShare;
然后打开终端命令窗口,运行“smbmount //Peter/Share /mnt/WinShare”即可。
现在再在文件管理器里打开/mnt/WinShare目录可以看到共享目录的内容,要卸载该映射目录,可以使用umount命令。
4、用Nautilus访问Windows主机
借助Gnome桌面下的文件管理器Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是Nautilus只是提供访问Windows主机的图形界面,具体的底层 *** 作还是借助于Samba客户端来完成。
在Gnome桌面环境下,单击“主菜单→网络服务器”菜单项,即可用Nautilus文件管理器查看工作组列表。双击工作组名称,即可看到其下的Windows主机。
双击其中的某台Windows主机图标,即可看到该主机的共享文件夹,可以看到这和Windows下的网络邻居几乎一样。
由于Nautilus本身就是Red Hat Linux的文件管理器,所以我们可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等等(对于windows 2000/XP主机还需要考虑该共享资源的权限设置)。
三、Windows主机访问Linux主机
要想让Windows宿主机能够访问Linux虚拟机,就必须在Linux虚拟机上启动Samba服务。在启动之前,还需要对Samba服务的属性进行配置,例如指定Linux虚拟机的共享目录、所在的工作组名称等。
1、配置Samba服务器
在以前版本的Red Hat Linux,我们必须直接修改Samba配置文件smbconf,或者使用SWAT对Samba进行全方位的设置。Red Hat Linux 90新引入了一个图形化的Samba服务器配置工具,可以让我们很方便地对Samba服务器进行配置。以root用户身份登录系统,单击“主菜单→系统设置→服务器设置→Samba服务器”菜单项,即可打开Samba服务器配置对话框。也可以在终端命令窗口输入“redhat-config- samba”,来访问Samba服务器配置对话框。
首先对Samba服务器的基本设置和安全选项进行配置,单击配置对话框上的“首选项→服务器设置”菜单项,即可打开服务器设置对话框。
基本设置:在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。
安全设置:然后进行Samba服务器安全设置,这里一共有4个选项。
“验证模式”代表如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码;“验证服务器”代表对于“共享”验证模式,无需启用此项设置;“加密口令”选项应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;“来宾账号”代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。
添加共享目录:单击Samba配置对话框工具栏上的“增加”按钮。在打开的对话框中的“基本”标签页上,指定(共享)目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。
2、启动Samba服务器
打开终端命令窗口,输入“/sbin/service smb start”命令,即可出现以下提示信息,表示Samba服务已经启动。
# /sbin/service smb start
启动SMB 服务 [确定]
启动NMB 服务 [确定]
接下来在Windows里打开“网络邻居”,就可以看到我们刚才设置的Samba服务器了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)