分享
 
 
 

用Linux架设FTP服务器(2)

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

为FTP站点的用户建立没有shell的帐号

首先,创建一个新的用户,这个用户被允许连接到ftp服务器上。因为要有“chroot”的环境,这个帐号不同于正常的用户帐号,不能受访问限制。“chroot”使用户产生这样的感觉好像自己已经在文件系统的最顶层了。

第一步

用下面的命令在“/etc/passwd”文件中创建用户。对于每个允许访问ftp服务器的新用户都要重复这个步骤。

[root@deep]# mkdir /home/ftp

[root@deep]# useradd -d /home/ftp/ftpadmin/ -s /dev/null ftpadmin > /dev/null 2>&1

[root@deep]# passwd ftpadmin

Changing password for user ftpadmin

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

第二步

编辑“/etc/shells”文件并加入一个空shell,如:null。这个假的shell可以限制用户对ftp服务器的访问。

[root@deep]# vi /etc/shells

/bin/bash

/bin/sh

/bin/ash

/bin/bsh

/bin/tcsh

/bin/csh

/dev/null ? This is our added no existent shell

第三步

现在编辑“/etc/passwd”文件,手工加上“/./”把“/home/ftp”目录和“/ftpadmin”目录分开,用户“ftpadmin”会自动转到(chdir)“/ftpadming”目录下。在“passwd”文件中每添加一个ftp用户都要重复这个步骤。

编辑“passwd”文件(vi /etc/passwd),把下面这一行改为:

ftpadmin:x:502:502::/home/ftp/ftpadmin/:/dev/null

改为:

ftpadmin:x:502:502::/home/ftp/./ftpadmin/:/dev/null

帐号为“ftpadmin”,这这个帐号的家目录有一些奇怪。第一部分“/home/ftp/”表示“chroot”时作为根目录的目录。被点号分开的“/ftpadmin”表示当登录ftp服务器的时候会自动转到这个目录。“/dev/null”这个空shell不允许“ftpadmin”像正常用户那样登录。经过这些改变,“ftpadmin”用户用的不是真正的shell而是伪shell,这样访问ftp服务器就受到限制。 创建一个“chroot”用户环境

先要创建一个简单的根文件系统(root file system),包含有足够的文件,如果二进制程序、口令文件,等等。当用户登录的时候,Unix就可以改变根文件系统(chroot)。注意一下,如果编译的时候象上面那样加上“--enable-ls”参数,“/home/ftp/bin”和“/home/ftp/lib”两个目录就可以不要了,因为WU-FTP会用自己带的“ls”。不过我们还是介绍一下旧的方法,也就是把“/bin/ls”拷贝到“/home/ftp/bin”(chroot之后就是“/bin”)目录下,然后把相关的运行库拷贝到“/home/ftp/lib”目录下。

第一步

创建改变根文件系统(chrooted)环境所需要的所有的目录:

[root@deep]# mkdir /home/ftp/dev

[root@deep]# mkdir /home/ftp/etc

[root@deep]# mkdir /home/ftp/bin (require only if you are not using the “--enable-ls” option)

[root@deep]# mkdir /home/ftp/lib (require only if you are not using the “--enable-ls” option)

第二步

把新目录的权限设成0511:

[root@deep]# chmod 0511 /home/ftp/dev

[root@deep]# chmod 0511 /home/ftp/etc

[root@deep]# chmod 0511 /home/ftp/bin (require only if you are not using the “--enable-ls” option)

[root@deep]# chmod 0511 /home/ftp/lib (require only if you are not using the “--enable-ls” option)

上面这些“chmod”命令把chrooted之后的“dev”、“etc”、“bin”和“lib”目录设置成超级用户“root”可读、可执行,用户组和所有用户可执行。

第三步

把“/bin/ls”文件拷贝到“/home/ftp/bin”目录下,并把“ls”的权限改为0111(不运行用户改变这个文件)。

[root@deep]# cp /bin/ls /home/ftp/bin (require only if you are not using the “--enable-ls” option)

[root@deep]# chmod 0111 /bin/ls /home/ftp/bin/ls (require only if you are not using the “--enable-ls” option)

第四步

找到“ls”程序所需的共享库:

[root@deep]# ldd /bin/ls (require only if you are not using the “--enable-ls” option)

libc.so.6 => /lib/libc.so.6 (0x00125000)

/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00110000)

把共享库拷贝到“/home/ftp/lib”目录下:

[root@deep]# cp /lib/libc.so.6 /home/ftp/lib/ (require only if you are not using the “--enable-ls” option)

[root@deep]# cp /lib/ld-linux.so.2 /home/ftp/lib/ (require only if you are not using the “--enable-ls” option)

注意:如果想用Linux的“ls”程序而不是用WU-ftpd自带的“ls”(编译时加上“--enable-ls”参数),才需要第三和第四步。

第五步

创建“/home/ftp/dev/null”文件:

[root@deep]# mknod /home/ftp/dev/null c 1 3

[root@deep]# chmod 666 /home/ftp/dev/null

第六步

把“group”和“passwd”文件拷贝到“/home/ftp/etc”目录下,然后再改变这两个文件。

[root@deep]# cp /etc/passwd /home/ftp/etc/

[root@deep]# cp /etc/group /home/ftp/etc/

编辑“passwd”文件(vi /home/ftp/etc/passwd)把除了“root”和允许使用ftp的用户之外的所有其它项删掉。这对于改变根文件系统的环境很重要,改变之后的“passwd”文件会是象下面这样的:

root:x:0:0:root:/:/dev/null

ftpadmin:x:502:502::/ftpadmin/:/dev/null

编辑“group”文件(vi /home/ftp/etc/group),把除了“root”和允许使用ftp的用户之外的所有其它项删掉。改变之后的“group”文件会是象下面这样的:

root:x:0:root

ftpadmin:x:502:

配置

可以到这去下载“floppy.tgz”文件:http://pages.infinit.net/lotus1/doc/opti/floppy.tgz。把“floppy.tgz”文件解开之后,可以在相应的目录下发现我们在这本书中介绍的所有软件的配置文件。这样就没有必要手工重新生成这些文件,或者用拷贝粘贴的方法把它们粘贴到配置文件中去。不管是打算自己动手生成配置文件还是拷贝现成的,你都要学会自己修改配置文件并且把配置文件拷贝到正确的目录下。下面将具体说明。

为了运行FTP服务器,必须创建或者把下面的文件拷贝到相应的目录下:

把“ftpaccess”文件拷贝到“/etc”目录下

把“ftpusers”文件拷贝到“/etc”目录下

把“ftphosts”文件拷贝到“/etc”目录下

把“ftpgroups”文件拷贝到“/etc”目录下

把“ftpconversion”文件拷贝到“/etc”目录下

把“ftp”文件拷贝到“/etc/pam.d”目录下

把“ftpd”文件拷贝到“/etc/logrotate.d”目录下

可以把“floppy.tgz”解压之后,找到上面列出来的文件,并拷贝到相应的目录下,或者用拷贝粘贴的方法从本书中直接粘贴出。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有