Archive for the 'Ubuntu' Category

drcom的安装之千辛万苦

星期一, 03月 24th, 2008

在ubuntu上安装drcom很简单

只要make&&make install就行了

但在gentoo却遇到了很多问题 ,先是不能编译,少了什么变量,security_ops,然后到网上搜,好不容易找到了一个解决方法,(当时我的内核是2.6.22,后来才更新到2.6.24)

在网友zrx550 http://hi.baidu.com/z%5Fr%5Fx那看到这篇文章
----------
linux下的drcom是在2.6的内核中开发的,用到了<linux/security.h>中的security_ops。>但是这个 EXPORT_SYMBOL 在2.6.24的内核中被取消了,导致drcom不能被成功的编译。随之
而来的问题就是新内核在需要drcom的网络环境中不能上网了。就这个问题我请教了开源版>本drcom开发者之一的Wheelz。目前最简单的办法只能修改内核,重新编译。针对2.6.24的>内核,具体办法如下:
1) 在内核的security/security.c文件的最后加上EXPORT_SYMBOL(security_ops);
2) 重新编译一下内核。
3) drcom-1.3.7/kmod/proto.c在#include <linux/security.h>后面加上一句:
extern struct security_operations *security_ops;
4)编译安装drcom。

但却始终不起作用,编译了好几次内核,始终没用,后来在.config 中加入

先 grep SECURITY .config 然后vim .config

CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y

前几次编译都不成功,好像编译时重新配置内核,立马^C,

然后又一次次偿试,终于可以了。

到这里我发现了一个问题,一般情况了我重新编译内核都不会

make clean 而这次编译了7分钟,所以我觉得它应该将内核重新编译了一遍,以前编译时只要很短的时间,特别是改动很少的时候,因为它没有全部重新编译,只是编译了那些配置改变了的部分,而当它们的依赖关系比较严重时,系统就会自动全部重新编译,所以以后当内核改0动比较大时,最好先make clean下

最后终于安装成功了,但确不能登录,试了好几个方法

drcomcd

drcomc login

drcomc logout

都不行,经过好多次试验才可以上网了

后来发现只有以root用户登录后,

1。drcomd

2登录:drcomc login

3.登出:drcomc logout

然后就一切OK了,然后再以普通用户登录就可以了。

我是在用普通用户登录后,然后Ctrl +Alt +F1,进入一个终端用root登录, 再dromd,drcomc login

登录成功后,再返回到图形界面: Ctrl +Alt +F7

下面是我的调试信息,希望你在检索进能够检索到:

make
make -C drcomc
make[1]: Entering directory `/home/pjq/drcom-1.3.7/drcomc’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomc.o drcomc.c
gcc drcomc.o -o drcomc
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/drcomc’
make -C drcomd
make[1]: Entering directory `/home/pjq/drcom-1.3.7/drcomd’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomd.o drcomd.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o daemon.o daemon.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o cleanup.o cleanup.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o dialog.o dialog.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o handle.o handle.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o init.o init.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o keepalive.o keepalive.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o login.o login.c
login.c: 在函数 ‘drcom_login’ 中:
login.c:50: 警告:未使用的参数 ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o logout.o logout.c
logout.c: 在函数 ‘drcom_logout’ 中:
logout.c:34: 警告:未使用的参数 ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o md5.o md5.c
md5.c:131:36: 警告:使用 C99 long long 整数常量
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o misc.o misc.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o passwd.o passwd.c
passwd.c: 在函数 ‘drcom_passwd’ 中:
passwd.c:32: 警告:未使用的参数 ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o readconf.o readconf.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o watchport.o watchport.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o getaddr.o getaddr.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o log.o log.c
log.c: 在函数 ‘dbg’ 中:
log.c:34: 警告:未使用的参数 ‘format’
gcc -lm -lpthread drcomd.o daemon.o cleanup.o dialog.o handle.o init.o keepalive.o login.o logout.o md5.o misc.o passwd.o readconf.o watchport.o getaddr.o log.o -o drcomd
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/drcomd’
make -C kmod
make[1]: Entering directory `/home/pjq/drcom-1.3.7/kmod’
make -C /lib/modules/2.6.22-gentoo-r9/build M=/home/pjq/drcom-1.3.7/kmod modules
make[2]: Entering directory `/usr/src/linux-2.6.22-gentoo-r9′
CC [M] /home/pjq/drcom-1.3.7/kmod/init.o
CC [M] /home/pjq/drcom-1.3.7/kmod/proc.o
CC [M] /home/pjq/drcom-1.3.7/kmod/proto.o
/home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘init_hijack’ 中:
/home/pjq/drcom-1.3.7/kmod/proto.c:450: 错误:‘security_ops’ 未声明 (在此函数内第一次使用)
/home/pjq/drcom-1.3.7/kmod/proto.c:450: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
/home/pjq/drcom-1.3.7/kmod/proto.c:450: 错误:所在的函数内只报告一次。)
/home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘cleanup_hijack’ 中:
/home/pjq/drcom-1.3.7/kmod/proto.c:461: 错误:‘security_ops’ 未声明 (在此函数内第一次使用)
make[3]: *** [/home/pjq/drcom-1.3.7/kmod/proto.o] 错误 1
make[2]: *** [_module_/home/pjq/drcom-1.3.7/kmod] 错误 2
make[2]: Leaving directory `/usr/src/linux-2.6.22-gentoo-r9′
make[1]: *** [default] 错误 2
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/kmod’
make: *** [kmod] 错误 2
make
make -C drcomc
make[1]: Entering directory `/home/pjq/drcom-1.3.7/drcomc’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/drcomc’
make -C drcomd
make[1]: Entering directory `/home/pjq/drcom-1.3.7/drcomd’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/drcomd’
make -C kmod
make[1]: Entering directory `/home/pjq/drcom-1.3.7/kmod’
make -C /lib/modules/2.6.22-gentoo-r9/build M=/home/pjq/drcom-1.3.7/kmod modules
make[2]: Entering directory `/usr/src/linux-2.6.22-gentoo-r9′
CC [M] /home/pjq/drcom-1.3.7/kmod/proto.o
/home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘init_hijack’ 中:
/home/pjq/drcom-1.3.7/kmod/proto.c:453: 错误:提领指向不完全类型的指针
/home/pjq/drcom-1.3.7/kmod/proto.c:454: 错误:提领指向不完全类型的指针
/home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘cleanup_hijack’ 中:
/home/pjq/drcom-1.3.7/kmod/proto.c:461: 错误:提领指向不完全类型的指针
/home/pjq/drcom-1.3.7/kmod/proto.c:462: 错误:提领指向不完全类型的指针
make[3]: *** [/home/pjq/drcom-1.3.7/kmod/proto.o] 错误 1
make[2]: *** [_module_/home/pjq/drcom-1.3.7/kmod] 错误 2
make[2]: Leaving directory `/usr/src/linux-2.6.22-gentoo-r9′
make[1]: *** [default] 错误 2
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/kmod’
make: *** [kmod] 错误 2
localhost drcom-1.3.7 # make
make -C drcomc
make[1]: Entering directory `/home/pjq/drcom-1.3.7/drcomc’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomc.o drcomc.c
gcc drcomc.o -o drcomc
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/drcomc’
make -C drcomd
make[1]: Entering directory `/home/pjq/drcom-1.3.7/drcomd’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomd.o drcomd.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o daemon.o daemon.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o cleanup.o cleanup.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o dialog.o dialog.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o handle.o handle.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o init.o init.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o keepalive.o keepalive.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o login.o login.c
login.c: In function ‘drcom_login’:
login.c:50: warning: unused parameter ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o logout.o logout.c
logout.c: In function ‘drcom_logout’:
logout.c:34: warning: unused parameter ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o md5.o md5.c
md5.c:131:36: warning: use of C99 long long integer constant
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o misc.o misc.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o passwd.o passwd.c
passwd.c: In function ‘drcom_passwd’:
passwd.c:32: warning: unused parameter ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o readconf.o readconf.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o watchport.o watchport.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o getaddr.o getaddr.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o log.o log.c
log.c: In function ‘dbg’:
log.c:34: warning: unused parameter ‘format’
gcc -lm -lpthread drcomd.o daemon.o cleanup.o dialog.o handle.o init.o keepalive.o login.o logout.o md5.o misc.o passwd.o readconf.o watchport.o getaddr.o log.o -o drcomd
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/drcomd’
make -C kmod
make[1]: Entering directory `/home/pjq/drcom-1.3.7/kmod’
make -C /lib/modules/2.6.22-gentoo-r9/build M=/home/pjq/drcom-1.3.7/kmod modules
make[2]: Entering directory `/usr/src/gentoolinux/linux-2.6.22-gentoo-r9′
CC [M] /home/pjq/drcom-1.3.7/kmod/init.o
CC [M] /home/pjq/drcom-1.3.7/kmod/proc.o
CC [M] /home/pjq/drcom-1.3.7/kmod/proto.o
/home/pjq/drcom-1.3.7/kmod/proto.c: In function ‘init_hijack’:
/home/pjq/drcom-1.3.7/kmod/proto.c:453: error: dereferencing pointer to incomplete type
/home/pjq/drcom-1.3.7/kmod/proto.c:454: error: dereferencing pointer to incomplete type
/home/pjq/drcom-1.3.7/kmod/proto.c: In function ‘cleanup_hijack’:
/home/pjq/drcom-1.3.7/kmod/proto.c:461: error: dereferencing pointer to incomplete type
/home/pjq/drcom-1.3.7/kmod/proto.c:462: error: dereferencing pointer to incomplete type
make[3]: *** [/home/pjq/drcom-1.3.7/kmod/proto.o] 错误 1
make[2]: *** [_module_/home/pjq/drcom-1.3.7/kmod] 错误 2
make[2]: Leaving directory `/usr/src/gentoolinux/linux-2.6.22-gentoo-r9′
make[1]: *** [default] 错误 2
make[1]: Leaving directory `/home/pjq/drcom-1.3.7/kmod’
make: *** [kmod] 错误 2
localhost drcom-1.3.7 # drcomcd
1206323834 DEBUG drcomcd: Redirecting stderr to /var/log/drcomcd…
Segmentation fault
localhost drcom-1.3.7 # drcomc login
1206323840 DEBUG drcomc: Creating socket…
1206323840 DEBUG drcomc: Connecting…
drcomc: Connect: No such file or directory
localhost drcom-1.3.7 # drcomc logout
1206323843 DEBUG drcomc: Creating socket…
1206323843 DEBUG drcomc: Connecting…
drcomc: Connect: No such file or directory

镜像配置文件/etc/apt/mirror.list

星期日, 12月 30th, 2007

sudo gedit /etc/apt/mirror.list


############# config ##################
#
set base_path /media/sda6/var/spool/apt-mirror
#
# if you change the base path you must create the directories below with write privlages
#
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
set nthreads 5
set tilde 0
#
############# end config ##############
#ubuntu-cn
deb http://archive.ubuntu.org.cn/ubuntu-cn/ gutsy main restricted universe multiverse
#中国科技大学(USTC) ubuntu 7.10 源
deb http://debian.ustc.edu.cn/ubuntu/ gutsy main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ gutsy-backports restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ gutsy-proposed main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ gutsy-security main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ gutsy-updates main restricted universe multiverse

今天自己做了个源,镜像了(debian.ustc.edu.cn)的源,总共22G

星期四, 12月 20th, 2007

今天自己做了个源,镜像了(debian.ustc.edu.cn)的源,总共22G

最新加入了ubuntu-cn源!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

版本:ubuntu 7.10(gutsy)
参考:http://forum.ubuntu.org.cn/viewtopic.php?t=53155

###############################################

如果想做源的话,可以将我ftp根目录下/var目录下载下来,
然后请参考下面3种的设置方法中的一种设置一下,就可以用了:)
祝你好运 :)

###########################################
ps.ftp地址:ftp://10.0.1.112(一般情况下都是这个)

###########################################

时间不能保证,一般我开机后,就可以用了
时间:11:30am-1:00pm/5:30pm-6:30pm/10:10pm-11:00pm

有问题,可以发到我的邮箱

##############################################
下面是我的源地址(请选用ftp,http暂时没开):
在我ftp目录/mysourcelist下面也有

*******************************************************************
1. 建在vsftp上
deb ftp://10.0.1.112/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu gutsy main restricted universe multiverse
deb ftp://10.0.1.112/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu gutsy-backports restricted universe multiverse
deb ftp://10.0.1.112/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu gutsy-proposed main restricted universe multiverse
deb ftp://10.0.1.112/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu gutsy-security main restricted universe multiverse
deb ftp://10.0.1.112/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu gutsy-updates main restricted universe multiverse

#ubuntu-cn
deb ftp://10.0.1.112/var/spool/apt-mirror/mirror/archive.ubuntu.org.cn/ubuntu-cn/ gutsy main restricted universe multiverse

******************************************************************
2.或者http(http服务暂时没开,因为vsftp可以正常使用,自己测试过没问题)

deb http://10.0.1.112/ubuntu/ubuntu/ gutsy main restricted universe multiverse
deb http://10.0.1.112/ubuntu/ubuntu/ gutsy-backports restricted universe multiverse
deb http://10.0.1.112/ubuntu/ubuntu/ gutsy-proposed main restricted universe multiverse
deb http://10.0.1.112/ubuntu/ubuntu/ gutsy-security main restricted universe multiverse
deb http://10.0.1.112/ubuntu/ubuntu/ gutsy-updates main restricted universe multiverse

#ubuntu-cn
deb http://10.0.1.112/ubuntu-cn/ubuntu-cn/ gutsy main restricted universe multiverse

********************************************************************
3. 如果只是自己用用,可以如下设置源(这是我的,仅供参考)
(/media/sda6=windows下e盘)

deb file:///media/sda6/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ gutsy main restricted universe multiverse
deb file:///media/sda6/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ gutsy-backports restricted universe multiverse
deb file:///media/sda6/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ gutsy-proposed main restricted universe multiverse
deb file:///media/sda6/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ gutsy-security main restricted universe multiverse
deb file:///media/sda6/var/spool/apt-mirror/mirror/debian.ustc.edu.cn/ubuntu/ gutsy-updates main restricted universe multiverse

#ubuntu-cn
deb file:///media/sda6/var/spool/apt-mirror/mirror/archive.ubuntu.org.cn/ubuntu-cn/ gutsy main restricted universe multiverse

################################################
下面是广告时间: ##
ubuntu—-linux for human beings ##
http://www.ubuntu.org.cn ##
中文论坛:http://forum.ubuntu.org.cn # #
################################################

Virtualbox与主机共享,建立桥接方法(转)

星期四, 12月 6th, 2007

转自:http://forum.ubuntu.org.cn/viewtopic.php?t=63120

今晚无意中发现了virtualbox安装后放在/opt/VirtualBox-1.4.0目录中的用 户手册文件UserManual.pdf,打开一看,哈哈!里面说得真是详细啊!可惜是英文的,但凭自己这么蹩脚的英语也还基本能看懂一些。这里将我根据 其中的说明实现“主机”和“虚拟机”之间的桥接模式的过程描述一下。整个过程非常简单,比网上找到的方法简单多了,而且一次配置完了可以永久生效。

先简单描述一下我的电脑的基本情况:
主机硬件:惠普v3009tu
主机操作系统:ubuntu 7.04
主机网卡:有线网卡(eth0)一块(无线网卡我没用)
主机网络环境:内部局域网,通过路由器上网
虚拟机:用virtualbox建立,虚拟机操作系统为windows xp sp2

再说配置过程,并作简单说明:

第一步,安装必备的工具(若已安装可跳过):
(1)安装uml-utilities,该工具包含建立虚拟网络设备(所谓的“TAP interfaces”)的工具:
sudo apt-get install uml-utilities
(2)安装桥接工具bridge-utils:
sudo apt-get install bridge-utils

第二步,为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名(通常是你的ubuntu登录用户名)添加到uml-net用户组。命令行的运行方法是(请用你的用户名替换其中的“vboxuser”):
sudo gpasswd -a vboxuser uml-net
你也可以通过gnome面板上的“系统—系统管理—用户和组”来添加,方法从略。
请注意:为了使改动生效,请重新启动你的电脑。

第三步,向你的ubuntu操作系统描述你要添加的虚拟网络设备:
sudo gedit /etc/network/interfaces
在打开的文件后面添加下面的内容(请用你的用户名替换其中的“vboxuser”),保存好:

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user vboxuser

auto br0
iface br0 inet dhcp
bridge_ports all tap0

上面第一部分的大概意思是将虚拟网络接口命名为“tap0”,指定该接口IP配置方法为手动,并指定使用该接口的用户。第二部分的大概意思是建立 一个名叫“br0”的桥,该桥的IP配置方法为通过DHCP配置,主机中的所有网络接口,也包括tap0这个虚拟网络接口,都将建立在这个桥之上。

第四步,激活刚才建立的虚拟网络接口和网络桥:
sudo /sbin/ifup tap0
sudo /sbin/ifup br0
这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活。

第五步,启动virtualbox,在主界面上选中要使用刚才建立的虚拟网络接口tap0的虚拟机,点“设置”,在弹出的窗口中选“网络”,选中 其中一块网卡(通常为“网络适配器 0”),选中“启用网络适配器”,“连接到”后面选“Host Interface”,选中“接入网线”,然后在“主机网络界面名称”中填入刚才建立的虚拟网络接口的名字“tap0”,确定。

第六步,配置主机和虚拟机的网络。这步太简单了,两者你想怎么配置怎么配置。无论是主机,还是虚拟机,都是既可以手工指定静态IP,也可以从DHCP动态获取IP地址(当然,主机和虚拟机应该在同一个网段)。不过前提是要你的网管放行才行!

好了,经过上面的配置后,主机和虚拟机就成了局域网中地位相同的两台机器了,想怎么共享就怎么共享啰!

下面是我的/etc/network/interfaces

auto lo
iface lo inet loopback

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user pjq

auto br0
iface br0 inet static
bridge_ports all tap0
address 10.0.1.112
netmask 255.255.255.0
network 10.0.1.0
broadcast 10.0.1.255
gateway 10.0.1.1

安装vsftp

星期三, 10月 31st, 2007

安装vsftp

转自http://forum.ubuntu.org.cn/weblog_entry.php?e=1471
2006-9-13 周三, 上午11:19

在新立得中安装vsftp
命令窗口提示:
正在预设定软件包 …
选中了曾被取消选择的软件包 ssl-cert。
(正在读取数据库 … 系统当前总共安装有 92256 个文件和目录。)
正在解压缩 ssl-cert (从 …/ssl-cert_1.0.13_all.deb) …
选中了曾被取消选择的软件包 vsftpd。
正在解压缩 vsftpd (从 …/vsftpd_2.0.4-0ubuntu4_i386.deb) …
正在设置 ssl-cert (1.0.13) …

正在设置 vsftpd (2.0.4-0ubuntu4) …
正在添加系统用户 ftp…
Adding new user `ftp’ (107) with group `nogroup’.
无法创建主目录 ‘/home/ftp’
* Starting FTP server: vsftpd [ok]

但在home目录中还是看到了ftp文件夹

安裝好vsftp后

只能匿名登入 一般使用者无法登录

需要开启这样的功能

修改

# vi /etc/vsftpd.conf

第26行 將 # local_enable=Yes 前面的 #拿掉

做到这里只能让一般使用者登入ftp

但还不能写入文档 因此必需把第29行的前面的 #拿掉

write_enable=YES

完成后 存档,重启ftp

# /etc/init.d/vsftpd restart

另外要设定文件夹的权限:
sudo chmod 777 yourdir
才能是其他用户上传文件。

###############################################################################
#接受匿名用户
anonymous_enable=YES
#匿名用户login时不询问口令
no_anon_password=YES
#接受本地用户
local_enable=YES

#可以上传(全局控制).若想要匿名用户也可上传则需要设置anon_upload_enable=YES,若想要匿名用户可以建立目录则需要设置anon_mkdir_write_enable=YES.这里禁止匿名用户上传,所以不设置这两项.
write_enable=YES
#本地用户上传文件的umask
local_umask=022

#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改
xferlog_enable=YES
#日志使用标准xferlog格式
xferlog_std_format=YES

#login时的欢迎信息
ftpd_banner=Welcome to KingArthur’s FTP service.
#设置的话将覆盖上面的ftpd_banner设置,用户login时将显示/etc/vsftpd/banner中的内容
banner_file=/etc/vsftpd/banner
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES
#本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录(/etc/passwd的第六个字段)中.匿名用户的对应选项是anon_root
local_root=/var/ftp

#设置为YES则下面的控制有效
chroot_list_enable=YES
#若为NO,则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里选择YES.
chroot_local_user=YES

#若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES
#若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_deny=NO
#注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将无法login!!

#服务器以standalong模式运行,这样可以进行下面的控制
listen=YES
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=512000
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5

connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=vsftpd

##############################################################################

下面是我的/etc/vsftpd.user_list
##############################################################################

ftpuser
anonymous

##############################################################################
/etc/vsftpd.ftpusers可以使用系统自带的文件
/etc/vsftpd.chroot_list内容为空
接着建立系统用户ftpuser,将他加入ftp组并将/etc/passwd中他的记录的最后一个字段改成/sbin/nologin(禁止本地登录).
设置/var/ftp的所有者和所有组为root,权限为755
设置/var/ftp/pub的所有者为root,所有组为ftp,权限为775

至此vsftpd的基本配置就完成了.这里我们接受匿名用户anonymous和本地用户ftpuser的请求.anonymous只能下载, ftpuser可以下载和上传.他们登录后均在/var/ftp目录下且无法离开这个目录(被chroot了).ftpuser可以在 /var/ftp/pub目录中建立目录和上传文件,上传文件的权限为755(设置了local_umask=022).匿名用户的传输比率为 50kb/s,ftpuser的传输比率为500kb/s.可联接的最多客户数为100,每ip可联接的最多客户数为5.
如果需要使本地用户ftpput可以login,只需要将他加入/etc/vsftpd.user_list,要使他可以上传,只需将他加入ftp组.
接着我们可以在/var/ftp下的各个目录(包括/var/ftp)下建立.message文件,这样用户进入这个目录时vsftpd将显示. message的内容,你可以在这里面写上欢迎信息或者注意事项等等.另外可以编辑/etc/vsftpd/banner,建立login时的欢迎信息, 让你的ftp更加个性化.

下面我们使用quota为ftpuser加入磁盘限额,避免恶意用户用垃圾数据塞满你的硬盘.
假设/var/ftp在根分区/(/dev/hda5)中,则将/etc/fstab中根分区的记录的第4个字段改成defaults,usrquota,这样这条记录看起来类似这样:
LABEL=/ / ext3 defaults,usrquota 1 1
接着重启系统后输入下列命令:
quotacheck -acu #检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表
quotacheck -avu #生成每个启用了配额的文件系统的当前磁盘用量表
edquota ftpuser #为用户ftpuser设置磁盘配额
这时系统会在默认文本编辑器(vi)中打开配额文件,显示类似这样:
Disk quotas for user ftpuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda5 0 0 0 0 0 0
第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period)。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置.按你的需要修改后存盘推出.
要校验用户的配额是否被设置,使用以下命令:
quota testuser
接着使用edquota -t来设置过渡期(grace period)
和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda5 7days 7days
按你的需要修改后存盘退出

这样我们就成功的为ftpuser增添了磁盘配额.而一个比较完整的FTP站点也配置完成了

Recent Posts:
  1. 博客搬迁了~
  2. Android live cd试用及介绍
  3. Android Browser Introduction 2:结构图
  4. Android Browser Introduction 1
  5. 从20080707--20090707
  6. Rate My Life Quiz!
  7. Registration
  8. 在公司电脑装上了linux,还存在诸多问题
  9. NND,苏州电信想钱想疯了,上网1.2元/时,强推天冀!!!
  10. google.com被及艾服达不溜了

Register Login