MT主机chroot简单说明

为了安全考虑,合租的MT主机上用户的ssh shell是chroot环境,这个chroot是什么概念呢?比如说本来你的文件在系统上的位置是/var/www/vhost/fwolf.com/,一般网站文件放在httpdocs目录下,私人文件放在private目录下,子域名会自动创建到subdomains目录下;那么限定用户chroot环境之后,你登录上去看到的根目录/就相当于原来的/var/www/vhost/fwolf.com/,那么网站文件也路径也就变成了/httpdocs目录,依此类推。

由于chroot限定了用户只能在自己的$HOME内活动,所以安全性得到了提升,简单说来你不用担心合租主机上别的用户会偷看你的文件。同时/bin/lib这些文件都是映射过来的,只有经过管理员选择的命令才会放在这里供使用。那么如果用户需要一个这里没有的命令怎么办呢,我[在Plesk官网文档库中扒到了一篇文章](http://kb.swsoft.com/en/818),对应到咱们的环境,是这样:

chroot有一个模板,这个模板里面的文件结构和文件就是将来要让用户使用的/的环境,首先我们编辑这个“模板”,位置在/var/www/vhosts/chroot,可以看到下面bin dev etc lib tmp usr var等一干目录全有,把需要的文件复制到这个目录下的相应位置,比如tar复制到bin下:

cp /bin/tar /var/www/vhosts/chroot/bin/

然后再用两个命令启用他们即可:

/usr/local/psa/admin/sbin/chrootmng --remove --source=/var/www/vhosts/chroot --target=all
/usr/local/psa/admin/sbin/chrootmng --create --source=/var/www/vhosts/chroot --target=all

程序命令所需要的库文件也要复制到libusr/lib目录下,那怎么知道命令使用哪些库呢?用ldd就可以了:

# ldd /bin/tar
libc.so.6 => /lib/tls/libc.so.6 (0x00cd9000)
/lib/ld-linux.so.2 (0x0096f000)

参考:

  • [CHROOT 用法详解](http://blog.chinaunix.net/u1/41578/showart.php?id=336101)

Leave a Reply

Your email address will not be published. Required fields are marked *