�ץ�����ब�������Ф�����¾Ū�˼¹Ԥ��븢�¤���äƤ��뤫�ɤ������դ��� ���ʤ���Фʤ�ʤ��������褯����ޤ��� POSIX �����ƥ�Ǥϡ�����������å����֤��ե������������뤳�Ȥ��н� ���Ƥ��ޤ����������¿���Υ����ƥ�֤Ǹߴ�������ˤϤ褤��ˡ������Ǥ���
������������ˡ�ˤϤ����Ĥ��ʤ���Фʤ�ʤ���Ȥ��꤬����ޤ��� �ޤ� root ���¤���äƤ���ץ������ϡ�O_EXCL �⡼��(�̾�ե����뤬¸�ߤ��� ����ȼ��Ԥ���)�Υե�����Ǥ⥪���ץ�Ǥ��Ƥ��ޤ��ޤ��� �����ʤ�� open(2)��Ȥ鷺 link(2)����Ѥ��ƥե�������������ɬ�פ�����ޤ��� �ޥ����ǥ����С��ץ�����ब 1 �Ĥ��������¹ԤǤ��ʤ����Ȥ�μ¤˹Ԥ����� �ʤ顢/var/log/̾��.pid �Ȥ�����Ȥ����Υץ������� pid ����Ƥ�����å� �ե������������뤳�Ȥ�Ƥ���ƤߤƤ��������� ������ˡ�ϡ��ץ������ͽ�۳������Ǥ�������Ⱦü�ʾ��֤ˤʤäƤ��ޤ����Ȥ��� �����������Ƥ��ޤ���������Ū�˻��Ѥ���Ƥ��ꡢ¾�Υ����ƥ�ġ��뤫��Ǥ��ñ �����ѤǤ��ޤ���
���ˡ����å��ե����뤬 NFS �ǥޥ���Ȥ��줿�ե����륷���ƥ��ˤ����硢 NFS ���̾�Υե�����ε�ǽ��ʬ�ˤϥ��ݡ��Ȥ��Ƥ��ʤ������Ǻ�ޤ���뤳�� �ˤʤ�ޤ��� open(2)�Υޥ˥奢��ˤɤ������餳���������Ǥ��뤫�������� ����ޤ�(root ���¤Υץ������ˤĤ��Ƥΰ������ˤĤ��Ƥ�����������ޤ�)
... ���å�����Τˡ�open(2)�� O_CREAT and O_EXCL �ե饰�פ˰�¸���� ����ץ������ϡ�������֤˴٤�����������Ƥ��ޤ��� ���å��ե������Ȥäƥ��ȥߥå��ʥե�������å���Ԥ��ˤϡ� �ޤ�Ʊ���ե����륷���ƥ��˥�ˡ����ʥե��������(���Ȥ��Хۥ� ��̾�� pid ���Ȥ߹�碌�ޤ�)�����ˤ��Υ��å��ե������ link(2)�ǥ� ��ĥ�ꡢ���줫���ˡ����ʥե�������Ф��� stat(2)��Ԥäƥ�� �λ��ȿ��� 2 �������Ƥ��뤳�Ȥ��ǧ���ޤ��� link(2)���֤��ͤ�Ȥ��Τϻߤ�Ƥ���������
�Ǥ���ʤ顢�ѥ���ɤ������ɤϼ����ǽʤ��褦�ˤ��Ƥ��������� �ä˥�������ʥ��ץꥱ�������ξ�硢�̾�Ԥ��桼���Υ�������ǧ�ڤˤޤ����� ���ޤäƤ��������� ���ץꥱ������� CGI ������ץȤξ�硢Web �����С����Ѱդ��Ƥ����ɸ�ˤޤ� ���Ƥ��������� ���ץꥱ��������ͥåȥ����ͳ�����Ѥ���Τ�Τʤ顢ʿʸ�ǥѥ���ɤ� ���뤳�Ȥ�ߤ�Ƥ�������(��ǽ�ʤ�)���Ȥ����Τϥͥåȥ������İ���뤳�Ȥǡ� ���Ȥ��ñ�˲���ꤵ��Ƹ�ǻȤ��Ƥ��ޤ�����Ǥ��� �ͥåȥ�������Ѥ���ʤ顢���ʤ��Ȥ�����������ȡ��ѥ���ɤλ��Ѥ�ͤ��� ��������(ľ�ܤ������Ƥ��빶��ˤϼ夤�ΤǤ������ͥåȥ������İ���Ф��Ƥ� ͭ���Ǥ�)
���ץꥱ������ѥ���ɤ�ɬ�פ�����ʤ顢�Ȥä��餹������� ���ޤäƤ�����������������Хѥ���ɤ�����֤�û���ʤ�ޤ��� Java �Ǥϥѥ���ɤ���¸���Ƥ����Τ� String ����Ȥ�ʤ��褦�ˤ��Ƥ��������� String �������Ƥ��ѹ��Ǥ��ʤ���������Ǥ�(String �������ץ����ΰ�������� �����Ѥʤ��¤��Ǥ��ʤ����ͤǡ�����⤽�λ��ͤΤޤޤ��Ȼפ��ޤ�) ���Τ���� char[] ��Ȥä���¸���Ƥ���������������ˡ���Ȥ����ˤǤ��Ǥ� �ޤ���
���ץꥱ�������ǥ桼�����ѥ���ɤ�����Ǥ���Τʤ�ѥ���ɤ�����å� ���ơ���Ŭ�ڤʡץѥ���ɤ�������Ĥ��Ƥ�������(����˺ܤäƤ��ʤ������� �ʾ��ʸ�����Ǥ��롢�ʤ�)�� Ŭ�ڤʥѥ���ɤ��դ����Ĥ������ʤ顢 http://consult.cern.ch/writeup/security/security_3.html �ƤϤɤ��Ǥ��礦����
Linux �����ͥ�(1.3.30 �ʾ�)�ˤ����������ǽ������ޤ��� ��������ˤϼ��Ϥ�ȯ������Υ�����ǥХ����ɥ饤�Ф�¾�ξ����� �������ƥ���ȥ��ԡ����ס���˼���ޤ��� /dev/random �˥�����������ȥ���ȥ��ԡ����ס���ˤ���Υ���������� ���줿�ӥåȿ����ϰϤǤ�������������ͤ��֤���Ƥ��ޤ�(����ȥ��ԡ��� �ס��뤬���ξ��ϡ����Ϥ���Υ��������ޤäƤ���ޤǡ��ƤӽФ���֥��å� ���ޤ�)�� /dev/unrandom �ǥ����������ơ��礭���ͤ��᤹��ȡ�����ȥ��ԡ����ס��� ���Ȥ��̤�����Ƥ��ͤ��֤äƤ��ޤ��� �����Ź沽����Ū�����Ѥ���ʤ�(���Ȥ��Х����������Τ���)��/dev/random �� �ȤäƤ��������� ����˾ܤ�������ϡ������ƥ�ˤ��륪��饤��ޥ˥奢��� random(4)�� ���Ƥ���������
�Ź楢�르�ꥺ����̿��ץ��ȥ���ϡ������ƥ�ΰ�����ݻ�����Τ�ɬ�פǡ� �ä˥����ͥåȤΤ褦�ʿ���Ǥ��ʤ��ͥåȥ�����ͳ���Ƥ��Ȥ�� �Ԥ�����ɬ�ܤǤ��� ��ǽ�ʤ���̿����å�����Ź沽�������å�����ü������Ƥ��������� ���������ǧ�ھ�����äǤ����ץ饤�Х������ݸ�ˤ���Ω���ޤ���
������Ȥ����Ź沽���르�ꥺ����̿��ץ��ȥ������夲��ˤϺ��Ȥ�ʤ� �ޤ��Τǡ���ʬ�Ǻ�����ȤϤ��ʤ��Ǥ��������� ���Τ����ˡ�����Ū�˿���������Ω����Ƥ����¸�Υץ��ȥ���Ǥ��롢SSL��SSH�� IPSec��GnuPG/PGP �� Kerberos �����Ѥ��Ƥ��������� �����������졢Ĺǯ�ι�����Ѥ��Ƥ�����沽���르�ꥺ�������ȤäƤ������� (���Ȥ��Хȥ�ץ� DES �ʤɡ��õ��ˤ�����Ѥ�˸�����ʤ����)�� �äˡ���ʬ���Ź沽������Ȥǡ����Ƥ��뤫���İ����Ƥ���ΤǤʤ���С� ��沽���르�ꥺ����������褦�ʤ��ȤϤ��ʤ��Ǥ��������� ���μ�Υ��르�ꥺ��κ����ϡ�����Ȥ����˵����줿��ȤǤ���
��Ϣ���ơ��ɤ����Ƥ��ȼ����̿��ץ��ȥ����ȯ���ʤ���Фʤ�ʤ��ʤ顢 ���˵�������������Ĵ���Ƥ��������� Bellovin [1989] �˺ܤäƤ��� TCP/IP �ץ��ȥ���ˤ����륻�����ƥ��ˤĤ��Ƥ� ��ӥ塼�Τ褦�ʸ�ŵŪ�ʻ����� Bruce Schneier [1998] �����Ω�ĤȻפ��ޤ��� �ޤ���Mudge ��ˤ��ޥ��������եȼҤ� PPTP �μ����ˤ�䤽�θ�ο�ܤ� ���ͤˤʤ�Ȼפ��ޤ���
����Mudge ��ϡ�L0pht Heavy Industries �Ȥ���Ķ�ϥå���(����å��� �� ɾ�����̤�Ƥ���褦�Ǥ�)���Ĥμ�Ǥ�ʳؼԤǤ��������ߤ� @Stake �Ȥ����������ƥ���Ϣ�Υ����ӥ��������ҤǸ��泫ȯô������Ĺ�� ���ޤ���
����������ץ��ȥ�����Ф��Ƥϡ�������ӥ塼��Ԥ��٤��ǡ��Ǥ���ʤ� �����Ѥ��Ƥ���������
Linux ��Υ������ƥ��˴ط������ץ���������ˤ� Java �� Java �С�����롦 �ޥ���(JVM)��ȤäƼ�������Ƥ����Τ�����ޤ��� Java �ǰ��������ᤵ���ץ�������ˤ� Gong [1999] ¾�λ����Ǿܺ� ���Ҥ٤��Ƥ��ޤ��� ������ Gong [1999] ����ȴ�褷�������ݥ���Ȥ��Ƥ����ޤ���
Linux �ǥ����ȥ�ӥ塼�����ΤۤȤ�ɤϡ�PAM(Pluggable Authentication Modules)����äƤ��ꡢ�桼����ǧ�ڤ˽�����б��Ǥ��뤷���ߤˤʤäƤ��ޤ��� �����ͥ�ΥС������ 2.2 ����Ǥ��� Red Hat Linux��Caldera��Debian ������ ���Ƥ��ꡢFreeBSD �ΥС������ 3.1 ����Ѥ��Ƥ��ޤ��� PAM ��Ȥ��ȡ��ץ�������ǧ�ڤΤ�����(�ѥ���ɤ䥹�ޡ��ȡ�������)����Ω ������ΤˤǤ��ޤ��� �Ĥޤꡢ�ץ������� PAM ��ƤӽФ���PAM ���������륷���ƥ�δ����Ԥ����ꤷ�� ���Ƥ�����å������ɤΡ�ǧ�ڥ⥸�塼��פ�ɬ�פ��������Ƚ�Ǥ��ޤ��� ǧ�ڤ�ɬ�פȤʤ�ץ������(���Ȥ��Хѥ���ɤ����Ϥ���)��������Ƥ���ʤ顢 PAM ����Ѥ��٤��Ǥ��� �ܺ٤ϡ�Linux-PAM �ץ��������Ȥ� Web �����ȤǤ��롢 http://www.kernel.org/pub/linux/libs/pam/index.html �Ȥ��Ƥ���������
������ξ��ʤ��Ȥ�����ϡ��Ȥ����˥ץ������˥����å������Ƥ������� (���Ȥ��С��ץ�����ब���Ϥ����Ȥ�����)�� ���Ȥ��С�����ǥ��쥯�ȥ�ǡ�sticky�ץӥåȤ�Ω�äƤ��뤳�Ȥ�����ˤ��Ƥ��� �ʤ顢�����ˤ����ʤäƤ��뤫��ƥ��Ȥ��Ƥ����������ƥ��Ȥ˻��֤Ϥ�����ʤ� �Ǥ���������ˤ�äƿ����������ɤ����Ȥ��Ǥ���Ϥ��Ǥ��� �⤷���줾��θƤӽФ��ǥƥ��ȼ¹Ի��֤������뤳�Ȥ����ˤʤ�ʤ顢���ȡ��� ���ˤϺ���¹Ԥ��褦�ˤ��Ƥ���������
�ƺ������ϥץ�����൯ư���䥻�å���ϻ���ư��������ʻ��˽���褦 �ˤ��Ƥ��������� ����Ȥ��ƹͤ������Τϡ�ǯ���������uid��euid��gid��egid��ü������ �ץ����� id�����ޥ�ɥ饤����ͤǤ��� �ƺ�������Τ�������äƤϡ�syslog(3)�ؿ������ͤˤʤ�Ȼפ��ޤ���
���ȡ��롦������ץȤϤǤ�����������˥ץ������ȡ��뤷�� ���������� �ǥե���ȤǤϡ����ȡ��뤹��ե����뤹�٤Ƥ� root ��¾�Υ����ƥ���� �桼���ν�ͭ�ˤ��ơ�¾�Υ桼�������ߤ��Ǥ��ʤ��褦�ˤ��Ƥ��������� ��������� root �ʳ��Υ桼���ϥ����륹�ȡ���Ǥ��ޤ��� root �ʳ��Υ桼�������ȡ���Ǥ�������Ѱդ��Ƥ����Ƥ����С�root �θ��� ������ʤ��桼���䥤�ȡ��������ʤ������ԤǤ�ץ�������Ȥ���褦 �ˤʤ�ޤ���
��ǽ�Ǥ���С�root �� setuid �� setgid ���줿�ץ������Ϻ��ʤ��Ǥ��������� �桼���ˤ� root �ǥ�������褦�ˤ����Ƥ���������
�����ɤ��Żҽ�̾�Ƥ���������������������ѼԤ������Ƥ�����Τ����ѤǤ��� ��Τ��ɤ���������å��Ǥ��ޤ���
��������������ץ�������������������Ū�˥��Ԥ����Ȥ�Ƥ���� �ߤƤ��������� ��������������ץ�����बưŪ���Ȥ�ʤ��褦�ˤ���С�ưŪ�ʥ饤�� ���Υ��ǽ�����ä�������й��Ǥ��ޤ���
�����ɤ�į��Ƥ�����ˤϾ��˥ޥå����ʤ����������٤Ƥ�Ƥ���Ƥ��������� ���Ȥ��� switch ʸ�����ä���硢�ɤΥ������ˤ�ޥå����ʤ��ä����ɤ��ʤ� �Τ��� ��if��ʸ�����äƾ�郎�����ä���硢�ɤΤ褦�˽�������뤫��
�ץ�������ѥ��뤹�����¹Ԥ�����˥����å���ǽ��μ¤�Ư������褦�� ���ơ����֤�ư�������⤽�����Ƥ����Ƥ��������� Perl �Υץ������ʤ�ٹ�ե饰(-w)��Ĥ���٤��Ǥ�����������ȴ����ˤʤ� ���⤷��ʤ������ɤ䤹�Ǥ˸Ť�ʸˡ�ˤʤäƤ��ޤä������Ф��Ʒٹ��Ф��Ƥ��� �ޤ����ޤ�����ͽ�ɥե饰(-T)��Ĥ���ȡ����餫�Υե��륿����ʤ��¤ꡢ ����Ǥ��ʤ����Ϥ�ľ�ܻ��ѤǤ��ʤ��ʤ�ޤ��� �������ƥ���Ϣ�Υץ������Ϸٹ�٤�ͭ���ˤ��Ʒٹ𤬽Фʤ��褦�� ����ѥ��뤹�٤��Ǥ��� gcc ��Ȥä� C �� C++ ��ѥ��뤹��ˤϡ����ʤ��ȤⲼ���Υ���ѥ������ �ե饰����Ѥ��Ƥ�������(¿���ηٹ��å�������ͭ���ˤ��ơ��ٹ𤹤٤Ƥ� �٤��Ƥ�������)��
gcc -Wall -Wpointer-arith -Wstrict-prototypes