1.如何给linux安装新内核如何给linux安装新内核驱动
2.私有云存储(私有云存储器)
3.校园网中主要有哪几种服务器?服务器使用的操作系统是什么?
4.HTB系列靶机Frolic的渗透测试详解
5.详解Linux系统中安装配置Samba服务器的步骤
如何给linux安装新内核如何给linux安装新内核驱动
一、获取内核源码
二、解压内核源码
首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的通达信天下无敌指标源码源代码,则会发现一个linux-x.y.z的子目录。该目录下存放着内核x.y.z的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:
#tarzxvfLinux-2.3..tar.gz
文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.的全部源代码。将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。
#cd/usr/include
#rm-Rfasmlinux
#ln-s/usr/src/linux/include/asm-iasm
#ln-s/usr/src/linux/include/linuxlinux
#ln-s/usr/src/linux/include/scsiscsi
删除源代码目录中残留的.o文件和其它从属文件。
#cd/usr/src/linux
#makemrproper
三.增量补丁
有时不需要完全重新安装,只需打增量补丁,类似升级,在内核源码树根目录运行:
patch-p1<../patch-x.y.z
四.内核源码树目录:
arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和位PC相关的代码存放在i目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。
block:部分块设备驱动程序。
crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。
Documentation:关于内核各部分的通用解释和注释。
drivers:设备驱动程序,每个不同的驱动占用一个子目录。
fs:各种支持的文件系统,如ext、fat、ntfs等。
include:头文件。其中,和系统相关的头文件被放置在linux子目录下。
init:内核初始化代码(注意不是系统引导代码)。
ipc:进程间通信的代码。
kernel:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。
lib:库文件代码。
mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。
net:网络相关代码,实现了各种常见的网络协议。
scripts:用于配置内核文件的脚本文件。
security:主要是一个SELinux的模块。
sound:常用音频设备的驱动程序等。
usr:实现了一个cpio。
在i体系下,系统引导将从arch/i/kernel/head.s开始执行,并进而转移到init/main.c中的main()函数初始化内核。
五.配置内核
#cd/usr/src/linux
内核配置方法有三种:
(1)命令行:makeconfig
(2)菜单模式的配置界面:makemenuconfig
(3)Xwindow:makexconfig
Linux的内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以回答\"y\"、\"m\"或\"n\"。其中\"y\"表示将相应特性的支持或设备驱动程序编译进内核;\"m\"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;\"n\"表示内核不提供相应特性或驱动程序的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。
1、Codematurityleveloptions(代码成熟度选项)
Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)[N/y/?]如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。变更管理系统+源码如果想编译出一个稳定的内核,则要选择“n”。
2、Processortypeandfeatures(处理器类型和特色)
(1)、Processorfamily(;
/Cx;
/K5/5x/6x,Pentium/K6/TSC,PPro/6xMX)[PPro/6xMX]选择处理器类型,缺省为Ppro/6xMX。
(2)、MaximumPhysicalMemory(1GB;
2GB)[1GB]内核支持的最大内存数,缺省为1G。
(3)、Mathemulation(CONFIG_MATH_EMULATION)[N/y/?]协处理器仿真,缺省为不仿真。
(4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)[N/y/?]
选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供Xserver使用。
(5)、Symmetricmulti-processingsupport(CONFIG_SMP)[Y/?]选择“y”,内核将支持对称多处理器。
3、Loadablemodulesupport(可加载模块支持)
(1)、Enableloadablemodulesupport(CONFIG_MODULES)[Y/?]选择“y”,内核将支持加载模块。
(2)、Kernelmoduleloader(CONFIG_KMOD)[N/y/?]选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。
4、Generalsetup(一般设置)
(1)、Networkingsupport(CONFIG_NET)[Y/?]该选项设置是否在内核中提供网络支持。
(2)、PCIsupport(CONFIG_PCI)[Y/?]该选项设置是否在内核中提供PCI支持。
(3)、PCIaccessmode(BIOS,Direct,Any)[Any]该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。
(4)Parallelportsupport(CONFIG_PARPORT)[N/y/m/?]选择“y”,内核将支持平行口。
5、PlugandPlayconfiguration(即插即用设备支持)
(1)、PlugandPlaysupport(CONFIG_PNP)[Y/m/?]选择“y”,内核将自动配置即插即用设备。
(2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)[Y/m/?]选择“y”,内核将自动配置基于ISA总线的即插即用设备。
6、Blockdevices(块设备)
(1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)[Y/m/?]选择“y”,内核将提供对软盘的支持。
(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)[Y/m/?]选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。
7、Networkingoptions(网络选项)
(1)、Packetsocket(CONFIG_PACKET)[Y/m/?]选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。
(2)、Networkfirewalls(CONFIG_FIREWALL)[N/y/?]选择“y”,内核将支持防火墙。
(3)、TCP/IPnetworking(CONFIG_INET)[Y/?]选择“y”,内核将支持TCP/IP协议。
(4)TheIPXprotocol(CONFIG_IPX)[N/y/m/?]选择“y”,内核将支持IPX协议。
(5)、AppletalkDDP(CONFIG_ATALK)[N/y/m/?]选择“y”,内核将支持AppletalkDDP协议。
8、开源源码+网站SCSIsupport(SCSI支持)
如果用户要使用SCSI设备,可配置相应选项。
9、Networkdevicesupport(网络设备支持)
Networkdevicesupport(CONFIG_NETDEVICES)[Y/?]选择“y”,内核将提供对网络驱动程序的支持。
、Ethernet(orMbit)(M或M以太网)
在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(WirelessLAN)的支持。
、Characterdevices(字符设备)
(1)、Virtualterminal(CONFIG_VT)[Y/?]选择“y”,内核将支持虚拟终端。
(2)、Supportforconsoleonvirtualterminal(CONFIG_VT_CONSOLE)[Y/?]
选择“y”,内核可将一个虚拟终端用作系统控制台。
(3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)[Y/m/?]
选择“y”,内核将支持串行口。
(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)[N/y/?]
选择“y”,内核可将一个串行口用作系统控制台。
、Mice(鼠标)
PS/2mouse(aka\"auxiliarydevice\")support(CONFIG_PSMOUSE)[Y/?]如果用户使用的是PS/2鼠标,则该选项应该选择“y”。
、Filesystems(文件系统)
(1)、Quotasupport(CONFIG_QUOTA)[N/y/?]选择“y”,内核将支持磁盘限额。
(2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)[Y/m/?]选择“y”,内核将提供对automounter的支持,使系统在启动时自动mount远程文件系统。
(3)、DOSFATfssupport(CONFIG_FAT_FS)[N/y/m/?]选择“y”,内核将支持DOSFAT文件系统。
(4)、ISOCDROMfilesystemsupport(CONFIG_ISO_FS)[Y/m/?]
选择“y”,内核将支持ISOCDROM文件系统。
(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)[N/y/m/?]
选择“y”,用户就可以以只读方式访问NTFS文件系统。
(6)、/procfilesystemsupport(CONFIG_PROC_FS)[Y/?]/proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。
(7)、Secondextendedfssupport(CONFIG_EXT2_FS)[Y/m/?]EXT2是Linux的标准文件系统,该项也必须选择“y”。
、NetworkFileSystems(网络文件系统)
(1)、NFSfilesystemsupport(CONFIG_NFS_FS)[Y/m/?]选择“y”,内核将支持NFS文件系统。
(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)
选择“y”,内核将支持SMB文件系统。
(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)
选择“y”,内核将支持NCP文件系统。
、PartitionTypes(分区类型)
该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。
、Consoledrivers(控制台驱动)
VGAtextconsole(CONFIG_VGA_CONSOLE)[Y/?]选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。
、Sound(声音)
Soundcardsupport(CONFIG_SOUND)[N/y/m/?]选择“y”,内核就可提供对声卡的支持。
、c# socke源码Kernelhacking(内核监视)
MagicSysRqkey(CONFIG_MAGIC_SYSRQ)[N/y/?]选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。
六、编译内核
(一)、建立编译时所需的从属文件
#cd/usr/src/linux
#makedep
(二)、清除内核编译的目标文件
#makeclean
(三)、编译内核
#makezImage
内核编译成功后,会在/usr/src/linux/arch/i/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用makebzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。
(四)、编译可加载模块
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
#makemodules
#makemodelus_install
编译成功后,系统会在/lib/modules目录下生成一个2.3.子目录,里面存放着新内核的所有可加载模块。
七、启动新内核
(一)、将新内核和System.map文件拷贝到/boot目录下
#cp/usr/src/linux/arch/i/boot/bzImage/boot/vmlinuz-2.3.
#cp/usr/src/linux/System.map/boot/System.map-2.3.
#cd/boot
#rm-fSystem.map
#ln-sSystem.map-2.3.System.map
(二)、配置/etc/lilo.conf文件。在该文件中加入下面几行:
default=linux-2.3.
image=/boot/vmlinuz-2.3.
label=linux-2.3.
root=/dev/hda1
read-only
(三)、使新配置生效
#/sbin/lilo
(四)、重新启动系统
#/sbineboot
新内核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。
私有云存储(私有云存储器)
现在云计算已经算不上一个新鲜词了,各大IT公司的产品都会套上一个“云”字来忽悠用户。相信大家都用过网盘,现在更流行的词应该叫“云存储”,像用的比较多国外的有Dropbox、SkyDrive,国内也有百度云网盘、sina微盘、腾讯微云网盘等等,我们可以用这些网盘在不同的设备上来存储/获取数据,如PC、智能手机、平板电脑等等,同时我们希望不同设备间的数据是同步的。
我们将要搭建自己的云系统平台,更精确的说是一个云存储系统,正如上面的产品所提供的功能。我们将使用开源软件ownCloud来搭建自己的私有云。ownCloud起源于一个叫TheKDE云计算项目,现在已经适用于大多主流平台,它最早是KED的开发者FrankKarlitschek创建的,现在由一个ownCloudteam共同开发。
下面教大家如何一步一步地搭建属于自己的云存储平台:
第一步:预装软件。
ownCloud内核是用PHP5写的,支持SQLite、MySQL、Oracle以及PostgreSQL等数据库。为了简单,我们将用MySQL数据库。在你的Linux系统下你需要安装以下软件:
PHP安装包:php5,php5-gd,php-xml-parser,php5-intl数据库驱动:php5-mysqlCurl安装包:curl,libcurl3,php5-curlSMB客户端:smbclientWeb服务器:apache2如果你的Linux是基于Debian的,你可以运行下面的命令一键安装所有的软件:
$sudoapt-getinstallapache2php5php5-gdphp-xml-parserphp5-intlphp5-sqlitephp5-mysqlsmbclientcurllibcurl3php5-curlmysql-server
第二步:安装ownCloud——设置web根目录。
从第三步:安装ownCloud——配置web服务器。
这一步我们要为ownCloud配置Apache服务器,OwnCloud需要启用Apache上.htaccess文件,.htaccess文件提供了针对目录改变配置的方法。为了启用web服务器上的.htaccess,可以通过Apache配置文件的AllowOverride指令来设置。
Directory/var/www/
OptionsIndexesFollowSymLinksMultiViewsAllowOverrideAllOrderallow,denyallowfromall/Directory下一步我们需要启动Apache的mod_rewrite模块,mod_rewrite模块提供了实时地将访问者请求的静态URL地址映射为动态查询字符串的一种规则。运行下面的命令来启动这个模块:
$sudoa2enmodrewrite$sudoa2enmodheaders一旦你使能了这个必要的模块,你可以重启apache服务来使之生效:$sudoserviceapache2restart
第四步:安装OwnCloud——安装运行。
在浏览器中打开第五步:使用桌面同步客户端同步文件。
你可以使用桌面同步客户端同步不同电脑、设备上的9000f源码文件,适用于Linux、OSX和Windows系统。跟ownCloud一样,桌面同步客户端也是开源的。
例如Ubuntu下,你可以通过apt-get安装:
$sudoapt-getinstallowncloud-client对于其他的发行版,你可以通过这个URL下载ownCloud的桌面同步客户端:第六步:使用移动同步客户端同步文件。
ownCloud文件同步不仅仅局限于桌面端,你也可以使用ownCloud的移动同步客户端同步你的文件,ownCloud移动应用适用于Andorid、iOS平台。Andorid版的应用允许你从任何Android应用上传文件,以及提供自动同步文件功能。
你可以从GooglePlay商店或者Amazon应用商店付费下载。如果你不愿意付费,也可以自己编译源代码或者下载预制的APK文件。
对于iOS版应用不是开源的,只能成Apple应用商店获得us/app/owncloud/id?mt=8。
我从githubclone一个最新的源代码,经过编译之后安装在我的Android上,下图为软件运行时截图。
主要内容编译自:tutorials/build-your-own-cloud更多关于ownCloud开发和使用的信息,可以访问其官网:
校园网中主要有哪几种服务器?服务器使用的操作系统是什么?
一般网站的服务器安的操作系统是什么?
一般网站的服务器安的操作系统是什么?
这类操作系统配置在整个局域网配置中是最常见的,但由于它对服务器的硬件要求较高,且稳定性能不是很高,所以微软的网络操作系统一般只是用在中低档服务器中,高端服务器通常采用UNIX、LINUX或Solairs等非Windows操作系统。
WindowsServer等系统。适合安装在服务器上使用的操作系统有WindowsServer,Linux,FreeBSD,Solaris,Unix。适合安装在服务器上使用的操作系统需要考虑到安全性、稳定性、可靠性、高可用性、网络支持等要素。
windows系统相信大家都不陌生,现在大家基本上使用的都是以windows操作系统为主,而服务器上使用的windows操作系统一般指的的是windows的服务器版本系统:windowsserver系列。
简要说一下windows系统和Linux系统。windows系统相信大家都不陌生,现在大家基本上使用的都是以windows操作系统为主,而服务器上使用的windows操作系统一般指的的是windows的服务器版本系统:windowsserver系列。
常用的是Windows和Linux这两大类服务器系统,细分起来类别就很多了。win分为,每个版本里面还可以细分为server数据中心版英文、中文等版本。linux包括的就更多了,有CentOS,RedHat,Debian,Ubuntu等等。
另一方面Linux系统则无法支持.NET技术。支持微软数据库--基于专用服务器的Windows操作系统可以支持MicrosoftAccess或者MicrosoftSQL。这些数据库在Linux专用服务器下是无法运行的。
服务器常用的操作系统有哪些,一般用哪个?
服务器常用的操作系统有哪些,一般用哪个?
1、windows服务器最常用的是windows和windows两种,这两款都被很多大小型企业所用。
2、Linux系统分Ubunto、CentOS、Debian等等。
3、FreeBSD操作系统FreeBSD是另一个免费的操作系统,它是一个开放源代码的操作系统。它在许多方面与Linux相似,包括性能和安全性。同时,它也是一个灵活的操作系统,可以帮助用户轻松创建自定义的服务器环境。
服务器的操作系统有哪些?
服务器的操作系统有哪些?
1、WindowsNT是一个网络型操作系统,它在应用、管理、性能、内联网/互联网服务、通讯及网络集成服务等方面拥有多项其他操作系统无可比拟的优势。因此,它常用于要求严格的商用台式机、工作站和网络服务器。
2、服务器操作系统的分类如下:主要分Windows和Linux两大类,Windows有分win,winwin等等。Linux系统分Ubunto、CentOS、Debian等等。
3、服务器操作系统种类主要有四种,分别是windows服务器操作系统、Linux服务器操作系统、Netware服务器操作系统和Unix服务器操作系统。
4、Linux操作系统Linux是一个开源免费的操作系统,可以自由使用,并且拥有绝大部分免费的服务器软件。它是用于web服务器上的最受欢迎的操作系统之一。由于它是开源的,因此用户可以自由修改和改进其功能。
校园网一般用什么服务器,服务器用什么操作系统
校园网一般用什么服务器,服务器用什么操作系统
1、Web服务器:用于存放网站文件和数据的服务器,使用HTTP协议。文件服务器:用于存储和共享各种文件,包括文档、、音频、视频等,使用SMB或FTP协议。
2、XP除非你是电脑爱好者,有一定基础。XP是用户量最多的,所以出了问题好解决。
3、校园网服务器操作系统用得最多的是windows2k3,界面友好,易上手,功能和稳定性都够用,扩展性也不错。win2k3是首选。
HTB系列靶机Frolic的渗透测试详解
Hack The Box 平台上提供了多种靶机,从简单到复杂,旨在提升渗透测试技能和黑盒测试能力。这些靶机模拟了真实世界场景,适合不同层次的挑战。今天,我们将详细介绍如何通过靶机 Frolic 的渗透测试。
首先,使用 nmap 扫描靶机开放的端口和服务。结果显示 SSH(端口 )、SMB(端口 和 )以及 HTTP(端口 )。
针对 SMB 服务,我们尝试使用 smbmap 查看共享文件。发现了两个共享目录,但没有访问权限。
接着,我们通过 nc 工具快速检测了端口 是否开放。结果显示该端口是开启的。随后,访问了该端口,发现了一个简单的欢迎页面,底部包含 “forlic.htb:” 的信息。
尝试登陆页面时,我们注意到需要账户密码。尽管使用常见默认账户和密码尝试登陆,但均失败。当使用 admin:password 登录时,页面陷入卡顿状态,且系统实施了等待时间限制,禁止暴力破解。
为了突破限制,我们使用 gobuster 爆破网站目录,成功发现了 /backup、/dev、/test 和 /admin 等目录。在 /backup 中,我们找到了 password.txt 和 user.txt 文件,分别包含了账号密码:admin: imnothuman。
尝试登陆刚刚发现的 Node-RED 页面时,发现无法登陆。我们转而访问 /admin 页面,发现提示剩余尝试次数。通过 Burp Suite 工具抓包发现,未接收到任何反馈信息。检查源代码的 JS 代码,发现了一种编码技巧。复制这段编码到谷歌搜索后,我们访问了作为提示的 URL,并通过解码找到一个 ZIP 文件。
解压 ZIP 文件后,需要密码,我们使用 zip2john 工具将其转换为密码 HASH,然后使用 john 工具破解,得到了密码:password。再次解压文件,内容疑似 进制格式。转换后,我们发现是一个需要解密的文本,通过谷歌搜索找到对应解码网站,解密后得到 idkwhatispass。
经过多次尝试,我们总共得到了两组密码。我们发现可能还有未被探索的网页,其密码可能属于未被发现的页面。基于此,我们继续使用 gobuster 工具进行进一步的扫描和爆破,最终找到了 /dev 下的 /backup 目录。
访问此目录并使用刚刚得到的密码尝试登陆。正确的账号密码是 admin: idkwhatispass。接着,我们尝试利用 playsms 的已知漏洞进行攻击。使用 1.4 版本的远程代码执行漏洞,通过 searchsploit-x Path 查找相应的漏洞说明并手动利用。也可以使用 Metasploit 框架中集成的工具进行攻击。
成功后,我们获得了 user flag。接下来是提权操作,我们使用 LinEnum 工具检查可利用的提升权限点。使用 Python 的 SimpleHTTPServer 模块将 LinEnum 上传到靶机执行,然后在 shell 中运行。我们注意到带有 SUID 权限的文件,可以通过输入特定内容触发溢出攻击,进而获得 root 权限。
我们使用 gdb 进行调试,通过插件 pEDA 安装,调试工具帮助我们定位错误位置和计算地址偏移量。通过一系列操作,我们最终获得了 /bin/sh 的地址,并整合系统调用函数 system() 和 exit() 的地址,构建了 payload,成功获取了 root 权限。
Ms 安全实验室专注于网络安全知识的普及和培训,已出版多本专业书籍,如《Web 安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》等。团队定期在公众号分享技术干货,旨在提供实用的渗透测试实战指南。
详解Linux系统中安装配置Samba服务器的步骤
一、获取源代码包并进行解压
从samba的官方网站可以下载最新的samba源代码包。下面我们以samba-3.5.9.tar.gz的源代码包作为案例进行解析。本例中,我们将源代码包放在目录/home/samba下,然后执行下面的命令进行解压缩。
代码如下:
# tar –xzvf samba-3.5.9.tar.gz
二、配置configure
对源代码包进行解压缩后,进入目录
代码如下:
# cd /home/samba/samba-3.5.9/source3
然后执行下面的命令进行配置。
代码如下:
# ./configure
可能在刚开始时,该目录下没有configure文件,此时可先执行下面的命令
代码如下:
# ./autogen-sh
此时要求系统安装了autoconf、automake等工具。
在运行上面的配置命令之前,我们可以通过命令
代码如下:
# ./configure –-help
来查看配置命令的一些选项。
三、生成与安装make make install
在环境配置命令./configure成功执行后,可以运行命令
代码如下:
# make
来生成二进制可执行文件,这可能需要两到三分钟。成功生成可执行文件后,可以通过下面命令
代码如下:
#make install
来进行安装。系统默认的安装路径是/usr/local/samba
四、配置动态链接库路径
安装完成后,我们需要配置动态链接库路径,因为运行samba的进行smbd和nmbd需要到目录/usr/local/samba/lib下的动态链接库文件。但是该目录不是系统默认的动态链接库文件搜索路径,于是我们需要将该目录添加到文件ld.so.conf中。执行下面的命令
代码如下:
# vi /etc/ld.so.conf
打开ld.so.conf文件,并在该文件中加入下面这一行内容。
代码如下:
/usr/local/samba/lib
然后执行命令
代码如下:
# ldconfig
来更新动态链接库缓冲。
五、samba配置文件smb.conf
samba在运行过程中需要用到配置文件smb.conf。smb.conf配置文件是samba最重要的配置文件,该文件定义了samba的安全机制、文件共享和打印共享的目录和参数以及其他一些系统配置功能。
配置文件smb.conf的默认路径是/usr/local/samba/lib/smb.conf,我们可以在运行smbd进程时,通过-s选项来执行特定的smb.conf文件(具体说明见下一节),一般不推荐使用-s选项,因为其配置工具,如smbclient、testparm等默认都是读取/usr/local/samba/lib/smb.conf文件。下面我们以一个简单的配置文件进行说明,其路径为/etc/samba/smb.conf。
代码如下:
[global]
workgroup = MYGROUP
server string = Samba Server %v
security = user
log file = /var/log/samba/%m.log
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
[root]
path = /
valid users = root
writeable = yes
[public]
path = /data
guest ok = yes
read only = yes
上面配置文件定义了root和public两个文件共享服务。关于上面这个配置文件的具体细节,我们这里不做详细的论述。这里主要说明的一点:在samba 3.0.版本以前验证用户密码的默认backend是smbpasswd,而3.0.版本之后的默认backend是tdbsam。我们可以通过参数passdb backend来选择特定的backend。在使用smbpasswd时默认读取的密码文件时/usr/local/samba/private/smbpasswd,我们可以通过smb passwd file来指定特定的密码文件。
在配置完smb.conf文件后,我们可以运行testparm(目录/usr/local/samba/lib下)命令来对smb.conf文件进行语法检查,其会检测出哪些参数名无法识别等问题。
六、启动samba
samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务,而nmbd则提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议。
配置smb.conf文件后,在开始运行samba的服务进程之前。我们需要先做一些准备工作。运行smbpasswd命令(在目录/usr/local/samba/bin下)
代码如下:
# ./smbpasswd –a root
向smb.conf文件中指定的/etc/samba/smbpasswd文件中添加root用户以及密码信息。关于smbpasswd文件的详细内容介绍见相关文档。
然后运行命令
代码如下:
# service iptables stop
关闭防火墙,因为防火墙可能会阻止用户访问该机器。下面是运行samba的服务进程smbd和nmbd
代码如下:
# /usr/local/samba/sbin/smbd –D –s /etc/samba/smb.conf
# /usr/local/samba/sbin/nmbd –D –s /etc/samba/smb.conf
上面的-D选项指定smbd和nmbd以守护进程的方式启动,并且通过-s选项指定了特定的配置文件/etc/samba/smb.conf。以守护进程方式启动smbd和nmbd的优势是响应速度快,但是要关闭的话只能kill掉。当然我们可以通过脚本来执行这些操作,这里就不提供脚本了。
七、smbclient进行测试检查
在启动samba之后,我们可以在本机使用smbclient(目录/usr/local/samba/bin下)来进行测试。下面命令
代码如下:
# cd /usr/local/samba/bin
# ./smbclient –L //.0.0.1
可以列出本samba服务器所提供的服务列表,本例运行结果如下:
代码如下:
[root@localhost bin]# ./smbclient –L //.0.0.1
Enter root’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
p Sharename Type Comment
--------- ------- -------
IPC$ IPC IPC Service (Samba Server 3.5.9)
public Disk
root Disk
pDomain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
p Server Comment
----------- -------
LOCALHOST Samba Server 3.5.9
Workgroup Master
------------ -------
MYGROUP LOCALHOST
当然也可以通过smbclient来访问samba服务器提供的服务,其命令格式如下:
代码如下:
# ./smbclient “//serverAdderss/aservice” –U username
其中serverAddress是要访问的samba服务器的IP地址,aservice指定samba服务器上提供的某个服务名称,选项-U username指定要以哪个用户名来访问samba服务器。例如
代码如下:
[root@localhost bin]# ./smbclient “//.0.0.1/root” –U root
Enter root’s password: ; #这里输入samba用户root的密码
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
smb: ; #访问成功,输入相关命令进行操作
上面个smb: 表明了访问成功,此时我们可以输入一些命令来在samba服务器上进行操作,比如ls、mkdir等。q或quit命令执行退出,并断开连接。
八、在Windows客户端访问samba服务器
在Windows客户端,可以在网上邻居中通过新建网上邻居来访问,或者在开始——运行中输入..1.root来访问samba服务器..1.上面提供的root服务。
九、重要选项说明
全局选项:
全局选项用于[global]的
选项定义中,其用于说明samba服务器的一些基本属性。其有些选项可以被其他
中的选项定义覆盖。
workgroup = MYGROUP
定义samba服务器所在的工作组或者域(如果设置security = domain的话)。
server string = Samba server
设定samba服务器的描述,通过网络邻居访问时可在备注中查看到该描述信息。
hosts allow = host (subnet)
设定允许访问该samba服务器的主机IP或网络,该选项的值为列表类型,不同的项目之间使用空格或逗号隔开,例如hosts allow = ..3.0, ..1.1,该选项设置允许主机..1.1以及子网..3.0/内的所有主机访问该samba服务器。
hosts deny = host (subnet)
设定不允许访问该samba服务器的主机IP或网络,其格式与hosts allow一样。
guest account = guest
设定了游客的账号,在游客访问guest ok = yes的共享服务时,samba服务器将设置客户端以该游客账号来访问共享。
log file = MYLOGFILE
设定记录文件的位置。
max log size = size
设定记录文件的大小,单位为KB,如果设置为0则表示无大小限制。
security =
设定samba服务器的安全级,其有四种安全级别:share、user、server和domain,默认为user。关于这四种安全级别的详细信息,请查看相关文档。
password server = ServerIP
设定了用户账号认证服务器IP,其在设定security = server时有效。
encrypt passwords = yes | no
设定是否对密码进行加密。如果不对密码进行加密的话,在认证会话期间,客户端与服务器传递的是明文密码。但有些Windows系统默认情况下,不支持明文密码传输。
passdb backend = smbpasswd | tdbsam | ldapsam
设定samba服务器访问和存储samba用户账号的后端,在samba-3.0。之前的默认值为smbpasswd,而之后的默认值为tdbsam。
smb passwd file =
设定samba的用户账号文件。对于源代码安装的samba,在samba-3.0.之前,其默认值为/user/local/samba/private/smbpasswd;而samba-3.0.之后,其默认值为/usr/local/samba/private/passwd.tdb。
include = smbconfFile
通过include选项可以包含其他配置文件,通过该选项和一些samba定义的变量可以设定与不同机器相关的配置。
local master = yes | no
设定该samba服务器是否试图成为本地主浏览器,默认值为yes。若设置为no,则该samba服务器永远不可能成为本地主浏览器,而设置为yes不代表其一定能成为本地主浏览器,只是让其能参与本地主浏览器的选举。
os level = N
N是一个整数,设定了该samba服务器参加本地主浏览器选举时的权重,其值越大,权重越大。os level = 0时,该服务器将失去选举的机会。
domain master = yes | no
设定samba服务器成为域浏览器。域浏览器从各个本地主浏览器处获取浏览列表,并将整个域的浏览列表传递给各个本地主浏览器。
preferred master = yes | no
设定该samba服务器是否为工作组里的首要主浏览器,如果设置为yes,则在nmbd启动时,将强制一个浏览选择。
局部选项:
局部选项为除了global外的各个
中的参数。其定义了共享服务的属性。
comment =
设定共享服务的描述信息。
path =
设定共享服务的路径,其中可以结合samba预定义的变量来设置。
hosts allow = host(subnet)
hosts deny = host(subnet)
与全局的hosts allow和hosts deny含义相同,其会覆盖全局的设置。
read only = yes | no
设定该共享服务是否为只读,该选项有一个同义选项writeable。
user = user(@group)
设定所有可能使用该共享服务的用户,可以使用@group来设置群组group中的所有用户账号。该选项的值为列表,不同的项目之间使用空格或逗号隔开。在设置security = share时,客户端要访问某共享服务时提供的密码会与该选项指定的所有用户进行一一配对认证,若某用户认证通过,则以该用户权限进行共享服务访问,否则拒绝客户端的访问(设置security = share不是允许游客访问,只有guest ok = yes才是允许游客访问,切记!!!)。
valid users = user(@group)
设定能够使用该共享服务的用户和组,其值的格式与user选项一样。
invalid users = user(@group)
设定不能够使用该共享服务的用户和组,其值的格式与user选项一样。
read list = user(@group)
设定对该共享服务只有读取权限的用户和组,其值的格式与user选项一样。
write list = user(@group)
设定对该共享服务拥有读写权限的用户和组,其值的格式与user选项一样。
admin list = user(@group)
设定对该共享服务拥有管理权限的用户和组,其值的格式与user选项一样。
public = yes | no
设定该共享服务是否能够被游客访问,其同义选项有guest ok。
create mode = mode
mode为八进制值,如,其默认值为。该选项指定的值用于过滤新建文件的访问权限,新建文件的默认权限将与create mode指定的值进行按位与操作,将结果再与force create mode指定的值进行按位或操作,得到的结果即为新建文件的访问权限。
force create mode = mode
mode为八进制值,默认为。其作用参考选项create mode。
directory mode = mode
mode为八进制值,默认为。该选项指定的值用于过滤新建目录的访问权限,新建目录的默认权限将与directory mode指定的值进行按位与操作,将结果再与force directory mode指定的值进行按位或操作,得到的结果即为新建目录的访问权限。
force directory mode = mode
mode为八进制值,默认为。该选项的作用参考选项directory mode。
force user = user
强制设定新建文件的属性onwer。若存在一个目录,其允许guest可以写,则guest就可以删除。但设定force user为其他用户,并设置create mode = ,则gues用户不能够删除其新建文件。
上面只是简单的介绍了一些重要的选项,并且没有讨论有关[printers]的选项说明,更多选项请man smb.conf进行查阅。