用Linux架设FTP服务器(2)
2009-05-13 00:53:52来源:未知 阅读 ()
为FTP站点的用户建立没有shell的帐号
首先,创建一个新的用户,这个用户被允许连接到ftp服务器上。因为要有“chroot”的环境,这个帐号不同于正常的用户帐号,不能受访问限制。“chroot”使用户产生这样的感觉好像自己已经在文件系统的最顶层了。
第一步
用下面的命令在“/etc/passwd”文件中创建用户。对于每个允许访问ftp服务器的新用户都要重复这个步骤。
[root@deep]#mkdir/home/ftp
[root@deep]#useradd-d/home/ftp/ftpadmin/-s/dev/nullftpadmin>/dev/null2>&1
[root@deep]#passwdftpadmin
Changingpasswordforuserftpadmin
NewUNIXpassword:
RetypenewUNIXpassword:
passwd:allauthenticationtokensupdatedsuccessfully
第二步
编辑“/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?Thisisouraddednoexistentshell
第三步
现在编辑“/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”用户环境
先要创建一个简单的根文件系统(rootfilesystem),包含有足够的文件,如果二进制程序、口令文件,等等。当用户登录的时候,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(requireonlyifyouarenotusingthe“--enable-ls”option)
[root@deep]#mkdir/home/ftp/lib(requireonlyifyouarenotusingthe“--enable-ls”option)
第二步
把新目录的权限设成0511:
[root@deep]#chmod0511/home/ftp/dev
[root@deep]#chmod0511/home/ftp/etc
[root@deep]#chmod0511/home/ftp/bin(requireonlyifyouarenotusingthe“--enable-ls”option)
[root@deep]#chmod0511/home/ftp/lib(requireonlyifyouarenotusingthe“--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(requireonlyifyouarenotusingthe“--enable-ls”option)
[root@deep]#chmod0111/bin/ls/home/ftp/bin/ls(requireonlyifyouarenotusingthe“--enable-ls”option)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 文件压缩和打包 2020-06-11
- 安装Zabbix5.0 2020-06-10
- 厉害了!知道这样重命名文件都是大佬级别! 2020-06-09
- 一个骚命令防止你的文件被误删除! 2020-06-08
- linux各级目录 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash