2.配置匿名Vsftpd服务器
[操作要求1]将Vsftpd服务器配置为专用的匿名FTP服务器,仅允许匿名用户登录。 匿名用户可在/var/ftp/pub目录中新建目录,上传和下载文件。 [操作步骤]
(1)按下Ctrl+Alt+F2组合键,切换到第2个虚拟终端,以超级用户身份登录。
(2)首先备份配置文件vsftpd.conf,输入命令“cp /etc/vsftpd/vsftpd.conf etc/vsftpd/vsftpd.back”,以保证即使vsftpd服务器的配置错误也可以恢复到初始设置。
(3)输入命令“vi /etc/vsftpd/vsftpd.Conf”,启动vi文本编辑器并打开Vsftpd的配置文件vsftpd.conf。
(4)编辑vsftpd.conf文件,使其一定包括以下命令行。 anonymous_enable=YES local_enable=NO write_enable=YES
anon_upload_enable=YES anon_mkdir_write_enable=YES connect_from_port_20=YES listen=YES tcp_wrappers=YES
(5)输入命令“chmod o+w /var/ftp/pub”,修改/var/ftp/pub目录的权限允许其他用户写入文件。
(6)输入命令“service vsftpd restart”,重新启动vsftpd服务。
执行结果如图4所示。
图4重新启动vsftpd服务
2、配置NFS服务器
[操作要求1]配置NFS服务器,要求共享出服务器的目录/nfsroot,并设置所有主机均能够访问该目录,并且客户机登录后将以root用户的权限访问该目录。 [操作步骤]
(1)创建目录/nfsroot,其命令为:mkdir /nfsroot。
(2) 依次单击“主菜单”→“系统设置”→“服务器设置”→“NFS服务器”,打开“NFS服务器配置”窗口。
(3)单击“增加”菜单项添加NFS共享,在基本选项页中,目录文本框输入/nfsroot,在主机文本框中输入“*”,表示所有主机都能够访问该NFS服务器。选择基本权限为读/写。 (4)在用户访问的选项页中,选中把远程根用户当作本地根用户。 (5)打开终端,输入service nfs restart 重启NFS服务。
图5 NFS服务器配置窗口
[操作要求2]客户端登录NFS服务器,将服务器的目录/nfsroot,挂载到本机/home/jason/nfsmnt目录下。 [操作步骤]
(1)打开终端,创建目录/home/Jason/nfsmnt,即输入命令:mkdir /home/Jason/nfsmnt。 (2)输入命令“mount –t nfs –o nolock 192.168.0.103:/nfsroot /home/Jason/nfsmnt”,将nfs服务器的目录/nfsroot挂载到本机的/home/Jason/nfsmnt。
(3)进入/home/Jason/nfsmnt,创建新的目录,测试是否完成创建。 三、实验总结
这次实验了解嵌入式Linux开发环境的配置和使用,掌握了各种服务器的配置。
实验三嵌入式Linux进程和线程编程
一、实验目的
1、通过编写多进程程序,读者可熟练掌握fork()、exec()、wait()和waitpid()等函数的使用,进一步理解在Linux中多进程编程的步骤。
2、通过编写有名管道多路通信实验,读者可以进一步掌握管道的创建、读写等操作,同时复习使用select()函数实现管道的通信。
3、通过编写一个完整的的守护进程,读者可掌握守护进程编写和调试方法,并且进一步熟悉如何编写多进程程序。 二、 实验过程
1、编写多进程程序 (1)实验内容
该实验有三个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s后异常退出,父进程先用阻塞方式等待第一个进程的结束,然后用非阻塞方式等待另一个子进程的退出,待收集到第二子进程结束的信息,父进程就返回。
(2)实验过程及结果。
2、有名管道通信实验 (1)实验内容
在第五章多路复用小节中,已经用到有名管道(使用mknod命令创建)和多路复用(使用poll()函数)。一下实验在功能上跟这个实验完全相同,只是这里用管道函数创建有名管道(并不是在控制台下输入命令),而且使用select()函数代替poll()函数实现多路复用(使用select()函数是出于演示的目的)。
(2)实验过程及结果看下图。
3、捕捉信号量 (1)实验内容
该实例表明如何使用signal()函数捕捉相应信号,并作出给定的处理。这里,my_func()就是信号处理的函数指针。读者还可以将其改为SIG_IGN或SIG_DFL查看运行结果。
(2) 实验过程及结果见下图。
三、实验总结
在本次实验中,让我们熟练掌握了fork()、exec()、wait()和waitpid()函数的使用,管道的创建和读写。复习了之前我们所学的函数的使用。