大家好,关于adm无法连接到服务器很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于请问如何利用组策略来阻止计算机连接到网络的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
一、请问如何利用组策略来阻止计算机连接到网络
对于大部分计算机用户来说,管理计算机基本上是借助某些第三方工具,甚至是自己手工修改注册表来实现。其实Windows
XP组策略已经把这些功能集于一体,通过组策略及相关工具完全可以实现我们所需要的功能。
一、组策略基础
1.什么是组策略
注册表是Windows系统中保存系统软件和应用软件配置的数据库,而随着Windows功能越来越丰富,注册表里的配置项目也越来越多,很多配置都可以自定义设置,但这些配置分布在注册表的各个角落,如果是手工配置,可以想像是多么困难和烦杂。而组策略则将系统重要的配置功能汇集成各种配置模块,供用户使用,从而达到方便管理计算机的目的。
其实简单地说,组策略设置就是在修改注册表中的配置。当然,组策略使用了更完善的管理组织方法,可以对各种对象中的设置进行管理和配置,远比手工修改注册表方便、灵活,功能也更加强大。
2.组策略的版本
对于Windows 9X/NT用户来说,都知道“系统策略”的概念,其实组策略就是系统策略的高级扩展,它是自Windows
9X/NT的“系统策略”发展而来的,具有更多的管理模板、更灵活的设置对象及更多的功能,目前主要应用于Windows
2000/XP/2003操作系统中。
早期系统策略的运行机制是通过策略管理模板,定义特定的POL(通常是Config.pol)文件。当用户登录时,它会重写注册表中的设置值。当然,系统策略编辑器也支持对当前注册表的修改,另外也支持连接网络计算机并对其注册表进行设置。
而组策略及其工具,则是对当前注册表进行修改。显然,Windows
2000/XP/2003系统的网络功能是其最大的特色之处,所以其网络功能自然是不可少的,因此组策略工具还可以打开网络上的计算机进行配置,甚至可以打开某个Active
Directory(活动目录)对象(即站点、域或组织单位)并对其进行设置。这是以前“系统策略编辑器”工具无法做到的。
当然,无论是“系统策略”还是“组策略”,它们的基本原理都是修改注册表中相应的配置项目,从而达到配置计算机的目的,只是它们的一些运行机制发生了变化和扩展而已。
3.在Windows
XP中运行组策略
在Windows
2000/XP/2003系统中,系统默认已经安装了组策略程序,在“开始”菜单中,单击“运行”选项,在打开的对话框中输入“gpedit.msc”并确定,即可运行组策略。如图1所示。
使用上面的方法,打开的组策略对象是当前的计算机,而如果需要配置其他的计算机组策略对象,则需要将组策略作为独立的MMC管理单元打开:
(1)打开Microsoft管理控制台(可在“开始”菜单的“运行”对话框中输入“MMC”并确定)。
(2)单击“文件→添加/删除管理单元”菜单命令,在打开的对话框中单击“添加”按钮。
(3)在“可用的独立管理单元”对话框中,单击“组策略”选项,然后单击“添加”按钮。
(4)在“选择组策略对象”对话框中,单击“本地计算机”选项编辑本地计算机对象,或通过单击“浏览”查找所需的组策略对象。
(5)单击“完成”按钮,组策略管理单元即打开要编辑的组策略对象。
(6)在左窗格中定位需要更改的选项的位置,在右窗格中右键单击需要更改的具体选项,单击“属*”命令,即可打开其属*对话框,从中选择“已启用”、“未配置”、“已禁用”选项即可对计算机策略进行管理。
4.组策略中的管理模板
在Windows
2000/XP/2003中包含几个ADM文件。这些文件是文本文件,被称为“管理模板”,它们为组策略管理单元的控制树中“管理模板”文件夹下的项目提供策略信息。
在Windows
2000/XP/2003中,默认的Admin.adm管理模板位于系统文件夹的INF文件夹中,包含了默认安装下的4个模板文件,分别为:
(1)System.adm:默认安装在“组策略”中,用于系统设置。
(2)Ires.adm:默认安装在“组策略”中,用于Inter
Explorer(IE)策略设置。
(3)Wmplayer.adm:用于Windows Media
Player设置。
(4)Conf.adm:用于NetMeeting设置。
在策略管理控制台中,可以多次添加“策略模板”,下面让我们来看看具体操作:
首先运行“组策略”程序,然后选择“计算机配置”或者“用户配置”下的“管理模板”,单击鼠标右键,选择“添加/删除模板”命令,然后在打开的对话框中单击“添加”按钮,在打开的对话框中选择相应的ADM文件。单击“打开”按钮,则在系统策略编辑器中打开选定的脚本文件,并等待用户执行。
返回到“组策略”编辑器主界面后,依次打开目录“本地计算机策略→用户配置→管理模板”选项,再单击相应的目录树,就会看到我们新添加的管理模板所产生的配置项目了。
注意:下面的操作均在Windows
XP中进行。
二、个*化我的电脑
1.删除“开始”菜单中的“文档”菜单项
在多人使用的计算机中,有的用户不希望其他用户看到自己曾经编辑过的文档或其他信息。因此,为了删除用于记录历史文档的“文档”菜单项,我们可以通过修改组策略来实现。
位置:\用户配置\管理模板\任务栏和“开始”菜单\
启用此设置,则系统保存“文档”快捷方式,但不在“文档”菜单中显示它们。如果以后禁用此设置或把它设置为未配置,则启用设置之前及其生效之时保存的“文档”快捷方式会出现在“文档”菜单项中。如图2所示。
注意:此设置不会阻止Windows程序在最近打开的文档中显示快捷方式。
另外,你也可以设置在退出系统时自动清除最近打开的文档的历史记录。
位置:\用户配置\管理模板\任务栏和“开始”菜单\
如果禁用该策略设置,系统就会在用户退出时删除快捷方式。因此,用户登录时,“开始”菜单上的文档菜单总是空的。如果禁用或不配置此设置,系统将保留文档快捷方式,并且用户登录时的文档菜单看起来与用户退出系统时完全相同。
注意:系统在\Documents
and
Settings\\Recent文件夹中的用户配置文件中保存文档快捷方式。
2.删除“开始”菜单中的“运行”菜单项
在“开始”菜单中有“运行”菜单项,可以输入程序名称来启动程序。我们可以将“运行”菜单项从“开始”菜单中删除。
位置:\用户配置\管理模板\任务栏和“开始”菜单\
如果启用该设置,发生如下更改:
(1)“运行”命令从“开始”菜单中删除。
(2)新建任务(运行)命令从任务管理器删除。
(3)阻止用户在IE栏中输入下列项:
UNC路径:\\<server>\<share>。
访问本地驱动器:例如,C:。
访问本地文件夹:例如,\temp>。
同时,使用WIN+R组合键将无法显示“运行”对话框。如果禁用或不配置此设置,用户可以访问“开始”菜单和任务管理器的“运行”命令,以及使用IE栏。
注意:这个策略只影响指定的界面。不会防止用户使用其他方法运行程序。
3.给“开始”菜单*
如果觉得Windows的“开始”菜单太臃肿,你完全可以通过组策略设置将不需要的菜单项从“开始”菜单中删除。
位置:\用户配置\管理模板\任务栏和“开始”菜单\
在组策略右侧窗格中,提供“从‘开始’菜单删除用户文件夹”、“删除到‘Windows
Update’的访问和”、从‘开始’菜单删除公用程序组、从‘开始’菜单中删除“我的文档”图标等配置项目。你只要将不需要的菜单项所对应的策略启用即可。
4.隐藏和禁用桌面上的所有项目
该策略可以从桌面上删除图标、快捷方式和其他默认的和用户定义的项目。
位置:\用户配置\管理模板\桌面\
该策略删除图标和快捷方式不防止用户用另一种方法启动程序或打开图标和快捷方式所代表的项目。
5.退出时不保存用户设置
该策略用于防止用户保存对桌面的某些更改。
位置:\用户配置\管理模板\桌面\
如果你启用这个设置,用户可以对桌面做某些更改,但有些更改,比如图标和打开窗口的位置、任务栏的位置及大小在用户注销后都无法保存。
6.启用/禁用“活动桌面”(Active
Desktop)
活动桌面是Windows 98(及以后版本)或安装了IE
4.0的系统中自带的高级功能,它最大的特点是可以设置各种图片格式的墙纸,甚至可以将网页作为墙纸显示。但出于对安全和*能的考虑,有时候我们需要禁用这一功能(并且防止用户启用它)。
位置:\用户配置\管理模板\桌面\Active
Desktop
提示:如果同时启用“启用Active Desktop”设置和“禁用Active Desktop”设置,“禁用Active
Desktop”设置会被忽略。如果“禁用Active Desktop和Web视图”设置(在“用户配置\管理模板\Windows组件\Windows资源管理器”)被启用,Active
Desktop就会被禁用,并且这两个策略都会被忽略。
7.从“我的电脑”中删除共享文档
当Windows用户在一个工作组中,一个“共享文档”图标会以Windows资源管理器的Web视图出现在“其他位置”和“在这台计算机上存储的其他文件”中。使用此设置,你可选择不显示这些项目。
位置:\用户配置\管理模板\Windows组件\Windows资源管理器\
如果启用此设置,“共享文档”文件夹将不会以Web视图方式显示或在“我的电脑”中出现。如果禁用或不配置此设置,当用户是“工作组”的一部分时,“共享文档”文件夹将会以Web视图方式显示或在“我的电脑”中出现。
8.不要将已删除的文件移到“回收站”
当Windows资源管理器中的一个文件或文件夹被删除时,该文件或文件夹的副本会被放在“回收站”里。使用此策略,你能改变此行为。
位置:\用户配置\管理模板\Windows组件\Windows资源管理器\
如果启用此设置,使用Windows资源管理器删除的文件或文件夹不会被放在“回收站”里,因此被永久删除。如果禁用或不配置此设置,使用Windows资源管理器删除的文件或文件夹会被放在“回收站”里。
三、利用组策略进行系统设置
1.登录时不显示欢迎屏幕
为了加快计算机启动的速度,我们完全可以通过组策略设置在每次用户登录时将Windows
XP欢迎屏幕隐藏。
位置:\用户配置\管理模板\系统\
要显示欢迎屏幕,请依次单击“开始→程序→附件→系统工具”选项,然后单击“开始”选项。要在不指定设置的情况下不显示欢迎屏幕,请在欢迎屏幕上的复选框中清除“在开始显示这个屏幕”选项。
注意:这项设置出现在“计算机配置”和“用户配置”文件夹中。如果配置这项设置,“计算机配置”中的设置比“用户配置”中的设置优先。
2.配置驱动程序查找位置
默认情况下,Windows将从本地安装、软盘驱动器、光盘驱动器、Windows
Update等位置搜索驱动程序。此设置配置查找到新硬件时Windows将要搜索驱动程序的位置。
位置:\用户配置\管理模板\系统\
如果启用此设置,你可以通过检查位置名称的相关复选框,删除这三个位置中的任何位置。如果禁用或不配置此设置,Windows将从本地安装、软盘驱动器、光盘驱动器和Windows
Update等位置中搜索驱动程序。
3.关闭自动播放
一旦你将媒体插入驱动器,自动运行就开始从驱动器中读取。这会造成程序的设置文件和在音频媒体上的音乐立即开始。该策略将关闭自动运行功能。
位置:\用户配置\管理模板\系统\
如果你启动这项设置,你还可以在CD-ROM驱动器禁用自动运行或在所有驱动器上禁用自动运行。
注意:这个设置出现在“计算机配置”和“用户配置”两个文件夹中。如果两个设置都配置,“计算机配置”中的设置比“用户配置”中的设置优先。
另外,此设置不阻止自动播放音乐
CD。
4.只运行许可的Windows应用程序
该策略可以限制用户可以运行的Windows程序。
位置:\用户配置\管理模板\系统\
如果你启用这个设置,用户只能运行你加入“允许运行的应用程序列表”中的程序。
这个设置只能防止用户从Windows资源管理器启动程序。无法防止用户用其他方式启动程序,例如任务管理器。如果用户可以访问命令提示符窗口,这个设置无法防止用户从命令窗口启动不允许在Windows资源管理器中运行的程序。
注意:要创建允许的文件列表,请单击“显示”按钮,在打开的对话框中单击“添加”按钮,然后输入应用程序的执行文件名称(例如,Winword.exe、Poledit.exe、Powerpnt.exe)。如图3所示。
5.删除任务管理器
当我们同时按下Ctrl+Alt+Del组合键将显示“Windows任务管理器”对话框。任务管理器可以让用户启动或终止程序、监视计算机*能、查看及监视计算机上所有运行中的程序(包含系统服务)、搜索程序的执行文件名、更改程序运行的优先顺序。在这里,我们可以通过组策略删除任务管理器。
位置:\用户配置\管理模板\系统\Ctrl+Alt+Del选项\
如果该设置被启用,并且用户试图启动任务管理器,系统会显示消息,解释是一个策略禁止了这个操作。
6.删除改变“密码”选项
该策略可以防止用户通过任务管理器更改系统密码。
位置:\用户配置\管理模板\系统\Ctrl+Alt+Del选项\
这个设置停用Windows安全设置对话框上的“更改密码”按钮。但是,用户在得到系统提示时依旧可以更改密码。管理员要求新密码和密码作废时,系统会提示用户输入新密码。
7.不允许运行Windows
Messenger
Windows XP自带有聊天工具Windows Messenger,但是,我们也有可能在系统中安装MSN
Messenger。该策略允许你禁用Windows Messenger。
位置:\用户配置\管理模板\Windows组件\Windows Messenger
如果启用该策略,Windows
Messenger将不会运行。如果禁止或不配置该策略,Windows
Messenger可以被使用。
注意:如果启用这个策略,远程协助无法使用Windows
Messenger。另外,这个策略也会出现在“计算机配置”中。如果两个设置都配置,“计算机配置”中的设置比“用户配置”中的设置优先。
8.关闭系统还原功能
系统还原是Windows
XP/2003中集成的强大功能,它在系统运行的同时,备份被更改的文件和数据,如果出现问题,系统还原使用户能够在不丢失个人数据文件的情况下,将计算机还原到以前的状态。默认情况下,系统还原处于打开状态。
但这一功能付出的代价也是相当大的,系统*能会明显下降,磁盘空间也会被占用很多。对于配置不高的计算机来说,强烈建议关闭此功能。
位置:\计算机配置\管理模板\系统\系统还原\关闭系统还原
启用此设置后即可关闭系统还原功能,并且不能访问“系统还原向导”和“配置界面”。
四、利用组策略调整上网设置
1.禁用导入和导出收藏夹
禁止用户使用“导入/导出向导”菜单项导入或导出收藏夹。
位置:\用户配置\管理模板\Windows组件\Inter
Explorer
如果启用该策略,“导入/导出向导”菜单项将无法导入/导出收藏夹和Cookie。如果禁用该功能或不对其进行配置,则用户可以通过单击“文件”菜单上的“导入和导出”菜单项,然后运行“导入/导出向导”,导入/导出IE中的收藏夹。
注意:如果启用该策略,用户仍然可以查看“导入/导出向导”,但当用户单击“完成”按钮时,将出现说明该功能已被禁用的提示信息。
2.禁用更改“高级”选项卡的设置
禁止用户更改“Inter
选项”对话框中“高级”选项卡上的设置。
位置:\用户配置\管理模板\Windows组件\Inter
Explorer
如果启用该策略,则用户无法更改高级Inter设置,如安全、多媒体和打印。用户无法选中“高级”选项卡上的复选框,也不能清除这些复选框的复选标记。如果禁用该策略或不对其进行配置,则用户可以选择或清除“高级”选项卡上的设置。
如果设置了位于\用户配置\管理模板\Windows组件\Inter
Explorer\Inter控制面板中的“禁用高级页”策略,则无需设置该策略,因为“禁用高级页”策略将删除界面上的“高级”选项卡。
3.对拨号连接使用“自动检测”属*
自动检测在浏览器第一次启动时使用
DHCP(动态主机配置协议)或DNS服务器来自定义浏览器。该策略指定自动检测用于用户的拨号设置的配置。
位置:\用户配置\管理模板\Windows组件\Inter
Explorer
如果启用该设置,自动检测将配置用户的拨号设置。如果禁用该配置或不配置,自动检测不会配置用户的拨号设置,除非用户指定。
4.禁用Inter连接向导
禁止用户运行Inter连接向导。
位置:\用户配置\管理模板\Windows组件\Inter
Explorer
如果启用该策略,“Inter选项”对话框中“连接”选项卡上的“建立连接”按钮将变灰。用户也无法通过单击桌面上的“连接到Inter”图标或单击“开始→程序→附件→通讯”,然后单击“Inter连接向导”运行Inter连接向导。如果禁用该策略或不对其进行配置,则用户可以通过运行Inter连接向导,更改连接设置。
注意:该策略与位于\用户配置\管理模板\Windows
组件\Inter
Explorer\Inter控制面板中的“禁用连接页”策略有相似之处,后者将删除界面上的“连接”选项卡。从界面上删除“连接”选项卡并不会妨碍用户从桌面或“开始”菜单中运行Inter连接向导。
5.禁用表单的自动完成功能
禁止IE自动完成表单,如填写用户以前在网页中输入过的姓名或密码。
位置:\用户配置\管理模板\Windows组件\Inter
Explorer
如果启用该策略,“表单”复选框将变灰。单击“Inter选项”对话框中“内容”选项卡上的“自动完成”按钮,即可出现“表单”复选框。如果禁用该策略或不对其进行配置,则用户可以启用表单的自动完成功能。
位于\用户配置\管理模板\Windows组件\Inter
Explorer\Inter控制面板中的“禁用内容页”策略的优先级高于该策略。如果启用了“禁用内容页”策略,该策略将被忽略,因为“禁用内容页”策略将删除“控制面板”中“Inter
Explorer属*”对话框中的“内容”选项卡。
注意:如果用户已开始使用启用了表单自动完成功能的浏览器后,再启用该策略,则不会清除用户已经使用表单自动完成功能在表单中所填写的内容。
6.配置媒体浏览栏属*
媒体浏览器栏播放来自Inter的音乐和视频内容,该策略允许管理员启用和禁用媒体浏览器栏和设置默认自动播放。
位置:\用户配置\管理模板\Windows组件\Inter
Explorer
如果禁用媒体浏览器栏,用户无法显示媒体浏览器栏。自动播放功能也被禁用。当用户在IE中单击一个,系统中的默认媒体客户端将播放内容。如果启用媒体浏览器栏或不配置,用户可以显示和隐藏媒体浏览器栏。
管理员也可以打开和关闭自动播放功能。该设置只在媒体浏览器栏启用时应用。如果选择,媒体浏览器栏将在用户单击媒体时自动显示和播放媒体内容。如果不选择,系统上的默认媒体客户端将播放内容。
7.禁用右键快捷菜单
禁止在用户使用IE过程中单击鼠标右键时出现快捷菜单。
位置:\用户配置\管理模板\Windows组件\Inter
Explorer\浏览器菜单
如果启用该策略,在用户指向网页,然后单击鼠标右键时将不出现快捷菜单。如果禁用该策略或不对其进行配置,则用户可以使用快捷菜单。
8.自定义IE标题栏
我们可以利用组策略自定义出现在IE和OE标题栏中的文本。无论软件*是否有OE或者用户计算机上已经安装了OE,都将更新OE标题栏。
位置:\用户配置\管理模板\Windows设置\Inter
Explorer维护\浏览器用户界面\浏览器标题
请在打开的对话框中选中“自定义标题栏”选项,然后在“标题栏文本”框中键入希望的文本。
注意:在选择某个位图时,要确保颜色与文本的对比度。这为用户确保了更高程度的可读*。
9.自定义IE工具按钮
我们可以利用该策略个*化出现在IE中的工具栏,给你一定的灵活*和设计机会。可以使用的元素包括用于标准工具栏按钮(例如“搜索”和“历史”)的工具栏背景和图标外观。
位置:\用户配置\管理模板\Windows设置\Inter
Explorer维护\浏览器用户界面\浏览器工具栏自定义
在打开的对话框中单击“添加”按钮,然后在打开的对话框中在“工具栏标题(必需)”框中,键入用户鼠标悬停在工具栏按钮上时出现的文本。必须指定该按钮的标题或标签。建议的最大长度是10个字符。
在“工具栏操作(作为脚本文件或可执行文件,必需)”框中,键入脚本文件或可执行文件的名称,或者单击“浏览”按钮查找文件。必须指定用户单击工具栏按钮时运行的脚本文件或可执行文件。
在“工具栏颜色图标(必需)”框中,键入表示按钮为活动状态的文件的名称,或者单击“浏览”按钮查找该文件。必须指定出现在工具栏上的按钮的彩色图标。图标由活动和非活动状态的20×20像素的图像组成。
在“工具栏灰度图标(必需)”框中,键入出现在黑白监视器上的工具栏的灰度图标文件名和位置,或者单击“浏览”按钮查找文件。必须指定显示在工具栏上按钮的灰度图标。
选中“默认情况下,该按钮应显示在工具栏上”复选框来显示默认情况下用户浏览器中的工具栏按钮。
五、利用组策略设置优化网络环境
1.禁止访问网络连接组件的属*
“本地连接属*”对话框包括连接时使用的网络组件列表。要查看或更改组件属*,请单击组件名称,然后单击组件列表下面的“属*”按钮,如图4所示。该策略确定用户是否可以更改由网络连接使用的组件属*,它确定是否启用用于网络连接组件的“属*”按钮。
位置:\用户配置\管理模板\网络\网络连接\
如果启用此设置(并启用“为管理员启用网络连接设置”设置),就会为管理员禁用“属*”按钮。无论“为管理员启用网络连接设置”设置启用与否,用户都不可以访问连接组件。如果禁用或不配置“为管理员启用网络连接设置”。
如果禁用或不配置此设置,将为用户启用“属*”按钮。
2.禁用TCP/IP高级配置
确定用户是否可以配置TCP/IP
设置。
位置:\用户配置\管理模板\网络\网络连接\
如果启用此设置(并启用“为管理员启用网络连接设置”设置),就对所有用户(包括管理员)禁用“Inter协议(TCP/IP)
属*”对话框上的“高级”按钮。因此,用户不能打开“高级TCP/IP设置”对话框并修改IP设置(例如,DNS和WINS服务器信息)。如果禁用此设置,则启用“高级”按钮,并且所有用户均可打开“高级TCP/IP设置”对话框。
注意:此设置会由禁止访问连接属*或连接组件属*的设置取代。如果将这些策略设置为拒绝访问连接属*对话框或用于连接组件的“属*”按钮,用户就无法访问用于TCP/IP配置的“高级”按钮。不管此设置如何,非管理员用户均不具有访问用于网络连接的TCP/IP高级配置的权限。在用户退出系统之前,将此设置从“启用”更改为“未配置”不会启用“高级”按钮。
3.禁止添加或删除用于网络连接
二、Linux系统的机子作服务器怎么配置啊源文件在哪儿存的啊
这里比较多.
案例一:
用LINUX架设FTP服务器
作者:level发表于:2004-02-27 13:35:50
以前自己弄的东西,现在帖出来,希望对大家有点用:)
1.1什么是FTP:文件传输协议原理
1.1.1命令选择
1.1.2命令格式
1.2 wu-Ftpd的安装
1.3让FTP服务器运转起来
1.4配置文件的设置
1.4.1/etc/ftpaess的设置
1.4.2/etc/ftpusers和/etc/ftphosts的设置
1.4.3/etc/ftpconversions设置
1.4.1 wu-ftp的相关程序
1.5开设只能FTP的帐户
1.6设置虚拟FTP主机
什么是FTP:文件传输协议原理
互联网文件传输协议(File Transfer Protocol,FTP)标准是在RFC959说明的。该协议定义了一个从远程计算机系统和本地计算机系统之间传输文件的一个标准。一般来说,传输文件的用户需要先经过认证以后才能登录网站,然后方能访问在远程服务器的文件。而大多数的FTP服务器往往提供一个GUEST的公共帐户来允许没有远程服务器的用户可以访问该FTP服务器。
一个FTP会话通常包括五个软件元素的交互。
用户接口提供了一个用户接口并使用客户端协议解释器的服务
客户 PI客户协议解释器,其项远程服务器协议机发送命令并且驱动客户数据传输过程
服务器PI服务器协议解释器,响应客户协议机发出的命令并驱动服务器端数据传输过程
客户 DTP客户数据传输过程,其负责完成和服务器数据传输过程及客户端本地文件系统的通信
服务DTP服务器数据传输过程,其负责完成和客户数据传输过程及服务器端文件系统的通信
在RFC 959中,一般使用用户这个名词来指代客户。RFC 959定义了客户PI和服务器PI交互的方式和规范。用户接口与PI和DTP交互的机理都并不是协议标准的一部分。PI和DTP往往通常是在同一个程序模块中实现的。
在FTP会话中,一共会存在有两个独立的网络连接,一个是由两端的PI使用的,另一个是由两端的DTP使用的。PI之间的连接一般被称作控制连接(control connection),DTP之间的连接被称做数据连接(data connection)
使用TCP服务的控制和数据连接
通常情况下,FTO服务器监听端口号21来等待控制连接建立请求。而数据连接端口号的选择依赖于控制连接上命令。通常是客户发送一个控制消息来指定客户监听并等待服务器端发送数据连接建立请求的端口号。
对数据传输和控制命令传输来使用不同的独立连接有如下优点:两个连接可以选择不同的合适服务质量,如:对控制连接来说高需要更小的延迟时间,对数据连接来说需要更大的数据吞吐量;而且可以避免实现数据流中的命令的通明*及逃逸。
当传输建立时,总是由客户端首先发起。然而客户和服务器都可能是数据发送者。除了传输用户请求文件,数据传输过程同样在客户端请求列服务器端目录结构时建立。
1.1.1命令选择
当一个传输建立时,一般通常需要指定四个方面的属*:
文件类型
该属*指定如何将文件的数据匹配成适于传输的格式,一共有四种可能的选择:
ASCII文件类型
在发送端,文件从本地文本文件格式转换为 NVT ASCII格式,每行结束有一个CR/LF对来标识。在接收端,再被转换为本地的文本格式。
这说明了为什么Unix主机之间传输文本文件为何传输的数据量要大于文件的实际大小。若传输一段端或传输两端都不使用ASCII文本编码,则是应该由数据传输过程来实现本地编码和NVT ASCII编码之间的转换。
EBCDIC文件类型
类似于ASCII,区别仅仅上使用EBCDIC字符编码
图象(或二进制)文件类型
文件以本地传输内容传输,在远端以同本地完全相同的内容存储。
本地文件系统
用在字节大小不是8位的环境下。没字节位数由发送者指定。
在实际应用中,只有ASCII和图象格式使用的较多。
格式控制
该属*是和将文本文件最后传送到打印设备相关的,其中有多种方式来实现将垂直格式信息编码到文件中,包括指示一个新页开始的方式。有如下方式可供选择:
无须打印格式控制,这是缺省值
Tel打印控制,在tel协议中定义的控制字符包含在数据流中。.
Fortran打印控制,
该属*在实际中很少使用。
结构
文件可以拥有内部结构,在传输中该结构被保留。由数据传输过程来负责在传输中的结构及本地结构之间相互匹配,有三种可能*:
文件结构
这实际上意味着文件被看作没有内部结构的连续的字节流。
记录结构
文件是有一系列记录组成的结构。这只适用于文本文件。
页面结构
也可以称做块结构。每一页都伴随一个页号来传输,从而以顺序的方式来完成传输。
页面结构很少在实际中遇到。记录结构也不是很常见。对于文本文件使用ASCII文件类型可以获得相同的效果。
传输模式
该属*可以取三个不同的值:
流模式
文件的以字节流的方式传输。
块模式
文件以一个块连接一个块的方式传输,每个块的开头都有一个头。
压缩模式
一个简单的运程长度压缩编码被应用,来压缩连续的相同的字节。
实际中,一般只有流模式被使用。而压缩一般通过使用各种其他的工具程序来获得。
当一次传输被建立,客户端一般指定一个或多个前面说明的属*。若服务器端不能支持某个选项,服务器将用一个错误信息来响应客户端,并不具有协商机制。
FTP提供了充足的命令来使用户和远程建立连接并访问远程文件系统。
1.1.2命令格式
命令以NVT ASCII串的格式被传输。每个命令以三个或四个大写的NVT ASCII字符开始,后面带有选项参数和一个CR/LF对来标识命令结束
应答由三个NVT ASCII数字及一个选项消息组成。
一个长的应答也许会有多个消息组成,第一个消息的三个数字后带有一个破折号,最后的消息不带有破折号。中间的消息无须携带三个数字,但是如果带了三个数字,则也需要破折号。
下面是所有的命令的列表。带有星号的命令一般很少使用,所以往往在具体实现中不支持。
String Meaning
ABOR放弃传输
*ACCT某些系统将帐号和用户与文件系统相关联
*ALLO为即将传送的文件分配空间。后面携带的参数来确定字节数
*APPE将文件附加到已经存在的文件后面
CDUP在远程系统上将当前目录切换到上级父目录
CWD改变远程系统的工作目录
DELE删除远程系统的文件
HELP读取服务器的帮助信息,如:支持的命令的列表
LIST在一个新建立的数据连接上发送当前工作目录下的文件名列表
MKD创建目录
MODE指定传输模式,可携带的参数是:S、B或 C.
NLST在一个新建立的数据连接上发送一个当前目录下的“完全”的目录列表
NOOP空操作,防止连接断掉
PASS提供一个用户登录密码,必须立即跟随在USER命令后
*PASV指定服务器数据传输过程监听等待客户端的数据连接连接建立请求
PORT指定客户端监听等待服务器端建立的连接的端口号
PWD显示服务器端的当前工作目录名
QUIT退出登录并终止连接
*REIN重新初始化,退出登录但是并不断开连接,后面必须随后发出一个新的USER命令
*REST从服务器的一个标识处重新开始传输
RETR从远程系统取回一个文件
RMD删除一个目录
*RNFR指定要被命名的文件的老的路径名,随后必须是一个RNTO命令
*RNTO指定要被命名的文件的新的路径名
*SITE站点特有的服务器提供的服务
*SMNT结构加载,提供一个文件系统结构的远程系统路径名
*STAT状态信息
STOR上载一个文件到服务器上,若文件已经存在则覆盖
*STOU上载一个文件到服务器上,不覆盖已经存在的文件
STRU指定文件结构,参数可以是F、R或P.
*SYST报告远程系统的操作系统类型
TYPE指定文件类型,参数可以是A、E、I、L只有TYPE A和TYPE I常用
控制连接命令应答有如下形式:
Type Description
1yz主动初步应答,在发送另一个命令以前等待另一个应答
2yz主动最后应答,最后一个命令成功结束
3yz主动中间应答,必须再发送一个命令
4yz暂时被动应答,要求的动作当时不能完成,但可以重试
5yz永久被动应答,要求的动作不能完成,不应该重试
"y"数字编码进一步的信息
Digit Meaning
0语法错误
1信息
2连接状态
3认证和记帐
4保留
5 File s文件系统状态
下面是一些典型的消息:
Number Meaning
125数据连接打开,传输开始
200命令OK
331用户名OK需要输入密码
425不能打开数据连接
452错误写文件
500语法错误-不可识别的命
具体的详细情况可以参见RFC
wu-Ftpd的官方权威站点是:。
1.2 wu-Ftpd的安装
当前,Linux环境下有许多ftp服务器软件可供选择,但是目前最常见的仍然是wu-Ftpd服务器。这里主要讨论该软件的安装和配置。
一般来说,在安装了linux时,缺省都会自动安装wu-ftpd服务器,但是有时候为了某种需要也需要自己亲自重新安装该服务器软件。安装wu-Ftpd有两方式,一种是安装rpm形式的发布包;一种是自己动手去编译生成Ftp服务器。
rpm包可以在处得到,以rpm包方式安装非常简单,只需要在按下面的简单的几个步骤就可以完成,假设得到的rpm包存放在/tmp目录下:
#cd/tmp
#rpm-ivh wu-ftpd-1.6.0-9.i386.rpm
压缩的源代码可以在出得到。这里我们以最新的1.6.0为例说明如何编译安装wu-ftpd。
1、解开源代码
1)将压缩的源代码拷贝到/usr/src下
#cp wu-ftpd.1.6.0.tar.gz/usr/src
2)对压缩文档进行解压缩:
#tar xvfz wu-ftpd.1.6.0.tar.gz
#cd wu-ftpd-1.6.0
2、敲入命令"./build xxx",可以在这里指定一个C语言编译器:"./build CC=yyy xxx" yyy指用来替代""的其他的编译器。对于linux环境下的g编译器,命令应该为:"./build CC=g xxx"
#build CC=g lnx
xxx可以取下面的值:
gen:通用make(当移植到心得系统时需要拷贝它)
aix: IBM AIX
aux: AU/X
bdi: BSD/OS
bsd: BSD
dec: DEC Unix 3.X
du4: DEC Unix 4.X or later
dyn: Dynix
fbs: FreeBSD 1.0 or later
hiu: Hitachi Unix
h*: HP-UX
lnx: Linux(tested on 1.0.30)
nbs: NetBSD 1.X
nx2: NeXTstep 1.x
nx3: NeXTstep 3.x
osf: OSF/1
osx: Mac OS X
ptx:???
sco: SCO Unix 3.2v4.2/SCO OpenServer 5
sgi: SGI Irix 4.0.5a
sny: Sony NewsOS
sol: SunOS 5.x/ Solaris 1.x
s41: SunOS 4.1.x
ult: Ultrix 4.x
uxw: UnixWare 1.1 or later
clean: Clean up object files and such to reduce disk space after building.
install: Install ftpd
Copying Makefiles.
Linking src/config.h
Making support library.
g-O3-fomit-frame-pointer-fno-strength-reduce-pipe-c strcasestr.c
g-O3-fomit-frame-pointer-fno-strength-reduce-pipe-c authuser.c
g-O3-fomit-frame-pointer-fno-strength-reduce-pipe-c snprintf.c
rm-f libsupport.a
ar cq libsupport.a strcasestr.o authuser.o snprintf.o
ranlib libsupport.a
:::
:::
:::
编译成功以后将生成如下几个可执行文件:
ftpd FTP服务器程序
ftpshut用于关闭FTP守护进程的程序
ftpcount记数程序,显示目前ftp登录的人数
ftpwho查看当前FTP服务器的连线情况,类似与系统的who命令,只不过是查看ftp登录的用户
ckconfig检查FTP的设置是否正确
ftprestart重新启动ftp服务器
privatepw改变wu_ftpd组访问文件信息
3、若只是升级到一个新的版本,应该首先备份系统所有的旧的配置文件。否则这些配置文件将被覆盖。为了适应自己的需求,应当编辑样本配置文件来满足自己的要求,具体配置文件的需求参见后面的内容。
4、以超级用户身份敲入命令"./build install"
#build install
installing binaries.
install-c-o bin-g bin-m 110 bin/ftpd/usr/sbin/in.ftpd
install-c-o bin-g bin-m 111 bin/ftpshut/usr/bin/ftpshut
install-c-o bin-g bin-m 111 bin/ftprestart/usr/bin/ftprestart
install-c-o bin-g bin-m 111 bin/ftpcount/usr/bin/ftpcount
install-c-o bin-g bin-m 111 bin/ftpwho/usr/bin/ftpwho
install-c-o bin-g bin-m 111 bin/privatepw/usr/bin/privatepw
installing manpages.
install-c-o bin-g bin-m 444 doc/ftpcount.1/usr/man/man1/ftpcount.1
install-c-o bin-g bin-m 444 doc/ftpwho.1/usr/man/man1/ftpwho.1
install-c-o bin-g bin-m 444 doc/ftpaess.5/usr/man/man5/ftpaess.5
install-c-o bin-g bin-m 444 doc/ftpconversions.5/usr/man/man5/ftpconversio5
install-c-o bin-g bin-m 444 doc/ftphosts.5/usr/man/man5/ftphosts.5
install-c-o bin-g bin-m 444 doc/xferlog.5/usr/man/man5/xferlog.5
install-c-o bin-g bin-m 444 doc/ftpd.8/usr/man/man8/ftpd.8
5、编辑"/etc/id.conf"文件,指向新的ftpd守护进程,大多数情况下,这一步是不必的,因为在build install时,会将新的守护进程拷贝覆盖老的守护进程。若希望使用ftpd的增强的扩展功能,应该在这行最后加上"-a"选项。
ftpd守护进程一般可以携带如下参数,也可以不带任何参数:
-d debug参数,当ftpd守护进程出现错误时,会将错误信息写入到系统记录文件/usr/adm/syslog中
-l记录每次ftp会话信息到/usr/adm/messages中
-t设置当FTP客户端多久无操作就自动断线,这个参数后面指定等待的时间,如-t 600表示若客户
端若连续10分钟没有动作就自动断线,缺省值是15分钟
-a使用ftpaess配置文件内容对ftpd进行更详细复杂的设置
-A不使用ftpaess配置文件的设置,缺省值是-A
-i当客户端有上载文件的动作时,就记录在文件xferlog中
-L使用户连接ftp服务器期间使用的所有命令都被记录到/usr/adm/messages中
6、拷贝tar、gzip、gunzip、press、unpress等文件到"~ftp/bin"中,拷贝"ls"为"~ftp/bin/ls"。
7、若是第一次安装,使用"ckconfig"程序查找ftpd的各种配置文件存放目录:ftpconversions、ftpusers、和ftpgroups。在"doc/examples"目录下有样本文件。"ckconfig"是一个可执行程序,确保修复该程序检测到的任何问题。
1.3让FTP服务器运转起来
一般来说,只要正确地编译安装了wu-ftpd,该服务器就可以正常运行。用户可以通过FTP命令从各种系统上连接该服务器。
1.4配置文件的设置
1.4.1/etc/ftpaess的设置
这个配置文件是FTP服务器最重要的配置文件,这个文件的设置决定了FTP是否可以正常工作及许多访问权限的设置。如下面的例子所示:
class all real,guest,anonymous*
limit all 10 Any/etc/msgs/msg.dead
readme README* login
readme README* cwd=*
message/wele.msg login
message.message cwd=*
press yes all
tar yes all
log mands real
log transfers anonymous,real inbound,outbound
shutdown/etc/shutmsg
email user@hostname
下面是设置文件各个指示(directive)的详细说明:
指示: loginfails n
密码输入n次就自动断开连接
指示:autogroup组名类别 [...]
若一个匿名用户属于任何一个参数类别的类,则FTP服务器将实施setegid()调用使其属于这个组名定义的组,这样做是为了实现某些特定类别的匿名用户可以访问一些只允许本组及拥有者可以访问的文件。组名必须是/etc/group内定义的有效组。
指示: class类名类别(real、guest、anonumous) IP
这个指示是设定FTP服务器用户的类别。
FTP服务器的用户可以分为以下三种类别:
real在该FTP服务器上拥有合法帐户的用户;
guest另外定义某些特定组的用户;
anonymous匿名用户;
举例说明:
class outworld real,guest,anonymous*
定义一个名为outworld的类,该类包含三种类型的用户:real,guest,anonymous。该类在后面的指示中使用。其中"*"是类定义中的IP部分,表示网络上的所用主机。也就是说明允许任何主机连接FTP服务器。若希望对访问FTP的主机进行一定的权限设置,可以这样做:
class friend real,guest,anonymous*.linuxaid.. 201.101.13.*
指定义一个friend类,该类从*.linuxaid..及201.101.13.*访问FTP服务器时有特定的权限设定。
指示: limit类别人数时间文件名
该指示设定在某个类在某个时间内允许连接FTP服务器的人数的限制,并指定当连接人数超过限制,后面的用户连接时显示给用户的消息信息。
举例说明:
limit local 20 Any/tmp/message/msg.toomany
上面的例子限定local这个类中的拥护同一时间只能有20人同时上网连接这台FTP服务器,若超过20人则显示/tmp/message/msg.toomany的文件的内容
limit outworld 100 MoTu|Any 2200-0800/tmp/message/msg.limit
这个例子限制outworld这个类的用户只能在周一周二或每天的晚上10点到第二天早上的8点之间访问该FTP服务器,而且同时连线的人数不可以超过100人,若超过100人,则显示/tmp/message/msg.limit的文件的内容
/tmp/message/msg.limit的内容为:
对不起!本服务器只允许匿名用户在周一周二全天及其他每天晚上10点到第二天早上的8点之间访问,当前时间为%T;而且只允许同时有%M个匿名用户访问,当前有%N个用户在访问该服务器。请在合适的时间访问本FTP服务器,谢谢!
这里的%M是一个变量,代表同时允许连接的人数的上限,FTP服务器可以用前面设置的值自动替代该变量,其他允许的变量包括:
%T本地当前时间;
%F CWD所在分区剩余空间,以KB为单位。但该变量不是所有系统都支持。
%C当前工作目录;
%E定义在/etc/ftpaess文件中的系统管理员的E-mail;
%R远端主机名;
%L本*机名;
%U登录时所给的用户名;
%N这个类别当前连接的用户数目;
利用这些参数,可以编辑一个详细的说明文件,这样可以让用户清楚当前服务器资源使用情况。
指示: readme说明文件指令
当用户执行指定的"指令"时,系统就会自动显示所设置的说明文件;
举例说明:
readme README* login
当用户执行登录动作时,只要以README开头的文件内容就会显示给用户。
readme README* cwd=*
表示用户切换目录时(cwd),只要以README开头的文件内容就会显示给用户。
通常README*应该是该目录下文件的说明,让登录的用户可以清楚地知道目录中存放了那些文件;
指示: message文件名指令
使当用户执行特定的"指令"时,系统就将指定的文件内容显示给用户;
举例说明:
message/msg.wele login
指定当用户登录时,将自动显示/tmp/message/msg.wele的内容给用户,注意这里的/msg.wele指ftp根目录下的msg.wele文件,即/home/ftp/msg.wele。
message/wele cwd=*
指定当用户切换另一个目录时,只要目录中有msg.wele文件,就显示给用户
指示: press(yes/no)类别
设置哪个类别的用户可以使用压缩功能;
举例: press yes local outworld
允许local和outworld两个类别的用户使用压缩功能
指示: tar(yes/no)类别
指定哪个类别的用户可以使用tar功能;
指示: passwd-check(none/trivial/rfc822)(enforce/warn)
设定当用户以匿名方式登录服务器时密码的方式:
none表示不对密码进行验证,任何密码都可以登录;
trival表示只要密码中包含@就可以登录;
rfc822表示密码一定要符合rfc822中规定的E-mail格式才能登录。如:
enforce表示输入的密码不符合指定格式就不允许登录;
warn表示输入的密码不符合指定格式显示警告信息,但仍然允许登录;
指示: log mands类别(read/guest/anonumous)
设定那些用户登录时,所使用的操作会被记录在文件/usr/adm/xferlog中。
指示: log transfer类别(read/guest/anonumous)(inbound/outbound)
设定指定的用户类别在上载还是时的相关信息被记录到/usr/adm/xferlog中。
举例说明:
log transfer anonymous,real inbound,outbound
当anonymous或real用户登录后,上载和的操作会被记录在文件/usr/adm/xferlog中。
指示: shutdown文件名
FTP服务器关闭的时间可以后面的文件名中指定的文件中指定,设定的时间一到,便无法登录FTP服务器了,只有将这个文件删除才能恢复FTP服务器。文件的格式可以由命令ftpshut来建立。
指示: delete(yes/no)类别(real/anonymous/guest)
设定是否允许指定用户使用delete命令。
举例说明:
delete no guest,anonymous
设定大概内登录的用户为guest或anonymous上不允许执行delete命令。
指示: overwrite(yes/no)类别(real/anonymous/guest)
设定是否允许指定用户使用overwrite指令。
指示: reame(yes/no)类别(real/anonymous/guest)
设定是否允许指定用户使用readme指令。
指示: chmod(yes/no)类别(real/anonymous/guest)
设定是否允许指定用户使用chmod指令。
指示: umask(yes/no)类别(real/anonymous/guest)
设定是否允许指定用户使用umask指令。
指示: upload [absolute|relative] [class=]... [-]
["dirs"|"nodirs"] []
定义允许用来上载的目录。若允许上载,所有新上载的文件的所有者及组由和定义,访问权限将为。对于覆盖老文件的上载文件将保持原来的所有者及访问权限信息。文件上载的权限信息由最大匹配目录项定义,如:
upload/var/ftp* no
upload/var/ftp/ining yes ftp daemon 0666
upload/var/ftp/ining/gifs yes jlc guest 0600 nodirs
would only allow uploads into/ining and/in-
:
将只允许/ining和/in-ing/gifs目录上载。上载到/ining目录下的文件将属于ftp/daemon,访问权限为0666;而上载到/ining/gifs下的文件将属于jlc/guest,访问权限为0600。应该注意的是必须匹配"ftp"用户的passwd文件中的主目录。
"dirs"和"nodirs"选项用来设定是否允许在该目录下创建新的子目录。但是缺省是允许创建子目录的。
设定新创建的目录的访问权限,缺省为0777。
上载指示只能施用于用户主目录(chroot()的参数)等同于的用户,可以为*来表示匹配任何主目录。
和也可能指定为*,在这种情况下,任何上载的文件或创建的目录的所有者都等于起父目录的所有者。
选项[absolute|relative]指定是是绝对路径还是相对于chroot()参数指定的目录的相对路径。缺省是绝对路径。也可以指定任意多个class='来进行进一步限定。若指定了任何目录,则该上载指示只影响这些组的用户。
指示: alias目录别名目录路径
给指定目录设置一个别名,当切换目录时可以使用别名。
举例说明:
alias xwin/pub/linux/xwindows
为/pub/linux/xwindows设置别名xwin,登录以后只要输入命令cd xwin就可以进入该目录。
指示: cdpath目录
该功能和系统的PATH环境变量设置类似,当cd/etc时,FTP首先查看当前目录下是否有etc子目录,无则看是否有别名,若没有则根据该指示设定的路径查询。
举例说明:
cdpath/pub/linux
cdpath/pub
cdpath/
搜索顺序为:/pub/linux/pub/
指示: path-filter类别(real/anonymous/guest)目录
设定上载文件名限制。
举例说明:
path-filter anonymous/etc/pathmsg^[-A-Za-z0-9_\.]*$^\.^-
path-filter guest/etc/pathmsg^[-A-Za-z0-9_\.]*$^\.^-
设置限制anonymous和guest用户上载的文件名只能包含A-Z、a-z、0-9和._-,名字以"."和"-"开头的文件不能上载到服务器上。
指示: guestgroup [...]
guestuser [...]
realgroup [...]
realuser [...]
对于guestgroup指示,若一个真实(real)用户属于任何一个所指定的组,则其FTP会话都被FTP服务器以匿名的方式进行处理。也就是说,chroot()被调用,用户不再允许发出USER和 PASS命令。必须是有效的组。
这里用户的home目录必须被争取的设置,要确实和匿名用户一致,/etc/passwd中的相关项的home目录被分割为两个部分,第一部分是chroot()调用的根目录参数,第二个是用户相对于根目录的主目录,两部分之间以"/./分隔",如:
guest1::100:92:Guest Aount:/ftp/./ining:/etc/ftponly
当guest1成功登录进入,FTP服务器将调用chroot("/ftp")然后调用chdir("/ining")。则guest1就如同匿名用
三、linux怎么启动mysqld服务器
一、以非特权用户运行MySQL服务器
在讨论如何启动MySQL服务器之前,让我们考虑一下应该以什么用户身份运行MySQL服务器。服务器可以手动或自动启动。如果你手动启动它,服务器以你登录Unix(Linux)的用户身份启动,即如果你用paul登录Unix并启动服务器,它用paul运行;如果你用su命令切换到root,然后运启动服务器,则它以root运行。然而,大多数情况下你可能不想手动启动服务器,最有可能是你安排MySQL服务器在系统引导时自动启动,作为标准引导过程的一部分,在Unix下,该引导过程由系统的Unix用户root执行,并且任何在该过程中运行的进程均以root权限运行。
你应该牢记MySQL服务器启动过程的两个目标:
你想让服务器以某个非root用户运行。一般地,你想限制任何运行进程的能力,除非确实需要root权限,而MySQL不需要。
你想让服务器始终以同一个用户运行,此时用一个用户而其他时候以另一个不同的用户运行服务器是很不方便的,这造成了为文件和目录以具有不同属主的数据目录下被创建,并可能导致服务器不能访问数据库或表,这看你以哪个用户运行。统一用同一个用户运行服务器是你避免这个问题。
要一个普通的非特权用户运行服务器,按照下列步骤:
选择一个用于运行服务器的用户,mysqld可以用任何用户运行。但在概念上较清晰的是为MySQL操作创建一个单独的用户。你也可以特别为MySQL选择一个用户组。本文使用mysqladm和mysqlgrp分别作为用户名和用户组名。
如果你已在自己的账号下安装好了MySQL且没有系统上的特殊管理权限,你将可能在你自己的用户ID下运行服务器。在这种情况下,用你自己的登录名和用户组代替mysqladm和mysqlgrp。
如果你在RedHat Linux上用rpm文件安装MySQL,该安装将自动创建一个名为mysql的账号,用该账号代替mysqladm。
如果必要,用系统通常的创建用户的过程创建服务器账号,你需要用root做它。
如果服务器在运行,停止它。
修改数据目录和任何子目录和文件的属主,这样使得mysqladm用户拥有它们。例如,如果数据目录是/usr/local/var,你可以如下设置mysqladm的属主(你需要以root运行这些命令):
#cd/usr/local/var
#chown-R mysqladm.mysqlgrp
修改数据目录和任何子目录和文件的权限,使得它们只能由mysqladm用户访问。如果数据目录是/usr/local/var,你可以设置由mysqladm拥有的任何东西:
# cd/usr/local/var
# chmod-R go-rwx
当你设置数据目录及其内容的属主和模式时,注意符号连接。你需要顺着它们并改变它们指向的文件或目录的属主和模式。如果连接文件的目录位于不属于你的地方,会有些麻烦,你可能需要root身份。
在你完成了上述过程后,你应该确保总是在以mysqladm或root登录时启动服务器,在后者,确定指定--user=mysqladm选项,使服务器能将其用户ID切换到mysqladm(同时也适用于系统启动过程)。
--user选项在MySQL 3.22中引入,如果你有老版本,你可以使用su命令告诉系统在以root运行时在特定的用户下运行服务器。
二、启动服务器的方法
在我们确定了用于运行服务器的账号后,你可以选择如何安排启动服务器。你可以从命令行手动或在系统引导过程中自动地运行它。对于启动服务器由三种主要方法:
调用mysqld。
这可能是最不常用的方法,建议不要多使用,因此本文不详细介绍。
调用safe_mysqld脚本。
safe_mysqld试图确定服务器程序和数据目录的位置。然后用反映这些值的选项调用服务器。safe_mysqld将标准出错设备从服务器重定位到数据目录下的一个出错文件,使得有它的一条记录。在启动服务器后,safe_mysqld也监视它并且如果它死掉则重启它。safe_mysqld常用于BSD风格的Unix系统。
如果你以root或在系统引导期间启动sqfe_mysqld,出错日志由root拥有,这可能在你以后试图用一个非特权用户调用safe_mysqld时将导致“permission denied”(权限拒绝)错误,删除出错日志再试一下。
调用mysql.server脚本。
这个脚本通过有意用于System V的启动和停止系统上的safe_mysqld.mysql.server来启动服务器,该系统包含几个包含在机器进入或退出一个给定运行级别时被点用的脚本目录。它可以用一个start或stop参数点用以表明你是想启动还是想停止服务器。
safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。mysql.server脚本安装在MySQL安装目录下的share/mysqld目录下或可以在MySQL源代码分发的support_files目录下找到。如果你想使用它们,你需要将它们拷贝到适当的目录下。
对BSD风格的系统(FreeBSD,OpenBSD等),通常在/etc目录下有几个文件在引导时初始化服务,这些文件通常有以“rc”开头的名字,且它有可能由一个名为“rc.local”的文件(或类似的东西),特意用于启动本地安装的服务。在这样的系统上,你可能将类似于下列的行加入rc.local文件中以启动服务器(如果safe_mysqld的目录在你的系统上不同,修改它即可):
if [-x/usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld&
fi
对于对于System V风格的系统,你可以通过将mysql.server放在/etc下适当的启动目录下来安装它。如果你运行Linux并从一个RPM文件安装MySQL,这些已经为你做好了,否则将脚本安装在主启动目录下,并将指向它的连接放在适当的运行级别目录下。你也可以使脚本只能由root启动。
启动文件的目录布局各系统不同,所以你需要检查一下看看你的系统如何组织它们。例如在Linux PPC上,目录是/etc/rc.d和/etc/rc.d/rc3.d,这样你可以这样安装脚本:
#cp mysql.server/etc/rc.d/init.d
#cd/etc/init.d
#chmod 500 mysql.server
#cd/etc/rc.d/rc3.d
#ln-s../init.d/mysql.server S99mysql
在solaris上,主脚本目录是/etc/init.d,并且运行级别目录是/etc/rd2.d,所以命令看上去像这样:
#cp mysql.server/etc/rc.d/init.d
#cd/etc/init.d
#chmod 500 mysql.server
#cd/etc/rc2.d
#ln-s../init.d/mysql.server S99mysql
在系统启动时,S99mysql脚本将自动用一个start参数调用。如果你有cconfig命令(Linux上有),你可以由它帮助安装mysql.server脚本而不是象上面那样手工运行上述命令。
2.1指定启动选项
如果你想在服务器启动时指定额外的启动选项,你可有两种方法。你可以修改你使用的启动脚本(safe_mysqld或mysql.server)并在调用服务器的行上指定选项,或在一个选项文件中指定选项。建议你如果可能在一个全局选项文件中指定选项,它通常位于/etc/my.f(Unix)或c:\my.f(Windows)。
某些种类的信息无法以服务器选项指定。对于这些你可能需要修改safe_mysqld。例如,如果你的服务器不能正确选择本地时区而以GMT返回时间值,你可以设置TZ环境变量给它一个指示。如果你用safe_mysqld或mysql.server启动服务器,你可以将一个时区设置加到safe_mysqld。找到启动服务器的行并在该行前加入下列命令:
TZ=US/Central
export TZ
上面命令的语法是Solaris的,对于其他系统语法可能不同,请查阅相关手册。如果你确实修改了你的启动脚本,要记住下次你安装MySQL时(如升级到新版本),你的修改将失去,除非你首先在别处复制了启动脚本。在安装了新版本后,比较新旧版本的脚本,看看你需要重建什么改变。
2.2在启动时检查你的表
除了安排你的服务器在系统引导时启动,你可能要安装myisamc和isamc脚本,以在服务器启动前检查你的表。你可能在一个崩溃后重启,有可能表已经损害,在启动前检查它是一个发现问题的好方法。
三、停止服务器
要手工启动服务器,使用mysqladmin:
%mysqladmin shutdown
要自动停止服务器,你不需做特别的事情。BSD系统一般通过向进程发一个TERM信号停止服务,它们或者正确应答它或被粗鲁地杀死。mysqld在它收到这个信号时以终止作为应答。对于用mysql.server启动服务器的System V风格的系统,停止进程将用一个stop参数调用该脚本,告诉服务器终止,当然假定你已安装了mysql.server。
四、如果你不能连接服务器,如何重新获得对服务器的控制
在某些情况下,你可能由于不能连接它而手工重启服务器。当然,这有点矛盾。因为一般你通过连接服务器而手工关掉它,那么这种情况如何会出现。
首先,MySQL root口令可以已经设置为你不知道的值,这可能发生在你修改口令时,例如,如果你在输入新口令时偶然键入一个不可见的控制字符。你也可能忘记口令。
其次,连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。
如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。这里的骗局是你不能用套接字建立连接因为它不见了,你必须建立一个TCP/IP连接,例如,如果服务器主机是pit.snake.,你可以这样连接:
%mysqladmin-p-u root-h pit.snake. shutdown
如果套接字文件被一个cron任务删除,问题将重复出现,除非你修改cron任务或使用一个或使用一个不同的套接字文件,你可以使用全局选项文件指定一个不同的套接字,例如,如果数据目录是/usr/local/var,你可以通过将下列行加入/etc/my.f中,将套接字文件移到那里:
[mysqld]
socket=/usr/local/var/mysql.sock
[client]
socket=/usr/local/var/mysql.sock
对服务器和客户均指定路径名,使得它们都使用同一个套接字文件。如果你只为服务器设置路径,客户程序将仍然期望在原位置执行套接字,在修改后重启服务器,使它在新位置创建套接字。
如果你由于忘记root口令或已经将它设置为不同于认为的值而不能连接,你需要重新获得对服务器的控制,是你能再次设置口令:
中断服务器
如果你以root登录服务器主机,你可以用kill命令终止服务器。你可以使用ps命令或通过寻找服务器的PID文件(通常在数据目录中)找出服务器进程的ID。
最好是首先尝试用一个向服务器发出一个TERM信号的正常kill看它是否将以正常终止应答。这种方式下,表和日志将正确地被清空。如果服务器阻塞并且不应答一个正常终止信号,你可以用kill-9强制终止它。这是最后的手段了,因为这可能有未清空的修改,而且你冒着让表处于一个不一致状态的风险。
如果你用kill-9终止服务器,要确保在启动服务器前用myisamc和isamc检查你的表。
用--skip-grant-table选项重启服务器。
这告诉服务器不使用授权表验证连接,这允许你以root连接而无须口令。在你已经连接后,改变root口令。
用mysqladmin flush-privileges告诉服务器再次使用授权表启动
如果你的mysqladmin版本不认识flash-privileges,试一试reload。
五、运行多个服务器
大多数再一台给定的机器上运行单个MySQL服务器,但在很多情况下,运行多个服务器是很有用的:
你可能想测试一个服务器的新版本,而保留你正在运行的生产服务器。在这种情况下,你会运行不同的服务器代码。
操作系统一般限制每个进程的打开文件句柄数量。如果你的系统很难提高这个限制,运行多个服务器是解决限制的一种方法。在这种情况下,你可能运行统一服务器的多个实例。
ISP经常为其客户提供自己的MySQL安装,有必要涉及单独的服务器。在这种情况下,你可能运行同一版本的多个实例或不同版本,如果不同的客户想要不同版本的MySQL。
很自然地,运行多个服务器比只运行一个服务器要复杂得多。如果你安装多个版本,你不能在同一个地方安装所有东西。当服务器运行时,某些参数必须或很可能对每个服务器是唯一的,它们包括服务器在哪安装、其数据目录的路径名、TCP/IP端口和UNIX域套接字路径名以及用于运行服务器的UNIX账号(如果你不再同一账号下运行所有服务器)。如果你决定运行多个服务器,一定要注意你使用的参数,是你不至于丢失对所发生的事情的踪迹。
5.1配置和安装多个服务器
如果你要运行不同版本的服务器而不是同一版本的多个实例,你必须在不同地点安装它们。如果你安装二进制分发(不用RPM),它们将安装在包含不同版本号的目录名下。如果你从源代码安装,最简单的方法是在每个版本运行configure配置MySQL安装过程中使用--with-prefix选项使得不同分发分开,这将使得所有东西安装在一个单独的目录下,你可以将目录域分发版本号联系起来,如,你可以象这样配置一个MySQL分发,其中version是MySQL版本号:
%.configure--with-prefix=/usr/local/mysql-version
--with-prefix选项也决定了服务器的一个唯一数据目录。你可能想加上其它服务器特定的选项,如TCP/IP端口号和套接字路径名(--with-tcp-port和--with-unix-socket)。
如果你想运行同一版本服务器的多个实例,任何必须基于一个服务器特定设置的选项将需要在运行时指定。
5.2多服务器的启动过程
启动多个服务器比使用一个服务器要复杂。因为safe_mysqld和mysql.server均在单个服务器设置上工作得最好。建议你仔细研究一下safe_mysqld并用它作为你的启动过程的基础,使用你修改的版本,你能针对你自己的需要更精确地裁剪它。
你必须处理的一个问题是如何在选项文件(my.f)中指定选项。对于多服务器,你不能对于每个不同的服务器设置使用/etc/my.f,你只能对所有服务器相同的设置使用该文件。如果服务器有一个不同的编译进去的数据目录位置,你可以在每个服务器数据目录中的my.f中指定所有服务器要使用的设置,而使用DATADIR/my.f指定服务器特定的设置,这里DATADIR以服务器不同而不同。
另一种指定服务器选项的方法是用--default-file=path_name作为命令行的第一个选项,告诉服务器从名为path_name中的文件中读取选项,这样你可以把一个服务器选项放在一个对该服务器唯一的文件中,然后告诉服务器在启动时读取该文件。注意,如果你指定这个选项,将不使用通常的选项文件如/etc/my.f的任何一个。
可以看看。