Apache HTTP Server �汾2.2
suEXEC����ʹ��Apache����ʹ�������web���������û���ͬ���û����������CGI��SSI����ͨ������£�CGI����SSI����ִ��ʱʹ�ú�web��������ͬ���û���ݡ�
��ȷ���ø����ԣ����Լ��ٺܶ���Ϊ�ṩ�û�ִ��˽��CGI����SSI�����������İ�ȫ���ա���������ò����Ļ������������ܶ����⣬ʹ��ļ������������İ�ȫ©���������Թ��� setuid root �����Լ����ܵ��µİ�ȫ���ⲻ��Ϥ�Ļ�������ǿ�ҽ����㲻Ҫʹ��suEXEC��
�����ǿ�ʼ��������֮ǰ�����������Apache�������Լ����ĵ������ļ��衣
���ȣ����Ǽ���������ʹ����UNIX����ϵͳ��ֻ���������ϵͳ�ž���setuid��setgid������е����������е�����Ҳ����ˡ������IJ���ϵͳƽ̨����ʹҲ֧��suEXEC�������������ÿ��ܺ����������IJ�����ͬ��
�ڶ������Ǽ�������Ϥ������İ�ȫ����������һЩ����������ϵ�������ȷ���setuid/setgid�����Լ������ϵͳ���ܴ����ĸ���Ӱ��Ͳ�ͬ�İ�ȫ�ȼ���
���������Ǽ���������ʹ��Դ����δ���ĵ�suEXEC�汾������suEXEC�Ĵ��붼���������ߵ���ϸ���鲢�����������ԡ�����Щ�����У����Dz�ȡ�˸���Ԥ����ʩ��ʹ֮����׳����ȫ������Щ������ܻᵼ��Ԥ��֮�������Ͱ�ȫ��������������ǿ�ҵؽ�������Ҫ�����룬�����㾫ͨ��ȫ��̣���Ը���Apache�����鹲��ɹ���
���ģ�Ҳ�����һ�㣬Apache�������Ѿ�����Ĭ�ϲ���װsuEXEC��suEXEC��������Ҫ����Աϸ�¹�ע����ϸ�ڡ�����ϸ���������suEXEC�ĸ������÷�������ԱӦ��ʹ�ñ��İ�װ��������װsuEXEC�����õIJ���Ӧ�þ�����ϸ���ã��Ա�֤ϵͳ�İ�ȫ���С�Apache������ϣ��ͨ������suEXEC�İ�װ����ʹ��Щ����ϸ����⣬���������������Ĺ���Ա��ʹ�á�
�㻹��ʹ��suEXEC�𣿻��룿�ܺã������ǿ�ʼ�ɣ�
�����ǿ�ʼ���úͰ�װsuEXEC֮ǰ��������Ҫ������һ�����İ�ȫģ�͡�����������ܸ��õ����suEXEC�ڲ���������Щʲô���飬�Լ���Щȷ��ϵͳ��ȫ��Ԥ����ʩ��
suEXEC�ǻ���һ��setuid��"��װ"���ó�����"��"Apache web���������á���һ��HTTP������ǹ���Աָ���ġ��Բ�ͬ��"��"�������û�������е�CGI��SSI����ʱ���÷�װ�������á���������������ʱ��Apache��������ij���������UID��GID�ṩ��suEXEC��װ����
��װ��(wrapper)ͨ�����������������IJ��裬��������װ�ijɹ���ʧ�ܣ����������һ������Ϊ�٣����Ѵ��������¼����־�У��˳������ش�����Ϣ���������ִ�С�(������˵��"����"��ָ"CGI/SSI����")
ȷ�����з�װ������һ��ϵͳ��ȷʵ���ڵ��û���
��װ������ʹ������ȷ�����IJ�������ʱ�Ż�ִ�С�Apache web������֪����ȷ�IJ�����ʽ��ʲô�������װ��û���յ���ȷ�����IJ�������˵��Ҫô���ڿ�����ҪôApache�����ƴ�����suEXEC�IJ��ֳ������⡣
����û��ǿ������з�װ�����û��𣿽���һ���û�(Apache�û�)���������з�װ����
Ŀ��CGI/SSI���������"/"��ͷ������".."����·����������Щ���Dz�����ģ�����Ŀ��������λ��suEXEC���ĵ���Ŀ¼�¡�(�μ�����ģ�--with-suexec-docroot=DIR
)
Ŀ�����������û���������
Ŀ�����������û��������
Ŀǰ��suEXEC������rootִ��CGI/SSI����
��СUIDֵ����������ָ���ġ������ָ������ִ��CGI/SSI�������СUIDֵ���������Ա�֤�����ϵͳ�˺ų�ͻ��
Ŀǰ��suEXEC������root���û�ִ��CGI/SSI����
��СGIDֵ����������ָ���ġ������ָ������ִ��CGI/SSI�������СGIDֵ���������Ա�֤�����ϵͳ�˺ų�ͻ��
������dz����ΪĿ���û�����Ĺؼ������ˡ�������ͨ������setuid��setgid��ʵ�ֵġ���������б��У����û���ص���������Ϣ��������ʼ����
��������ڣ��������������ļ�����������л�һ��Ҳ��ʾĿ¼�����ڡ�
����Ƕ��ڷ�������һ��������ô�����Ŀ¼����suEXEC�ĸ��ĵ�Ŀ¼��������������һ���û�Ŀ¼����ô��Ŀ¼����suEXEC���õĸ��û��ĸ�Ŀ¼����(�μ���suEXEC����ѡ��)
���Dz����Ŀ¼���Ÿ������ˣ�ֻ�������ſ��Ըı��Ŀ¼�е����ݡ�
��������ڣ���Ȼ���������С�
���Dz�������������ij����Ȩ�ޡ�
���Dz���Ҫִ�еij����ٴθı�UID/GID��
�û�������ļ���������
suEXECͨ������һ����ȫ�Ŀ�ִ��·��(�������ж���)������ý��̵Ļ���������ͬʱֻ�����ڰ�ȫ���������б�(�����ж���)�����г��Ļ���������
�������suEXEC����������ʼ����Ŀ�����ĵط��ˡ�
����suEXEC��װ����������ʽ�İ�ȫģ�͡�����Щ�ϸ�ǿ����CGI/SSI����ϵ����ơ���������ϸ���ǹ���ȫ֮��һ������չ������ģ�͡�
������ڸð�ȫģ����θ��ݷ�����������������ʹ���ߵ�Ȩ�ޣ��Լ�ǡ����suEXEC��װ�����ܹ�����İ�ȫ��������μ�����;������֡�
�������ǵ�̽�� ...
suEXEC����ѡ��
--enable-suexec
--with-suexec-xxxxx
ѡ���ʹAPACIʹ��suEXEC��������������--with-suexec-bin=PATH
suexec
�����Ƴ����·�����������ѡ��ָ����Ӳ�����ڷ���������磺--with-suexec-bin=/usr/sbin/suexec
--with-suexec-caller=UID
--with-suexec-userdir=DIR
UserDir
ָ��(������"*")����˴�Ӧ�ñ�����Ϊ��ͬ��ֵ����UserDir
ָ����ָ���Ŀ¼��"passwd"�ļ���ָ�����û�����Ŀ¼��ͬʱ��suEXEC������������������Ĭ��ֵ��"public_html"�������֧�ֵ�����������ÿ���û��в�ͬ��UserDir
����Ӧ�ð����Ǽ�����ͬһ����Ŀ¼�£������������ָ�������Ŀ¼��������ò�����"~userdir"�µ�cgi������Ч��--with-suexec-docroot=DIR
DocumentRoot
�����dz�UserDir
��suEXECΨһ����ʹ�õ�Ŀ¼����Ĭ��Ŀ¼�� --datadir
ֵ��ָ���Ĵ���"/htdocs"�ĺ���Ŀ¼�����磺���������"--datadir=/home/apache
"����ô"/home/apache/htdocs"Ŀ¼����ΪsuEXEC���������ĵ���Ŀ¼��--with-suexec-uidmin=UID
--with-suexec-gidmin=GID
--with-suexec-logfile=FILE
--logfiledir
)��--with-suexec-safepath=PATH
����Ͱ�װsuEXEC������
���� --enable-suexec
����suEXEC���ܣ���ôִ��make
����ʱ(Apache�Դ���)suexec
�������ļ��ͻᱻ�Զ��������������������Ϻ�ִ�� make install
������а�װʱ��suexec
�ļ�������װ�� --sbindir
ѡ��ָ����Ŀ¼�У�Ĭ��Ϊ"/usr/local/apache2/sbin/suexec"��
ע�⣬��װ������ҪrootȨ����Ϊ��ʹsuEXEC��������������UID���������߱���Ϊroot
�������ļ�ģʽ�е�ִ��λ��������Ϊ1(����ִ��)��
�������Ȩ��
��ȻsuEXEC��װ������ȷ�����ĵ����߾�������ѡ��
--with-suexec-caller
��ָ�����û����������Ǵ��������Ŀ����ԣ�һ��ϵͳ���߿���suEXECִ���û���ݼ��֮ǰ�������������ʹ���һ�������õ�©����ͨ�������������������Ѱ취�ǣ�ʹ���ļ�ϵ��ͳȨ����ȷ��ֻ��Apache���û����еij������ִ��suEXEC��
������web-server�ǰ���������ʾ�������õģ�
User www
Group webgroup
����suexec
����װ��"/usr/local/apache2/sbin/suexec"Ŀ¼����Ӧ�������������
chgrp webgroup /usr/local/apache2/bin/suexec
chmod 4750 /usr/local/apache2/bin/suexec
�⽫ȷ��ֻ��Apache���û����еij������ִ��suEXEC��
Apache���������������� --sbindir
ѡ��ָ����Ŀ¼(Ĭ��Ϊ��"/usr/local/apache/sbin/suexec")��Ѱ��suexec
�����Apache�ҵ���һ����ȷ���õ�suEXEC�����������ڴ�����־�м�¼������Ϣ��
[notice] suEXEC mechanism enabled (wrapper: /path/to/suexec)
���������������û�������Ϣ����ô�ܿ����Ƿ�����û�ҵ��ʵ��Ĵ����������������ִ�г���û�а�װsetuid root��
���Ҫ��Apache���������й����д�suEXEC���ܣ������ֹͣ����������Apache����һ����HUP��USR1�ź������������Dz����ġ�
���Ҫ�ر�suEXEC���ܣ�Ӧ��ɾ��suexec
�ļ�����ֹͣ����������Apache��
��CGI������������������������²Ż����suEXEC��װ����һ����SuexecUserGroup
ָ��������������������߸�������mod_userdir
ģ�鴦��
����������
ʹ��suEXEC�������ķ���֮һ����VirtualHost
������ʹ��SuexecUserGroup
ָ�ͨ���������ָ����ȷ����ͬ������������UID�����ж�CGI��Դ��������<VirtualHost>
�������User��Group���ִ�С����<VirtualHost>
��û�����ָ���������������UID���ִ�С�
�û�Ŀ¼��
��mod_userdir
�������������suEXEC�������Ա�������û�Ŀ¼������UIDִ��CGI���˹��ܵ�ΨһҪ���ǣ����û�������CGIִ��Ȩ�ޣ�������ű�����������ȫ�����Ҫ�μ� --with-suexec-userdir
����ѡ����
����������suEXEC���������� --with-suexec-logfile
ѡ����ָ������־�ļ��м�¼��Ϣ�������о����úͰ�װ�����������Բ鿴�����־�Լ��������Ĵ�����־��
ע�⣡�ⲿ���ĵ����ܻ�û����ɡ��鿴���µ����汾���뵽Apache������������ĵ���
�������й����ƺͷ�������װ�ļ���ע��������ύ�κι���suEXEC��"bugs"��ǰ������ϸ�Ķ���
���ڰ�ȫ��Ч�ʿ��ǣ�����suEXEC������뱻�������������������û�Ŀ¼�Ķ��㡣������˵�������������4���������������������������������ĵ���Ŀ¼��������ͬһ����ApacheĿ¼�У���������Ϊ������������suEXEC��(�����Ժ���е�)
�ı����������ֵ��Σ�յģ�����ȷ������ÿ��·����������������Ŀ¼���㲻��ϣ��˭����������ķ������ϰ�װ������ľ��
���꣬����㲻������ڸ�ʲô�;������⣬�����������鷳�ġ�