[LinuxFocus-icon]
��ҳ  |  վ���ͼ  |  ����  |  ����

���� | �����ڿ� | ���� | ����LF
This article is available in: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Portugues  Turkce  Arabic  

[Photo of the Author]
by Mark Nielsen (homepage)

��������:
Mark ������һλ���Լ���ʱ�䶼���׸� GNUJob.com ����ҵ��������ѯ�ߣ���д�˺ܶ�����º����������� ������eastmont.net��һ��־Ը�ߡ�
Ŀ¼:

 

Chroot Linux�����еķ���

[illustration]

ÕªÒª:

��ϵͳ�������chroot�����������߿�����ɵ��ƻ����Ӷ����ϵͳ�İ�ȫ�ԡ�



 

����

ʲô��chroot��chroot�������ض�����һ����������л�������ȷ�е�˵�����ض�����һ�����򣨻��¼�Ự���ġ�ROOT��Ŀ¼��/���� Ҳ����˵������chroot�˵ij����shell��˵��chroot����֮���Ŀ¼�Dz����ڵġ�

����������ʲô���أ������������������ĵ��ԣ����ǾͲ��ܿ�����ϵͳ�����е��ļ��ˡ� �������������������߿���ִ�е�����Ӷ���ֹ�������������ȫ�ļ��Ļ��ᡣ��Ψһ��ȱ���ǣ� ����Ϊ�ⲻ����ֹ���Dz쿴�������Ӻ��������ϡ���ˣ���Ӧ��һЩ����δ�����漰�����飺

����Ϊ�����Է�rootȨ�����еķ�����У�chroot������Ϊһ����ȫ���ߵ�ԭ���ǣ� ��������ߵõ���һ����root�˻�����û��ʹ���ǵõ�rootȨ�޵��ļ��Ļ�����ô����ֻ�ܶ������ֵ���������ƻ��� ���ң����root�˻�����������󲿷��ļ���ӵ���ߵĻ�����������û�ж��ٹ�����ѡ��ġ���Ȼ���������˻������֣� ��һ����ijЩ�ط��������ˣ�������ܼ���������������ɵ��ƻ���

���ס �������IJ�����100%��ȷ�ġ������ҵ�һ�γ���������������ֻ�Dz�����Ч�Ļ��� ҲӦ���Ǻ�������ɻ��������õġ�������һ��chroot��HOWTO��������˵��ֻ��һЩ�����Ķ�����  

���������еķ���chroot�أ�

�õģ��������ȴ���һ��Ŀ¼��/chroot����Ȼ��������ĸ�ʽ�����ǵ����з��ñ¶¼·ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½æ£º ÿһ����������ȫ��������ġ�  

����������chroot������Perl�ű���

����Config_Chroot.pl.txt������Ϊ Config_Chroot.pl. ���Perl�ű������г������Ѱ�װ�ķ��񣬲鿴�����ļ������÷��񣬲�������ֹͣ����ͨ�����������Ӧ�����ġ�
  1. ����chrootĿ¼
    mkdir -p /chroot/Config/Backup
  2. ����Config_Chroot.pl.txt ������Ϊ /chroot/Config_Chroot.pl
  3. �����ļ�Ŀ¼��home directory������/chroot�����Perl�ű����$Home ��������Ӧ�ĸı䡣
  4. �����ҵ������ļ���
���ڣ���Ҫ���ǣ���ֻ�� RedHat 7.2 �� RedHat 6.2 �ϲ��Թ���.

����Perl�ű�������Ӧ�ĸı�����Ӧ��ķ��а档

����chroot����д��һ��ܳ������£��������ҵĽű�������ö��˺ܶࡣ��chroot�˺ܶ����֮����ע�⵽��Щ��������Ҫ��chroot���ļ������ö������ơ���һ���ض��ķ�����˵���ж���Щ�ļ���Ҫ�����������׵ķ����Dz鿴man���������Ҫ�õ����ļ������ټ��롰ldd /usr/bin/file�����㻹���԰������ڰ�װ�ķ������chroot���ֶ������� ��������ʲô�����һ��������־�ļ���

ͨ����Ҫ��װһ�����񣬿�����������

cd /chroot
./Config_Chroot.pl config  SERVICE
./Config_Chroot.pl install SERVICE
./Config_Chroot.pl start   SERVICE
 

�� Ntpd ���� Chroot

Ntpd ��һ��ʱ�������ʹ��ļ�����Լ������������ʵ��ʱ��ͬ��������chroot�Ǻܼ򵥵ġ�
cd /chroot
 # �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
#./Config_Chroot.pl config  ntpd
./Config_Chroot.pl install ntpd
./Config_Chroot.pl start   ntpd
 

�� DNS �� named ���� Chroot

�Ѿ�����howto�ļ����뿴
http://www.linuxdoc.org/HOWTO/Chroot-BIND8-HOWTO.html
��
http://www.linuxdoc.org/HOWTO/Chroot-BIND-HOWTO.html

����������ҵĽű�

cd /chroot
 # �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
#./Config_Chroot.pl config  named
./Config_Chroot.pl install named
./Config_Chroot.pl start   named
 

�� Syslog ����������һ�����chroot�Լ��������������ѡ�

�����syslogd����chroot���������������ǣ�syslogdĬ��ʹ��/dev/logĿ¼����chroot�˵ķ����ǿ��������Ŀ¼�ġ���ˣ���syslogd����־��¼�Ͳ��Ǻܷ����ˡ������ǿ��ܵĽ�������� �ҵ�Ψһ�Ľ��������ȷ��syslogd�ֱ��ÿһ���������chroot����ϲ�������Ľ�����������Է�rootȨ�����Լ���chroot��������Щ������˿ڣ��¼�¼��־����Ҳ���ǿ��еģ���������ֹͣ�������ģ�Ȼ��Ѱ��һ�����õĽ��������

����㲻��Ϊÿһ�������䱸һ��������syslogd����ô�����ϵͳ����syslogdʱ������syslogd��ʼʱ�����������

syslogd -a /chroot/SERVICE/dev/log
�����ssh��dnsҪ���У���ô����ȥӦ����������
syslogd -a /chroot/ssh/dev/log -a /chroot/named/dev/log -a /dev/log

����syslogd���������˵���ǣ���ϣ�����������ڷ�root�˻��¡������˼����òµ¥µÄ¶ï¿½ï¿½ï¿½ï¿½ï¿½ ����û�гɹ������Ǿͷ����ˡ��������syslogd��ÿһ������һ�������ڷ�root�˻��£� �Ҿͻ���ҵİ�ȫ��ʩ�е������ˡ�������ܵĻ�����ý���־��¼���ⲿ�豸�ϡ�  

�� Apache ���� Chroot

�ܼ򵥡�һ�������������Ϳ���ִ��Perl�ű������ڣ��ҵ������ļ��Ǻܳ��ģ� ��Ϊ�ұ�����chroot�����°���Perl��PostgreSQL�����⡣��һ����Ҫע�⣬�����Ҫ���ӵ����ݿ��ϣ� ��ȷ��������ݿ����������127.0.0.1 �ػ��豸�ϣ����ڹ���DBI��Perl�ű���ָ������Ϊ127.0.0.1. ��������������apache�������ӵ�һ�����ݿ��ϵ����ӣ�
$dbh ||= DBI->connect('dbi:Pg:dbname=DATABASE',"","", {PrintError=>0});

if ($dbh ) {$dbh->{PrintError} = 1;}
else
  {$dbh ||= DBI->connect('dbi:Pg:dbname=DATABASE;host=127.0.0.1',"","",
      {PrintError=>1});}

Դ��ַ: http://httpd.apache.org/dist/httpd/

��apache���벢��װ����ϵͳ��/usr/local/apacheĿ¼�£�Ȼ������Perl�ű���

cd /chroot
 # �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
 # ./Config_Chroot.pl config  httpd
./Config_Chroot.pl install httpd
./Config_Chroot.pl start   httpd
��httpd.conf�ļ���������¼���:
ExtendedStatus On

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

<Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

Ȼ������������������ http://127.0.0.1/server-status �� http://127.0.0.1/server-info ����飡  

�� Ssh ���� Chroot

���ȣ������ssh�Ӷ˿�22�ض���2222�������ˡ�Ȼ�󣬵�������sshʱ�� ������һ����root�˻��¼���2222�˿ڡ��ڳ�ʼ��ssh����ʱ������ֻ����������İ�ȫ�˻��������������������κ����顣 �����ǵ�¼֮�������ڶ˿�127.0.0.1:2222 �ĵڶ���ssh�������������ӵ�������ϵͳ -- ��ڶ���ssh����Ӧ��ֻ�ڻػ��豸�ϼ����� �������Ӧ�����ġ��������Dz�����ȥ��������Ҫ����Ψһ�������������chroot��ssh�������ӡ� �����ᵽ��һ����ϰ��������Լ���ɣ���sshd�����ڷ�root�˻��£��ٰ�װ�ڶ��������ػ��豸��sshd��ʹ��������������ϵͳ��

���⣬����ֻҪ��ssh����chroot�����㿴һ���������Ľ���������ֻ������Щ���㲻�ع۲�����ϵͳ���� ��Ȼ������ܰ���־��¼���ⲿ�豸�Ͼ͸����ˡ�����Ӧ����OpenSSH����Ϊ�˷��㣨�������һ���õĽ�ڣ������õ���һ����ҵ��SSH��

Դ��ַ: http://www.ssh.com/products/ssh/download.cfm

��/usr/local/ssh_chroot�°�װssh�����нű���

cd /chroot
 # �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
 # ./Config_Chroot.pl config  sshd
./Config_Chroot.pl install sshd
./Config_Chroot.pl start   sshd
�Ҿ��ð�ssh����chroot�����µ�һ����������������ǣ��������������ftp������������������������ֻ�����޵�Ȩ�ޡ� Rsync �� SCP �������ϴ��ļ�ʱ���е÷dz��á��Ҳ��Ǻ�ϲ������ftp�����������ǵ�¼���ܶ�ftp��������������chroot�����£� ���Ҳ�ϲ�������Ծɴ����������롣  

�� PostSQL ���� Chroot

�⼸����perlһ���򵥣���������ҪһЩ����ĺ����⡣�ܵ���˵���Ⲣ�������� �ұ�������һ�����ǰ�PostgreSQL���������ϣ��������Ƿ��ڻػ��豸�ϡ���Ϊ���DZ�chroot�˵ģ� ���������Ѿ�chroot�˵ķ����Dz��ܺ����Ӵ��ģ�����web������ apache һ���� �Ұ�Perl�����PostgreSQL��ȥ�ˣ�����ұ������ҵ������ļ���Ӻܶ�Perl�Ķ�����

Դ����: ftp://ftp.us.postgresql.org/source/v7.1.3/postgresql-7.1.3.tar.gz

��apache���벢��װ����ϵͳ���/usr/local/postgresĿ¼�¡�Ȼ������Perl�ű���

cd /chroot
 # �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
 # ./Config_Chroot.pl config  postgres
./Config_Chroot.pl install postgres
./Config_Chroot.pl start   postgres
 

�� Sendmail ���� Chroot

��ִ���ҵ�Perl�ű���
cd /chroot
 # �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
 # ./Config_Chroot.pl config  sendmail
./Config_Chroot.pl install sendmail
./Config_Chroot.pl start   sendmail
�����㷢��ʲô�ˣ��ǵģ����Ծ���root�˻����С����ң���sendmail������ʱ�򣬳���/etc/rc.d/init.d/sendmail�����½���һЩ�ļ��� �ҵĽű���û�н��������⡣���ۺ�ʱ���������/etc/mail�������κθĶ�����ѸĶ������ļ�������/chroot/sendmail/etcĿ¼�¡� �㻹�����/var/spool/mailָ��/chroot/sendmail/var/spool/mail����ʹsendmail������û��������ǵ�¼������ʱ�򣩿���������ͬ���ļ���

��������ʱ���Է����ʼ����������ŵ�ʱ��Ż�����⡣��ˣ��ҿ��԰�sendmail��apacheһ��װ���������⡣ �ҵ�һЩPerl�ű������ⷢ���ʼ���������Ҫ��sendmail���ò¿½±ï¿½ï¿½ï¿½apache��chroot�����¡�  

���� Chroot ������һЩ���顣

�������ҵĹ۵㣺
  1. ��Ļ����ϰ���sendmail, ssh, apache, postgresql, syslog���ڵ����з��񶼱���������chroot�����¡�
  2. ÿһ�����񶼱����Է�root�˻����У���Ҳ����Ҫ�����ܱ����Ķ˿��ض���δ�ܱ����ö˿ڡ������sendmail��syslog��
  3. ��־Ӧ��Զ���ֳ���
  4. ��ÿһ������ʵ�д���������������������ռ�õĴ��̡���������д��ʱ����Ӧ���ڻػ��豸��ΪijЩ����װ�ļ�ϵͳ��
  5. ���в���Ķ����ļ���ӵ����Ӧ����root�˻���
���ڣ�˵��sendmail��syslogd������Ȼ��Ϊ���Dz�Ӧ������root�˻��¡� ����sendmail����Ҳ���ǿ��ܵģ����ҷ������������ڷ�root�˻����Ǽ������ѵģ������һ�û�гɹ����� ���룬sendmail���������ڷ�root�˻���Ӧ��һ�������صĴ�����Ȼ��֪�����������ڷ�root�˻��º����ѣ� ������Ϊ���е����Ѷ��ǿ��Խ���ġ�ֻҪ������ļ�������Ȩ���⣬�Ҿ���sendmail�Dz�����rootȨ�����еġ� �ҿ϶��Ǻ�����ʲô�������Ҳ�������Щ�ϰ��Dz��������ġ�

����syslog���һ�û���Թ���������ΪӦ���Է�root�˻�ȥ��¼��־��������Ӧ���ǿ��еġ� �����ҿ���Ϊÿһ��������chroot�Ļ����¼�¼��־��

���еķ���Ҫ�����ڷ�root�˻��£�������NFS�����ס�������еķ���  

����

 

����

�Ҿ��ö����еķ�����˵chroot������ô�ᣬ���룬���������еķ��������ڷ�root�˻���chroot������Ӧ���Ǹ��ܴ�Ĵ��� ��ϣ����Ҫ�ķ��а�Ӧ��������һ�㣬��Ȼ��Ҳϣ���������а�������Mandrake �Լ��� RedHat ��Ҳ���չ����ˣ����ǿ��Է�Ч Mandrake �� �������˵Ļ����϶�chroot������չ������Ϊ���ǿ��еģ���Ϊ��GNU/Linux�û��ʲô����ֹ�����������˵Ĺ����� ���ij����˾��chroot���з���Ϊ���Ǵ�����һ�����׹���chroot�˵ķ���Ļ�������ô����ӵ����һ������ķ��а档 ��ס��Linux���������������Dz����ٿ��������У�������ÿ���¶�������gui�Ļ�����ȥ�������ǾͲ���Ҫ�˽��ڲ��Ĺ��죬 ���Ҳ���Ҫ֪��������ʲô�����У�����ֻҪ�����ò�֪��������֮��Ч�ľ����ˡ�

�Ҿ���֧�������з��������ڷ�rootȨ�޵�chroot�Ļ����£��κβ���������һ��ķ��а棬�Ҷ����ῼ��������������ʹ������ ����ʹ���еķ���������chroot�����£����ҵĿ���ʹԽ��Խ��Ķ����������� -- ���գ��һ�ﵽ�ҵ����롣

�Ҵ���Ϊchrootдһ��HOWTO��������������ϣ��ij�����ܹ�������ƪ����ת����LyX��ʽ���Ա������Էŵ�Linux��HOWTO�ϡ�  

�ο���Ŀ

  1. ���б䶯�����http://www.gnujobs.com/Articles/23/chroot.html
 

����ƪ���·�������

ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
 ï¿½ï¿½ï¿½ï¿½Ò³ï¿½ï¿½ 

��ҳ��LinuxFocus�༭��ά��
© Mark Nielsen, FDL
LinuxFocus.org

���������LinuxFocus��������������
������Ϣ:
en --> -- : Mark Nielsen (homepage)
en --> zh: l3oL1u <c_liunix(at)hotmail.com>

2002-01-02, generated by lfparser version 2.23