博文

vsftpd cannot change directory(2011-11-15 16:47:00)

摘要:网上查来 setsebool -P ftpd_disable_trans 1,
但是执行的时候遇到这个问题  Could not change active booleans: Invalid boolean setsebool -P allow_ftpd_full_access 1......

阅读全文(1340) | 评论:0

数据socket错误,连接被拒和pasv模式失败,尝试port模式(转)(2011-11-15 16:44:00)

摘要: 1.什么是ftp中的PASV和PORT模式   FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接。FTP服务程序一般会支两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),先说说这两种不同模式连接方式的分别:   先假设客户端为C,服务端为S。   所谓Port模式:   当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。     所谓Pasv模式:   当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。   从上面的解释中,可以看到两种模式主要的不同是数据连接建立的不同,对于Port模式,是客户端C在本地打开一个端口等服务端S去连接建立数据连接;而Pasv模式就是服务端S打开一个端口等待客户端C去建立一个数据连接。   FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT模式),是用来建立数据传输通道的,主要有3个作用:   1.从客户向服务器发送一个文件。 2.从服务器向客户发送一个文件。 3.从服务器向客户发送文件或目录列表。   注意:所有FTP服务器软件都支持PORT方式,大部分FTP服务器软件PORT方式和PASV方式都支持,有些FTP服务器不支持PASV方式都支持,故造成了PASV 模式失败,正在尝试 PORT错误 或者 数据Sock错误。对症下药,解决的方法其实很简单――取消PASV模式。     2.具体的方法   1)在ie中如何启用或者取消PASV模式:   如果要在ie里启用......

阅读全文(1849) | 评论:0

flashxp pasv模式失败(转)(2011-11-15 16:44:00)

摘要:在使用FlashFXP访问FTP站点出现如下信息: [R] 250 Directory changed to /—+++0day_disk1+++—/20040911-20040920/0920
[R] PWD
[R] 257 “/—+++0day_disk1+++—/20040911-20040920/0920″ is current directory.
[R] PASV
[R] 227 Entering Passive Mode (219,245,110,100,14,221)
[R] 正在打开数据连接 IP: 219.245.110.100 端口: 3805
[R] 数据 Socket 错误:连接已超时
[R] 列表错误
[R] PASV
[R] 227 Entering Passive Mode (219,245,110,100,14,222)
[R] 正在打开数据连接 IP: 219.245.110.100 端口: 3806
[R] 数据 Socket 错误:连接已超时
[R] 列表错误
[R] PASV 模式失败,正在尝试 PORT  模式。
[R] 侦听于端口: 9058,正在等候连接。
[R] PORT 172,22,67,251,35,98
[R] 200 PORT Command successful.
[R] MLSD
[R] 150 Opening BINARY mode data connection for MLSD.
[R] 226 Transfer complete.
[R] 列表完成: 9 KB 用时 0.58 秒 (16.4 KB/s)
[R] PORT  模式已成功,请更新您的站点配置文件。 如何在FlashFXP中设置连接FTP服务器的模式为PORT呢? FlashFXP提供了两种连接FTP服务器的方式主动模式(PORT)、被动模式(PASV),而FlashFXP的默认设置为主动模式(PORT),更改Fla......

阅读全文(2612) | 评论:0

实现Windows与Linux双重引导有多种方法(转)(2011-11-15 15:26:00)

摘要:自己的工作机大部分在xp下, 故想让ntldr引导centos, 而不是让grub引导xp, 这样以后删除linux方便一些                ◆ 对于具有双硬盘的用户,可以将Linux安装在第二个硬盘上(Windows自然是安装在第一个硬盘上),并且确保将GRUB(LILO)安装在第二个硬盘的主引导扇区,然后每次开机时在BIOS里指定从哪个硬盘引导即可。

◆ 最常用的方法是借助Linux的引导装载管理器GRUB(LILO),自动接管双重系统的启动选单。

◆ 可以借助Windows XP的NT引导程序ntldr、boot.ini来实现双重启动。这种方法的优点是今后删除Linux比较方便,而且符合我们的使用习惯;缺点是实现起来相对比较复杂,需要获取Linux系统的引导映像文件。

◆ 可以选择不安装Linux的引导装载管理器(或者不要安装在主引导扇区),但是要记住在安装过程中一定要创建Linux启动盘。今后需要时,用这张启动盘引导系统进入Linux。

这里介绍了四种双重系统的实现方案,本文将分别介绍比较常见的第二和第三种方法。

使用Linux引导管理器

Linux有GRUB和LILO两种引导管理器。从Red Hat 7.2版本开始,GRUB取代LILO成为了默认的启动装载程序,可见GRUB有其过人之处。相对来说,GRUB的使用和配置更加简单,功能更加强大,而且是今后的发展方向。所以此处推荐大家使用GRUB作为双重系统的引导管理器。

假设使用Red Hat Linux 9.0的安装光盘进行安装。首先是修改系统BIOS设置,以启用光盘开机,然后用第一张Linux安装光盘引导系统,等出现欢迎屏幕时按回车,即可进入图形化安装界面。

1.选择定制安装

安装过程非常简单,一开始会提示选择安装语言(自然要选择熟悉的简体中文),然后系统会提示进行鼠......

阅读全文(2223) | 评论:0

如何实现开机进入Grub (转)(2011-11-15 15:13:00)

摘要: 本人用grub引导的双系统,一次不知怎么回事开机就直接进入grub,黑乎乎的屏幕上只有grub提示符,很是不爽啊。很多人都出现过类似问题,网上提供的解决方法一般都是如下: grub>root (ha0,0) grub>rootnoverify (ha0,0) grub>chainloader +1 grub>boot 这样就进入xp了。 至少你的windows能用了!但每次开机都输入以上命令岂不很郁闷?我的方法是第一次进入 windows后,在运行中输入cmd,进入DOS,使用命令FDISK /MBR命令,这样再次开机就直接进入windows,而不用输入上面那几行命令了!MBR是什么?答 :MBR(Master Boot Record,另一说法为Main Boot Record),中文意为主引导区记录。正是由于它遭到破坏才导致不能进入windows。 如何进入linux呢?我的方法就是利用原来的镜像文件把linux重装一下,当然 在重装的时候,不对原有的分区格式化,这样就就把grub重装了一下,而且原来linux中算坏的文件也得到修复,其他的没有改变,速度也很快!此后在开 机就看到两个系统的选择界面了。如果格式化了分区,那就是真正的重装了!速度慢得很了。 还有其他的方法,比如已知linux系统的kernel,修改已安装的grub的menu.list,在其中增加新的启动项,一般格式如下: title CentOS (2.6.18-92.el5xen) root (hd0,0) kernel /boot/xen.gz-2.6.18-92.el5 module /boot/vmlinuz-2.6.18-92.el5xen ro root =LABEL=/ rhgb quiet module /boot/initrd-2.6.18-92.el5xen.img 当然对于不同的系统内容肯定是不相同的,但是这样每次进入linux需进入grub,再进入menu.list选择相对应title,也是有一点点麻烦。 在网上发现了一篇帖子,很不错,但本人没有亲自操作过,如果你碰到类似问题,不妨可试一......

阅读全文(2046) | 评论:0

系统引导管理器GRUB,为初学者指南(转)(2011-11-15 15:05:00)

摘要: 问题:
双系统, 装完centos后出现grub命令行, 无法自动引导centos和xp

作者:北南南北 来自:LinuxSir.Org
摘要: GRUB是多系统引导管理器,简单的说既能引导Linux,同时也能引导Windows;从LinuxSir.Org 讨论区近四年的观察来看,大多初学者并不能在短时间内掌握GRUB的用法,为了解决初学者在最短时间内掌握GRUB,重写GRUB入门文档还是有必要的; 本文重点介绍了GRUB的menu.lst的写法,另外通过GRUB命令行引导系统也做了详述;这些无论是对Windows版本的WINGRUB还是Linux版本的GRUB都是适用的; 目录索引 一、什么是多重操作系统引导管理器,什么是GRUB; 1、什么是多重操作系统引导管理器及工作原理;
2、什么是GRUB;为什么我要选择GRUB;1)什么是GRUB;
2)“GRUB太不好用”──对GRUB的认识的误区;
3)为什么要选择GRUB; 二、GRUB软件包版本选择和安装; 1、Linux版本的GRUB及Windows版本的GRUB的说明;
2、GRUB的Windows版本WINGRUB;
3、GRUB的Linux版本软件包的安装; 三、在Linux中,GRUB的配置中的安装和写入硬盘的MBR; 1、在Linux中,GRUB配置过程中的安装grub-install;
2、设定GRUB的/boot分区并写入MBR; 四、GRUB的配置文件的menu.lst的写法; 1、menu.lst的写法之一;1)在menu.lst中 ,通过 root (hd[0-n],y)来指定/boot 所在的分区;
2)在menu.lst中,kernel 命令行的写法;
3)initrd 命令行的写法;
4)menu.lst第一种写法的总结和实践;1]用fdisk -l ;df -lh ;more /etc/fstab来确认分区情况;
2]查看内核vmlinuz的和initrd文件名的全称;
3]开始写menu.ls......

阅读全文(1367) | 评论:0

条款7:预先准备好内存不够的情况(2008-10-15 19:25:00)

摘要:采用new分配内存,必须对内存分配失败时做好准备。 在内存分配之前,我们可以预先指定一个出错函数: typedef void (*new_handle)() set_new_handler(new_handler p) throw(); 可以看到,new_handler是一个自定义的函数指针类型,它指向一个没有输入参数也没有返回值的函数。set_new_handler的输入参数是operator new分配内存失败时要调用的出错处理函数的指针,返回值是set_new_handler没调用之前就已经在起作用的旧的出错处理函数的指针。 可以象下面这样使用set_new_handler: // function to call if operator new can't allocate enough memory void nomorememory() { cerr << "unable to satisfy request for memory\n"; abort(); }
int main() { set_new_handler(nomorememory); int *pbigdataarray = new int[100000000]; ... }我们可以对每个类重载new,并且提供set_new_handler函数。以下是这种形式:class x { public: static new_handler set_new_handler(new_handler p); static void * operator new(size_t size); private: static new_handler currenthandler; }; new_handler x::set_new_handler(new_handler p) { new_handler oldhandler = currenthandler; currenthandler = p; return oldhandler; } void * x::operator new(size_t size) { new_handler globalhandler......

阅读全文(2224) | 评论:0

有用网站(2008-10-01 16:19:00)

摘要:在线印章生成http://www.91cool.net/index.html......

阅读全文(1604) | 评论:0

系统时间(2008-10-01 15:50:00)

摘要:得到系统时间并显示 #include<iostream>
#include<windows.h> using namespace std; int main(int argc, char* argv[])
{
         SYSTEMTIME st;
         GetSystemTime(&st);
         char msg[9];
         sprintf(msg,"%0.4d %0.2d %0.2d",st.wYear,st.wMonth,st.wDay);
         cout<<msg<<endl;
         return 0;
}
 ......

阅读全文(1543) | 评论:0

unicode问题(2008-08-23 18:55:00)

摘要:我不知道vc中所谓的unicode究竟指的是什么,我现在对这个概念很模糊。microsoft总是把unicode和宽字符集混用。如此推断,它应该指的是utf-16或者ucs-2? 其次便是win下locale的问题。它的locale当然不是zh_CN.GB2312这种。(我真是奇怪为什么当年ISO在制定locale相关函数的时候既然把locale的分类都规定了,为什么不把locale的具体名称也给个ISO规范出来呢?想想可怜的程序员,比如得写
#ifdef _WIN32
std::string locale="chs";
#else
std::string locale="zh_CN.GB2312";
#endif
My god!) vc下如果locale忘记了设置(默认是"C")或者设置不当,那么atoi等函数不能使用,且宽字节的stream,例如std::wcout, std::wfstream都不能输出中文,一旦输出中文,这个stream的状态就会变成bad。而默认情况下stream是不抛出异常的,所以很多人就完全忽略这样的错误了,只是在程序执行完后才发现自己什么都没有得到。......

阅读全文(2084) | 评论:0