MT主机chroot简单说明
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/342)的形式标明文章原始出处和作者信息及本声明。为了安全考虑,合租的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官网文档库中扒到了一篇文章,对应到咱们的环境,是这样:
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
程序命令所需要的库文件也要复制到lib或usr/lib目录下,那怎么知道命令使用哪些库呢?用ldd就可以了:
# ldd /bin/tar
libc.so.6 => /lib/tls/libc.so.6 (0x00cd9000)
/lib/ld-linux.so.2 (0x0096f000)
参考:
No tags for this post.
Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
sk*rt
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
If you like this then please subscribe to the