0 - en to ja translation catalogue (398 entries)

en: System boot
ja: システム起動

en: Initscripts
ja: 初期化スクリプト

en: Rights
ja: 権限

en: Permissions
ja: パーミッション

en: Supervision
ja: 管理

en: Inetd
ja: inetd

en: Cron
ja: cron

en: Backup
ja: バックアップ

en: Hotplug
ja: ホットプラグ

en: Unix Services
ja: Unix サービス

en: This chapter covers a number of basic services that are common to many Unix systems. All administrators should be familiar with them.
ja: この章では、多くの Unix システムに共通する数多くの基本的なサービスをカバーします。すべての管理者はこれらの基本的なサービスに精通しているべきです。

en: System Boot
ja: システム起動

en: <primary>booting</primary><secondary>the system</secondary>
ja: <primary sortas="キドウ">起動</primary><secondary sortas="システムノキドウ">システムの起動</secondary>

en: When you boot the computer, the many messages scrolling by on the console display many automatic initializations and configurations that are being executed. Sometimes you may wish to slightly alter how this stage works, which means that you need to understand it well. That is the purpose of this section.
ja: コンピュータを起動する際、コンソール画面にスクロールされる多くのメッセージには、実行されている多くの自動初期化と自動設定に関する情報が表示されます。この段階の挙動を少し変えたいと思うことがあるかもしれません。これは起動処理をよく理解する必要があることを意味しています。この節の目的は起動処理をよく理解することにあります。

en: The systemd init system
ja: systemd init システム

en: The “real init” is currently provided by <emphasis role="pkg">systemd</emphasis> and this section documents this init system.
ja: 「init の実体」は現在 <emphasis role="pkg">systemd</emphasis> によって提供されています。この節ではこの init システムに関して説明します。

en: <emphasis>CULTURE</emphasis> Before <command>systemd</command>
ja: <emphasis>CULTURE</emphasis> <command>systemd</command> 以前

en: <command>systemd</command> is a relatively recent “init system”, and although it was already available, to a certain extent, in <emphasis role="distribution">Wheezy</emphasis>, it has only become the default in Debian <emphasis role="distribution">Jessie</emphasis>. Previous releases relied, by default, on the “System V init” (in the <emphasis role="pkg">sysv-rc</emphasis> package), a much more traditional system. We describe the System V init later on.
ja: <command>systemd</command> は比較的最近の「init システム」で、既に <emphasis role="distribution">Wheezy</emphasis> ではある程度利用できましたが、Debian <emphasis role="distribution">Jessie</emphasis> からデフォルトに採用されました。以前のリリースはデフォルトで「System V init」(<emphasis role="pkg">sysv-rc</emphasis> パッケージに含まれます) を採用していました。System V init はより伝統的なシステムです。System V init については後で説明します。

en: <emphasis>ALTERNATIVE</emphasis> Other boot systems
ja: <emphasis>ALTERNATIVE</emphasis> 他の起動システム

en: Boot sequence of a computer running Linux with systemd
ja: systemd を使う Linux の動くコンピュータの起動シーケンス

en: <emphasis>SPECIFIC CASE</emphasis> Booting from the network
ja: <emphasis>SPECIFIC CASE</emphasis> ネットワークからの起動

en: Booting from the network can be used to launch the <command>debian-installer</command> or FAI (see <xref linkend="sect.installation-methods" />).
ja: ネットワークからの起動は <command>debian-installer</command> や FAI (<xref linkend="sect.installation-methods" />を参照してください) を起動するために使われます。

en: <emphasis>BACK TO BASICS</emphasis> The process, a program instance
ja: <emphasis>BACK TO BASICS</emphasis> プロセス、プログラムインスタンス

en: <primary>process</primary>
ja: <primary>プロセス</primary>

en: <emphasis>SECURITY</emphasis> Using a shell as <command>init</command> to gain root rights
ja: <emphasis>SECURITY</emphasis> <command>init</command> にシェルを実行させて root 権限を獲得する

en: By convention, the first process that is booted is the <command>init</command> program (which is a symbolic link to <filename>/lib/systemd/systemd</filename> by default). However, it is possible to pass an <literal>init</literal> option to the kernel indicating a different program.
ja: 慣例によれば、起動される最初のプロセスは <command>init</command> プログラムです (これはデフォルトで <filename>/lib/systemd/systemd</filename> へのシンボリックリンクです)。しかしながら、カーネルに <literal>init</literal> オプションを渡して別のプログラムを開始することも可能です。

en: Any person who is able to access the computer can press the <keycap>Reset</keycap> button, and thus reboot it. Then, at the bootloader's prompt, it is possible to pass the <literal>init=/bin/sh</literal> option to the kernel to gain root access without knowing the administrator's password.
ja: コンピュータに触ることができる人は誰でも <keycap>Reset</keycap> ボタンを押してコンピュータを再起動することが可能です。そして、ブートローダプロンプトでカーネルに <literal>init=/bin/sh</literal> オプションを渡せば、管理者パスワードを知らなくても root 権限を取得できます。

en: To prevent this, you can protect the bootloader itself with a password. You might also think about protecting access to the BIOS (a password protection mechanism is almost always available), without which a malicious intruder could still boot the machine on a removable media containing its own Linux system, which they could then use to access data on the computer's hard drives.
ja: これを避けるため、パスワードでブートローダを保護することが可能です。さらに BIOS へのアクセスも保護したいと考えるかもしれません (BIOS に対するパスワード保護機能はほぼ必ず付いています)。BIOS に対するパスワード保護機能がなければ、悪意ある侵入者が自分の Linux システムを含むリムーバブルメディアからマシンを起動して、コンピュータのハードドライブのデータにアクセスするかもしれません。

en: Since unit files are declarative rather than scripts or programs, they cannot be run directly, and they are only interpreted by systemd; several utilities therefore allow the administrator to interact with systemd and control the state of the system and of each component.
ja: ユニットファイルは宣言型の設定ファイルでありスクリプトやプログラムではないため、ユニットファイルを直接実行することは不可能で、ユニットファイルは systemd によってのみ解釈されます。いくつかのユーティリティを使うことで、管理者は systemd と情報をやり取りして、システムおよびシステム部品の状態を制御することが可能です。

en: The first such utility is <command>systemctl</command>. When run without any arguments, it lists all the unit files known to systemd (except those that have been disabled), as well as their status. <command>systemctl status</command> gives a better view of the services, as well as the related processes. If given the name of a service (as in <command>systemctl status ntp.service</command>), it returns even more details, as well as the last few log lines related to the service (more on that later).
ja: systemd と情報をやり取りする 1 番目のユーティリティとして <command>systemctl</command> が挙げられます。<command>systemctl</command> を引数なしで実行した場合、systemd が把握しているすべてのユニットファイル (無効化されているものを除きます) およびその状態が表示されます。<command>systemctl status</command> を使うことで、サービスおよび関連するプロセスをよりわかりやすく表示することが可能です。サービスの名前を指定した場合 (<command>systemctl status ntp.service</command> のように指定した場合)、<command>systemctl</command> はさらに詳しい情報および指定したサービスに関連するログの最後の数行を表示します (後から詳しく説明します)。

en: Starting a service by hand is a simple matter of running <command>systemctl start <replaceable>servicename</replaceable>.service</command>. As one can guess, stopping the service is done with <command>systemctl stop <replaceable>servicename</replaceable>.service</command>; other subcommands include <command>reload</command> and <command>restart</command>.
ja: 手作業でサービスを開始するのは簡単で、<command>systemctl start <replaceable>servicename</replaceable>.service</command> を実行するだけです。予想通り、サービスを停止するには <command>systemctl stop <replaceable>servicename</replaceable>.service</command> を使います。また、他のサブコマンドには <command>reload</command> と <command>restart</command> があります。

en: To control whether a service is active (i.e. whether it will get started automatically on boot), use <command>systemctl enable <replaceable>servicename</replaceable>.service</command> (or <command>disable</command>). <command>is-enabled</command> allows checking the status of the service.
ja: サービスを有効化するには (たとえば起動時に自動的にサービスを開始するには)、<command>systemctl enable <replaceable>servicename</replaceable>.service</command> を使います (無効化するには <command>disable</command> を使います)。<command>is-enabled</command> を使えば、サービスの状態を確認することが可能です。

en: <computeroutput># </computeroutput><userinput>journalctl -u ssh.service
    </userinput><computeroutput>-- Logs begin at Tue 2015-03-31 10:08:49 CEST, end at Tue 2015-03-31 17:06:02 CEST. --
    Mar 31 10:08:55 mirtuel sshd[430]: Server listening on 0.0.0.0 port 22.
    Mar 31 10:08:55 mirtuel sshd[430]: Server listening on :: port 22.
    Mar 31 10:09:00 mirtuel sshd[430]: Received SIGHUP; restarting.
    Mar 31 10:09:00 mirtuel sshd[430]: Server listening on 0.0.0.0 port 22.
    Mar 31 10:09:00 mirtuel sshd[430]: Server listening on :: port 22.
    Mar 31 10:09:32 mirtuel sshd[1151]: Accepted password for roland from 192.168.1.129 port 53394 ssh2
    Mar 31 10:09:32 mirtuel sshd[1151]: pam_unix(sshd:session): session opened for user roland by (uid=0)
    </computeroutput>
ja: <computeroutput># </computeroutput><userinput>journalctl -u ssh.service
    </userinput><computeroutput>-- Logs begin at 火 2015-03-31 17:08:49 JST, end at 水 2015-04-01 00:06:02 JST. --
     3月 31 17:08:55 mirtuel sshd[430]: Server listening on 0.0.0.0 port 22.
     3月 31 17:08:55 mirtuel sshd[430]: Server listening on :: port 22.
     3月 31 17:09:00 mirtuel sshd[430]: Received SIGHUP; restarting.
     3月 31 17:09:00 mirtuel sshd[430]: Server listening on 0.0.0.0 port 22.
     3月 31 17:09:00 mirtuel sshd[430]: Server listening on :: port 22.
     3月 31 17:09:32 mirtuel sshd[1151]: Accepted password for roland from 192.168.1.129 port 53394 ssh2
     3月 31 17:09:32 mirtuel sshd[1151]: pam_unix(sshd:session): session opened for user roland by (uid=0)
    </computeroutput>

en: Another useful command-line flag is <command>-f</command>, which instructs <command>journalctl</command> to keep displaying new messages as they are emitted (much in the manner of <command>tail -f <replaceable>file</replaceable></command>).
ja: その他の役に立つコマンドラインオプションとして <command>-f</command> が挙げられます。これを使った場合、<command>journalctl</command> は新しいメッセージを受け取ったらそのメッセージを表示し続けます (これは <command>tail -f <replaceable>file</replaceable></command> とほぼ同じやり方です)。

en: If a service doesn't seem to be working as expected, the first step to solve the problem is to check that the service is actually running with <command>systemctl status</command>; if it is not, and the messages given by the first command are not enough to diagnose the problem, check the logs gathered by journald about that service. For instance, assume the SSH server doesn't work:
ja: サービスが期待通りに動いていないように見える場合、問題解決に向けて手始めに <command>systemctl status</command> を実行し、今現在サービスが動いているか否かを確認します。サービスが実行されておらず、<command>systemctl status</command> の表示したメッセージが問題の原因を解明するのに十分でない場合、journald が収集したサービスに関連するログを確認します。たとえば、SSH サービスが動いていないと仮定すると、以下の手順で状況を確認します。

en: <computeroutput># </computeroutput><userinput>systemctl status ssh.service
    </userinput><computeroutput>● ssh.service - OpenBSD Secure Shell server
       Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
       Active: failed (Result: start-limit) since Tue 2015-03-31 17:30:36 CEST; 1s ago
      Process: 1023 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
      Process: 1188 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
     Main PID: 1188 (code=exited, status=255)
    
    Mar 31 17:30:36 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
    Mar 31 17:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
    Mar 31 17:30:36 mirtuel systemd[1]: ssh.service start request repeated too quickly, refusing to start.
    Mar 31 17:30:36 mirtuel systemd[1]: Failed to start OpenBSD Secure Shell server.
    Mar 31 17:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
    # </computeroutput><userinput>journalctl -u ssh.service
    </userinput><computeroutput>-- Logs begin at Tue 2015-03-31 17:29:27 CEST, end at Tue 2015-03-31 17:30:36 CEST. --
    Mar 31 17:29:27 mirtuel sshd[424]: Server listening on 0.0.0.0 port 22.
    Mar 31 17:29:27 mirtuel sshd[424]: Server listening on :: port 22.
    Mar 31 17:29:29 mirtuel sshd[424]: Received SIGHUP; restarting.
    Mar 31 17:29:29 mirtuel sshd[424]: Server listening on 0.0.0.0 port 22.
    Mar 31 17:29:29 mirtuel sshd[424]: Server listening on :: port 22.
    Mar 31 17:30:10 mirtuel sshd[1147]: Accepted password for roland from 192.168.1.129 port 38742 ssh2
    Mar 31 17:30:10 mirtuel sshd[1147]: pam_unix(sshd:session): session opened for user roland by (uid=0)
    Mar 31 17:30:35 mirtuel sshd[1180]: /etc/ssh/sshd_config line 28: unsupported option "yess".
    Mar 31 17:30:35 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
    Mar 31 17:30:35 mirtuel systemd[1]: Unit ssh.service entered failed state.
    Mar 31 17:30:35 mirtuel sshd[1182]: /etc/ssh/sshd_config line 28: unsupported option "yess".
    Mar 31 17:30:35 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
    Mar 31 17:30:35 mirtuel systemd[1]: Unit ssh.service entered failed state.
    Mar 31 17:30:35 mirtuel sshd[1184]: /etc/ssh/sshd_config line 28: unsupported option "yess".
    Mar 31 17:30:35 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
    Mar 31 17:30:35 mirtuel systemd[1]: Unit ssh.service entered failed state.
    Mar 31 17:30:36 mirtuel sshd[1186]: /etc/ssh/sshd_config line 28: unsupported option "yess".
    Mar 31 17:30:36 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
    Mar 31 17:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
    Mar 31 17:30:36 mirtuel sshd[1188]: /etc/ssh/sshd_config line 28: unsupported option "yess".
    Mar 31 17:30:36 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
    Mar 31 17:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
    Mar 31 17:30:36 mirtuel systemd[1]: ssh.service start request repeated too quickly, refusing to start.
    Mar 31 17:30:36 mirtuel systemd[1]: Failed to start OpenBSD Secure Shell server.
    Mar 31 17:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
    # </computeroutput><userinput>vi /etc/ssh/sshd_config
    </userinput><computeroutput># </computeroutput><userinput>systemctl start ssh.service
    </userinput><computeroutput># </computeroutput><userinput>systemctl status ssh.service
    </userinput><computeroutput>● ssh.service - OpenBSD Secure Shell server
       Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
       Active: active (running) since Tue 2015-03-31 17:31:09 CEST; 2s ago
      Process: 1023 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
     Main PID: 1222 (sshd)
       CGroup: /system.slice/ssh.service
               └─1222 /usr/sbin/sshd -D
    # </computeroutput>
ja: <computeroutput># </computeroutput><userinput>systemctl status ssh.service
    </userinput><computeroutput>● ssh.service - OpenBSD Secure Shell server
       Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
       Active: failed (Result: start-limit) since 水 2015-04-01 00:30:36 JST; 1s ago
      Process: 1023 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
      Process: 1188 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
     Main PID: 1188 (code=exited, status=255)
    
     4月  1 00:30:36 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
     4月  1 00:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
     4月  1 00:30:36 mirtuel systemd[1]: ssh.service start request repeated too quickly, refusing to start.
     4月  1 00:30:36 mirtuel systemd[1]: Failed to start OpenBSD Secure Shell server.
     4月  1 00:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
    # </computeroutput><userinput>journalctl -u ssh.service
    </userinput><computeroutput>-- Logs begin at 水 2015-04-01 00:29:27 JST, end at 水 2015-04-01 00:30:36 JST. --
     4月  1 00:29:27 mirtuel sshd[424]: Server listening on 0.0.0.0 port 22.
     4月  1 00:29:27 mirtuel sshd[424]: Server listening on :: port 22.
     4月  1 00:29:29 mirtuel sshd[424]: Received SIGHUP; restarting.
     4月  1 00:29:29 mirtuel sshd[424]: Server listening on 0.0.0.0 port 22.
     4月  1 00:29:29 mirtuel sshd[424]: Server listening on :: port 22.
     4月  1 00:30:10 mirtuel sshd[1147]: Accepted password for roland from 192.168.1.129 port 38742 ssh2
     4月  1 00:30:10 mirtuel sshd[1147]: pam_unix(sshd:session): session opened for user roland by (uid=0)
     4月  1 00:30:35 mirtuel sshd[1180]: /etc/ssh/sshd_config line 28: unsupported option "yess".
     4月  1 00:30:35 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
     4月  1 00:30:35 mirtuel systemd[1]: Unit ssh.service entered failed state.
     4月  1 00:30:35 mirtuel sshd[1182]: /etc/ssh/sshd_config line 28: unsupported option "yess".
     4月  1 00:30:35 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
     4月  1 00:30:35 mirtuel systemd[1]: Unit ssh.service entered failed state.
     4月  1 00:30:35 mirtuel sshd[1184]: /etc/ssh/sshd_config line 28: unsupported option "yess".
     4月  1 00:30:35 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
     4月  1 00:30:35 mirtuel systemd[1]: Unit ssh.service entered failed state.
     4月  1 00:30:36 mirtuel sshd[1186]: /etc/ssh/sshd_config line 28: unsupported option "yess".
     4月  1 00:30:36 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
     4月  1 00:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
     4月  1 00:30:36 mirtuel sshd[1188]: /etc/ssh/sshd_config line 28: unsupported option "yess".
     4月  1 00:30:36 mirtuel systemd[1]: ssh.service: main process exited, code=exited, status=255/n/a
     4月  1 00:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
     4月  1 00:30:36 mirtuel systemd[1]: ssh.service start request repeated too quickly, refusing to start.
     4月  1 00:30:36 mirtuel systemd[1]: Failed to start OpenBSD Secure Shell server.
     4月  1 00:30:36 mirtuel systemd[1]: Unit ssh.service entered failed state.
    # </computeroutput><userinput>vi /etc/ssh/sshd_config
    </userinput><computeroutput># </computeroutput><userinput>systemctl start ssh.service
    </userinput><computeroutput># </computeroutput><userinput>systemctl status ssh.service
    </userinput><computeroutput>● ssh.service - OpenBSD Secure Shell server
       Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
       Active: active (running) since 水 2015-04-01 00:31:09 JST; 2s ago
      Process: 1023 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
     Main PID: 1222 (sshd)
       CGroup: /system.slice/ssh.service
               └─1222 /usr/sbin/sshd -D
    # </computeroutput>

en: After checking the status of the service (failed), we went on to check the logs; they indicate an error in the configuration file. After editing the configuration file and fixing the error, we restart the service, then verify that it is indeed running.
ja: ここでは SSH サービスの状態が失敗状態であることを確認した後、ログの確認作業に進みました。その結果、ログは設定ファイル内にエラーがあることを示しています。そこで設定ファイルを編集してエラーを修正した後、SSH サービスを再起動し、SSH サービスが本当に動いていることを確認しました。

en: <emphasis>GOING FURTHER</emphasis> Other types of unit files
ja: <emphasis>GOING FURTHER</emphasis> ユニットファイルの他の型

en: We have only described the most basic of systemd's capabilities in this section. It offers many other interesting features; we will only list a few here:
ja: この節では、systemd の最も基本的な機能だけを説明しました。systemd は他にも多くの興味深い機能を備えていますが、ここでは一部だけを紹介します。

en: The System V init system
ja: System V init システム

en: Among these, you will find successively programs in charge of:
ja: <filename>/etc/rcS.d/</filename> ディレクトリに含まれるスクリプトは特に以下の点を担当します。

en: configuring the console's keyboard;
ja: コンソールキーボードの設定。

en: loading drivers: most of the kernel modules are loaded by the kernel itself as the hardware is detected; extra drivers are then loaded automatically when the corresponding modules are listed in <filename>/etc/modules</filename>;
ja: ドライバの読み込み。ほとんどのカーネルモジュールはハードウェアを検出した時にカーネル自身によって読み込まれます。追加のドライバはそれに対応するモジュールが <filename>/etc/modules</filename> にリストされている場合に読み込まれます。

en: checking the integrity of filesystems;
ja: ファイルシステムの整合性確認。

en: mounting local partitions;
ja: ローカルパーティションのマウント。

en: configuring the network;
ja: ネットワークの設定。

en: mounting network filesystems (NFS).
ja: ネットワークファイルシステム (NFS) のマウント。

en: <emphasis>BACK TO BASICS</emphasis> Kernel modules and options
ja: <emphasis>BACK TO BASICS</emphasis> カーネルモジュールとオプション

en: <primary>modules</primary><secondary>kernel modules</secondary>
ja: <primary>モジュール</primary><secondary>カーネルモジュール</secondary>

en: After this stage, <command>init</command> takes over and starts the programs enabled in the default runlevel (which is usually runlevel 2). It executes <command>/etc/init.d/rc 2</command>, a script that starts all services which are listed in <filename>/etc/rc2.d/</filename> and whose names start with the “S” letter. The two-figures number that follows had historically been used to define the order in which services had to be started, but nowadays the default boot system uses <command>insserv</command>, which schedules everything automatically based on the scripts' dependencies. Each boot script thus declares the conditions that must be met to start or stop the service (for example, if it must start before or after another service); <command>init</command> then launches them in the order that meets these conditions. The static numbering of scripts is therefore no longer taken into consideration (but they must always have a name beginning with “S” followed by two digits and the actual name of the script used for the dependencies). Generally, base services (such as logging with <command>rsyslog</command>, or port assignment with <command>portmap</command>) are started first, followed by standard services and the graphical interface (<command>gdm3</command>).
ja: <command>/etc/init.d/rcS</command> の完了後、<command>init</command> が起動処理を引き継いで、デフォルトランレベル (通常ランレベル 2) で有効化されたプログラムを起動します。<command>init</command> は <command>/etc/init.d/rc 2</command> を実行します。これは <filename>/etc/rc2.d/</filename> に置かれて「S」で始まる名前のすべてのサービスを開始するコマンドです。歴史的なことを言えば、「S」の後に続く 2 桁の数字は起動するサービスの順番を定義するために使われていました。しかし現在では、デフォルトの起動システムは <command>insserv</command> を使ってスクリプト同士の依存関係に従った起動順を自動的に決定します。このため、各起動スクリプトはサービスを起動または終了させる時に満足しなければいけない条件を宣言します (たとえば、あるサービスは他のサービスの前または後に起動しなければいけないなどの条件を宣言します)。そして、<command>init</command> は条件を満足するようにサービスを起動します。このため、スクリプトの静的な番号付けはもはや考慮されません (しかしスクリプトの名前は必ず「S」で始まり、その後ろに 2 桁の番号と条件を宣言する際に使われる実際のスクリプトの名前を付けなければいけません)。一般に、基盤サービス (ログ記録を担当している <command>rsyslog</command> やポート割り当てを担当している <command>portmap</command>) が最初に起動され、その後に標準的なサービスとグラフィカルインターフェース (<command>gdm3</command>) が起動されます。

en: This dependency-based boot system makes it possible to automate re-numbering, which could be rather tedious if it had to be done manually, and it limits the risks of human error, since scheduling is conducted according to the parameters that are indicated. Another benefit is that services can be started in parallel when they are independent from one another, which can accelerate the boot process.
ja: この依存関係に基づく起動システムのおかげで、起動順を自動的に再定義することが可能になります。これは手作業でやるにはちょっと退屈な作業で、人的ミスの危険性があります。なぜなら、起動順は宣言された依存関係に従って定義されるからです。他の長所として、他のサービスに依存しないサービスは並列して開始できるという点があります。このことにより、起動処理を加速できます。

en: <primary>runlevel</primary>
ja: <primary>ランレベル</primary>

en: <primary>level, runlevel</primary>
ja: <primary>レベル、ランレベル</primary>

en: <command>init</command> distinguishes several runlevels, so it can switch from one to another with the <command>telinit <replaceable>new-level</replaceable></command> command. Immediately, <command>init</command> executes <command>/etc/init.d/rc</command> again with the new runlevel. This script will then start the missing services and stop those that are no longer desired. To do this, it refers to the content of the <filename>/etc/rc<replaceable>X</replaceable>.d</filename> (where <replaceable>X</replaceable> represents the new runlevel). Scripts starting with “S” (as in “Start”) are services to be started; those starting with “K” (as in “Kill”) are the services to be stopped. The script does not start any service that was already active in the previous runlevel.
ja: <command>init</command> はランレベルを見分けて処理を分岐させます。ランレベルを切り替えるには <command>telinit <replaceable>new-level</replaceable></command> コマンドを使います。このコマンドを実行すると <command>init</command> は即座に新しいランレベルを引数にして <command>/etc/init.d/rc</command> を再実行します。<command>/etc/init.d/rc</command> は欠けているサービスを開始し、既に不要となったサービスを停止します。これを行うために、<command>/etc/init.d/rc</command> は <filename>/etc/rc<replaceable>X</replaceable>.d</filename> ディレクトリの内容を参照します (ここで <replaceable>X</replaceable> は新しいランレベルです)。このディレクトリに含まれる (「Start」の)「S」で始まるスクリプトは開始されるサービスで、(「Kill」の)「K」で始まるスクリプトは停止されるサービスです。<command>/etc/init.d/rc</command> は切り替え前のランレベルで既に起動されているサービスは開始しません。

en: By default, System V init in Debian uses four different runlevels:
ja: デフォルトで、Debian の System V init は 4 種類のランレベルを使います。

en: Level 0 is only used temporarily, while the computer is powering down. As such, it only contains many “K” scripts.
ja: レベル 0。これはコンピュータの電源を切る際に一時的に使われるだけです。このため「K」スクリプトしか含まれません。

en: Level 1, also known as single-user mode, corresponds to the system in degraded mode; it includes only basic services, and is intended for maintenance operations where interactions with ordinary users are not desired.
ja: レベル 1。これはシングルユーザモードとしても知られ、システムの機能抑制モードに相当します。このモードは基本的なサービスだけを提供し、一般ユーザがマシンを利用していないメンテナンスの際に使われることを意図しています。

en: Level 2 is the level for normal operation, which includes networking services, a graphical interface, user logins, etc.
ja: レベル 2。これは通常動作用のモードで、ネットワークサービス、グラフィカルインターフェース、ユーザログインなどの機能を使うことが可能です。

en: Level 6 is similar to level 0, except that it is used during the shutdown phase that precedes a reboot.
ja: レベル 6。これはレベル 0 と似ていますが、再起動前のシャットダウン段階中に使われる点が異なります。

en: Other levels exist, especially 3 to 5. By default they are configured to operate the same way as level 2, but the administrator can modify them (by adding or deleting scripts in the corresponding <filename>/etc/rc<replaceable>X</replaceable>.d</filename> directories) to adapt them to particular needs.
ja: その他のレベル。レベル 3 からレベル 5 までも存在します。デフォルトでこれらのランレベルはレベル 2 と同様に動作しますが、管理者はこれらのレベルを特定の要求に順応させるためのレベルに書き換えることが可能です (ランレベルに対応する <filename>/etc/rc<replaceable>X</replaceable>.d</filename> ディレクトリにスクリプトを追加したりおよび削除したりする必要があります)。

en: Boot sequence of a computer running Linux with System V init
ja: System V init を使う Linux の動くコンピュータの起動シーケンス

en: <primary>initialization script</primary>
ja: <primary sortas="ショキカスクリプト">初期化スクリプト</primary>

en: <emphasis>DEBIAN POLICY</emphasis> Restarting services
ja: <emphasis>DEBIAN POLICY</emphasis> サービスの再起動

en: <primary>service</primary><secondary>restart</secondary>
ja: <primary>サービス</primary><secondary sortas="サイキドウ">再起動</secondary>

en: <primary>restarting services</primary>
ja: <primary sortas="サービスノサイキドウ">サービスの再起動</primary>

en: The maintainer scripts for Debian packages will sometimes restart certain services to ensure their availability or get them to take certain options into account. The command that controls a service — <command>service <replaceable>service</replaceable> <replaceable>operation</replaceable></command> — doesn't take runlevel into consideration, assumes (wrongly) that the service is currently being used, and may thus initiate incorrect operations (starting a service that was deliberately stopped, or stopping a service that is already stopped, etc.). Debian therefore introduced the <command>invoke-rc.d</command> program: this program must be used by maintainer scripts to run services initialization scripts and it will only execute the necessary commands. Note that, contrary to common usage, the <filename>.d</filename> suffix is used here in a program name, and not in a directory.
ja: Debian パッケージのメンテナスクリプトはサービスを確実に利用できるようにしたりサービスに特定のオプションを考慮させるためにそのサービスを再起動することがあります。サービスを操作するコマンドである <command>service <replaceable>service</replaceable> <replaceable>operation</replaceable></command> はランレベルを考慮しません。このコマンドはサービスが現在使用中であると (間違って) 仮定し、間違った操作 (故意に停止されたサービスの開始や既に停止されたサービスの停止など) を開始するかもしれません。このため Debian は <command>invoke-rc.d</command> プログラムを導入しました。すなわち、メンテナスクリプト内でサービス初期化スクリプトを実行する場合は、必ず <command>invoke-rc.d</command> プログラムを使わなければいけません。<command>invoke-rc.d</command> プログラムは必要なコマンドだけを実行します。通常の使い方と異なり、ディレクトリではなくプログラム名に <filename>.d</filename> サフィックスが使われている点に注意してください。

en: Finally, <command>init</command> starts control programs for various virtual consoles (<command>getty</command>). It displays a prompt, waiting for a username, then executes <command>login <replaceable>user</replaceable></command> to initiate a session.
ja: 最後に、<command>init</command> はさまざまな仮想コンソール用の制御プログラム (<command>getty</command>) を開始します。<command>getty</command> はプロンプトを表示し、ユーザ名の入力を待ち、セッションを開始するために <command>login <replaceable>user</replaceable></command> を実行します。

en: <emphasis>VOCABULARY</emphasis> Console and terminal
ja: <emphasis>VOCABULARY</emphasis> コンソールと端末

en: The first computers were usually separated into several, very large parts: the storage enclosure and the central processing unit were separate from the peripheral devices used by the operators to control them. These were part of a separate furniture, the “console”. This term was retained, but its meaning has changed. It has become more or less synonymous with “terminal”, being a keyboard and a screen.
ja: 草創期のコンピュータは通常複数のとても大きな部品に分かれていました。すなわち、ストレージ収納装置と中央処理装置はそれらを操作するオペレータが使う周辺装置から離れた場所にありました。オペレータが使う周辺装置は分離された周辺装置「コンソール」の部分でした。現在「コンソール」という用語は意味を変えて残されています。「コンソール」はキーボードと画面を備える「端末」とほぼ同義語になっています。

en: With the development of computers, operating systems have offered several virtual consoles to allow for several independent sessions at the same time, even if there is only one keyboard and screen. Most GNU/Linux systems offer six virtual consoles (in text mode), accessible by typing the key combinations <keycombo action="simul"> <keycap>Control</keycap> <keycap>Alt</keycap> <keycap>F1</keycap> </keycombo> through <keycombo action="simul"> <keycap>Control</keycap> <keycap>Alt</keycap> <keycap>F6</keycap> </keycombo>.
ja: コンピュータの開発とともに、オペレーティングシステムは、たとえもしマシンに 1 台のキーボードと画面しか接続されていなかったとしても、複数の独立したセッションを同時に処理する目的で複数の仮想コンソールを提供するようになりました。多くの GNU/Linux システムでは (テキストモード時に)、<keycombo action="simul"> <keycap>Control</keycap> <keycap>Alt</keycap> <keycap>F1</keycap> </keycombo> から <keycombo action="simul"> <keycap>Control</keycap> <keycap>Alt</keycap> <keycap>F6</keycap> </keycombo> までのキーの組み合わせを入力することで 6 つの仮想コンソールを切り替えられます。

en: Remote Login
ja: リモートログイン

en: It is essential for an administrator to be able to connect to a computer remotely. Servers, confined in their own room, are rarely equipped with permanent keyboards and monitors — but they are connected to the network.
ja: 管理者にとってコンピュータにリモートから接続できることは不可欠な要素です。専用の部屋に閉じ込められているサーバにキーボードとモニタが常設されていることはめったにありません。しかしサーバはネットワークにつながっています。

en: <emphasis>BACK TO BASICS</emphasis> Client, server
ja: <emphasis>BACK TO BASICS</emphasis> クライアント、サーバ

en: <primary>client</primary><secondary>client/server architecture</secondary>
ja: <primary>クライアント</primary><secondary>クライアント/サーバアーキテクチャ</secondary>

en: <primary>server</primary><secondary>client/server architecture</secondary>
ja: <primary>サーバ</primary><secondary>クライアント/サーバアーキテクチャ</secondary>

en: A system where several processes communicate with each other is often described with the “client/server” metaphor. The server is the program that takes requests coming from a client and executes them. It is the client that controls operations, the server doesn't take any initiative of its own.
ja: 複数のプロセスが互いに通信しているシステムはよく「クライアント/サーバ」に例えられます。サーバはクライアントからの要求に応じて、その要求を実行するプログラムです。操作を制御するのがクライアントで、サーバは制御の主導権を握りません。

en: <primary>login</primary><secondary>remote login</secondary>
ja: <primary>ログイン</primary><secondary>リモートログイン</secondary>

en: <primary>remote login</primary>
ja: <primary>リモートログイン</primary>

en: Secure Remote Login: SSH
ja: 安全なリモートログイン、SSH

en: The <emphasis>SSH</emphasis> (Secure SHell) protocol was designed with security and reliability in mind. Connections using SSH are secure: the partner is authenticated and all data exchanges are encrypted.
ja: <emphasis>SSH</emphasis> (Secure SHell) プロトコルは安全性と信頼性を念頭に置いて設計されました。SSH を使う接続は安全です。つまり、通信相手は認証され、交換されるデータはすべて暗号化されます。

en: <emphasis>CULTURE</emphasis> Telnet and RSH are obsolete
ja: <emphasis>CULTURE</emphasis> Telnet と RSH は時代遅れです

en: Before SSH, <emphasis>Telnet</emphasis> and <emphasis>RSH</emphasis> were the main tools used to login remotely. They are now largely obsolete and should no longer be used even if Debian still provides them.
ja: SSH 以前、<emphasis>Telnet</emphasis> と <emphasis>RSH</emphasis> がリモートからログインするために使われる主なツールでした。両者は今や大幅に時代遅れです。両者がまだ Debian から配布されているとしても、もはやそれを使うべきではありません。

en: <emphasis>VOCABULARY</emphasis> Authentication, encryption
ja: <emphasis>VOCABULARY</emphasis> 認証、暗号化

en: Authentication and encryption are often mentioned together, both because they are frequently used together, and because they are usually implemented with similar mathematical concepts.
ja: 認証と暗号化はしばしば一緒に言及されます。なぜなら両者は同時に使われることが多く、よく似た数学的概念を基に実行されることが多いからです。

en: SSH also offers two file transfer services. <command>scp</command> is a command line tool that can be used like <command>cp</command>, except that any path to another machine is prefixed with the machine's name, followed by a colon.
ja: さらに SSH は 2 種類のファイル転送サービスを提供します。<command>scp</command> は <command>cp</command> のように使えるコマンドラインツールです。ただし、他のマシンへのパスを表記するにはパスの前にそのマシンの名前とコロンを付ける点が <command>cp</command> と異なります。

en: <command>sftp</command> is an interactive command, similar to <command>ftp</command>. In a single session, <command>sftp</command> can transfer several files, and it is possible to manipulate remote files with it (delete, rename, change permissions, etc.).
ja: <command>sftp</command> は対話型コマンドで <command>ftp</command> に似ています。<command>sftp</command> は単一のセッションの中で複数のファイルを転送したり、リモートのファイルを操作 (削除、リネーム、パーミッション変更など) したりすることが可能です。

en: Debian uses OpenSSH, a free version of SSH maintained by the <command>OpenBSD</command> project (a free operating system based on the BSD kernel, focused on security) and fork of the original SSH software developed by the SSH Communications Security Corp company, of Finland. This company initially developed SSH as free software, but eventually decided to continue its development under a proprietary license. The OpenBSD project then created OpenSSH to maintain a free version of SSH.
ja: Debian は OpenSSH を使います。OpenSSH は SSH のフリーソフトウェア版で <command>OpenBSD</command> (BSD カーネルに基づき、安全性を重要視する自由なオペレーティングシステム) プロジェクトによってメンテナンスされており、フィンランドの SSH Communications Security Corp が開発した元祖 SSH ソフトウェアのフォークです。SSH Communications Security Corp は当初 SSH をフリーソフトウェアとして開発していましたが、結局プロプライエタリライセンスで開発を続けることを決定しました。そして OpenBSD プロジェクトが SSH のフリーソフトウェア版としてメンテナンスするために OpenSSH を作成しました。

en: <emphasis>BACK TO BASICS</emphasis> <foreignphrase>Fork</foreignphrase>
ja: <emphasis>BACK TO BASICS</emphasis> <foreignphrase>フォーク</foreignphrase>

en: <primary>fork</primary>
ja: <primary>フォーク</primary>

en: A “fork”, in the software field, means a new project that starts as a clone of an existing project, and that will compete with it. From there on, both software will usually quickly diverge in terms of new developments. A fork is often the result of disagreements within the development team.
ja: ソフトウェアの分野で「フォーク」とは、既存のプロジェクトのクローンとして始まった新しいプロジェクトを意味しており、既存のプロジェクトの対抗馬です。通常、両方のソフトウェアは新しい開発という観点ですぐに別のものになっていきます。フォークは開発チーム内の意見の不一致によって起こることが多いです。

en: The option to fork a project is a direct result of the very nature of free software; a fork is a healthy event when it enables the continuation of a project as free software (for example in case of license changes). A fork arising from technical or personal disagreements is often a waste of human resources; another resolution would be preferable. Mergers of two projects that previously went through a prior fork are not unheard of.
ja: プロジェクトをフォークするという選択肢はフリーソフトウェアの本質そのものから生じた直接的な結果です。フリーソフトウェアとしてのプロジェクトの存続を可能にするための (たとえばライセンスが変更された場合などの) フォークは健全な出来事です。技術的および個人的な意見の不一致によって起こるフォークは通常人的資源の無駄です。従って別の解決策が望まれます。過去にフォークした 2 つのプロジェクトの合併はいまだ前例がありません。

en: Key-Based Authentication
ja: 鍵認証方式

en: Each time someone logs in over SSH, the remote server asks for a password to authenticate the user. This can be problematic if you want to automate a connection, or if you use a tool that requires frequent connections over SSH. This is why SSH offers a key-based authentication system.
ja: リモートサーバはユーザを認証するために SSH でログインする人に対して毎回パスワードを尋ねます。これは、接続を自動化したい場合や SSH 経由で頻繁に接続を行うツールを使う場合に問題です。このため、SSH は鍵認証システムを提供しています。

en: <emphasis>SECURITY</emphasis> Protection of the private key
ja: <emphasis>SECURITY</emphasis> 秘密鍵の保護

en: Whoever has the private key can login on the account thus configured. This is why access to the private key is protected by a “passphrase”. Someone who acquires a copy of a private key file (for example, <filename>~/.ssh/id_rsa</filename>) still has to know this phrase in order to be able to use it. This additional protection is not, however, impregnable, and if you think that this file has been compromised, it is best to disable that key on the computers in which it has been installed (by removing it from the <filename>authorized_keys</filename> files) and replacing it with a newly generated key.
ja: 秘密鍵を持っていれば、誰でも対応する公開鍵を登録したアカウントにログインすることが可能です。このため、秘密鍵の利用は「パスフレーズ」で保護されています。秘密鍵ファイル (たとえば <filename>~/.ssh/id_rsa</filename>) のコピーを不正に入手した人が秘密鍵を使うためには、パスフレーズを知らなければいけません。しかしながら、「パスフレーズ」による追加的な保護は堅固なものではありません。秘密鍵ファイルが不正に使われていると感じたなら、その秘密鍵に対応する公開鍵をインストールしたコンピュータでその公開鍵の使用を停止し (<filename>authorized_keys</filename> ファイルから公開鍵を削除し)、新しく生成した鍵で公開鍵を置き換えるのが最良の対応策です。

en: <emphasis>CULTURE</emphasis> OpenSSL flaw in Debian <emphasis role="distribution">Etch</emphasis>
ja: <emphasis>CULTURE</emphasis> Debian <emphasis role="distribution">Etch</emphasis> における OpenSSL の脆弱性

en: Specifically, whenever OpenSSL was used to generate a key, it always produced a key within a known set of hundreds of thousands of keys (32,000 multiplied by a small number of key lengths). This affected SSH keys, SSL keys, and X.509 certificates used by numerous applications, such as OpenVPN. A cracker had only to try all of the keys to gain unauthorized access. To reduce the impact of the problem, the SSH daemon was modified to refuse problematic keys that are listed in the <emphasis role="pkg">openssh-blacklist</emphasis> and <emphasis role="pkg">openssh-blacklist-extra</emphasis> packages. Additionally, the <command>ssh-vulnkey</command> command allows identification of possibly compromised keys in the system.
ja: 具体的に言えば、OpenSSL を使って鍵を生成した場合、生成された鍵は常に数十万 (鍵長種数の 32,000 倍) の既知の範囲内にある鍵のうちの 1 つになります。この脆弱性は、たとえば OpenVPN など数多くのアプリケーションが使う SSH 鍵、SSL 鍵、X.509 証明書に影響をおよぼしました。クラッカーは全種類の鍵を試すだけで不正アクセスを実行することが可能でした。この問題の影響を減らす目的で、SSH デーモンは <emphasis role="pkg">openssh-blacklist</emphasis> と <emphasis role="pkg">openssh-blacklist-extra</emphasis> パッケージにリストされている問題のある鍵を拒否するように変更されました。さらに、<command>ssh-vulnkey</command> コマンドを使えば、システム内からこの脆弱性の影響を受けているかもしれない鍵を識別することが可能です。

en: A more thorough analysis of this incident brings to light that it is the result of multiple (small) problems, both within the OpenSSL project and with the Debian package maintainer. A widely used library like OpenSSL should — without modifications — not generate warnings when tested by <command>valgrind</command>. Furthermore, the code (especially the parts as sensitive as the RNG) should be better commented to prevent such errors. On Debian's side, the maintainer wanted to validate the modifications with the OpenSSL developers, but simply explained the modifications without providing the corresponding patch to review and failed to mention his role within Debian. Finally, the maintenance choices were sub-optimal: the changes made to the original code were not clearly documented; all the modifications were effectively stored in a Subversion repository, but they ended up all lumped into one single patch during creation of the source package.
ja: この出来事をいっそう詳しく調べると、これは OpenSSL プロジェクト内と Debian パッケージメンテナ双方にあった多数の (小さな) 問題の結果であるということが、明らかになります。OpenSSL のように広く使われるライブラリは (修正せずとも) <command>valgrind</command> でテストした時に警告を出すべきではありません。さらに、コード (特に RNG と同様に慎重に取り扱われるべき部分) はこのような誤解を避ける目的で詳しい注釈を付けられるべきです。Debian 側について言えば、メンテナは OpenSSL 開発者から修正に対する検証を受けることを望んでいながら、修正の検証に必要なパッチを OpenSSL 開発者に提供することもせずに自分の修正について簡単に説明しただけで、Debian 内における自分の役割を口にすることもしませんでした。そして最後に、メンテナンス方針が最適なものではありませんでした。具体的に言えば、元のコードに対して行った修正が文書中で明らかにされず、さらにすべての修正は Subversion リポジトリに効果的に保存されていましたが、最終的にすべての修正はソースパッケージの作成中に 1 つのパッチにまとめられていました。

en: Using Remote X11 Applications
ja: リモートの X11 アプリケーションを使う

en: The SSH protocol allows forwarding of graphical data (“X11” session, from the name of the most widespread graphical system in Unix); the server then keeps a dedicated channel for those data. Specifically, a graphical program executed remotely can be displayed on the X.org server of the local screen, and the whole session (input and display) will be secure. Since this feature allows remote applications to interfere with the local system, it is disabled by default. You can enable it by specifying <literal>X11Forwarding yes</literal> in the server configuration file (<filename>/etc/ssh/sshd_config</filename>). Finally, the user must also request it by adding the <literal>-X</literal> option to the <command>ssh</command> command-line.
ja: SSH プロトコルを使うと、グラフィカルデータ (「X11」セッション、Unix で最も広く使われているグラフィカルシステム) を転送することが可能です。サーバはこれらのデータ専用の経路を開いたままにします。具体的に言うと、リモートで実行されたグラフィカルプログラムはローカル画面の X.org サーバ上に表示され、すべてのセッション (入力と表示) は保護されます。X11 転送機能によりリモートアプリケーションがローカルシステムに干渉することになるため、X11 転送機能はデフォルトで無効化されています。X11 転送機能を有効化するには、SSH サーバの設定ファイル (<filename>/etc/ssh/sshd_config</filename>) で <literal>X11Forwarding yes</literal> と指定してください。さらにユーザは <command>ssh</command> コマンドラインに <literal>-X</literal> オプションを追加して転送を要求しなければいけません。

en: Creating Encrypted Tunnels with Port Forwarding
ja: ポート転送を使った暗号化トンネルの作成

en: <primary>port forwarding</primary>
ja: <primary sortas="ポートテンソウ">ポート転送</primary>

en: Its <literal>-R</literal> and <literal>-L</literal> options allow <command>ssh</command> to create “encrypted tunnels” between two machines, securely forwarding a local TCP port (see sidebar <xref linkend="sidebar.tcp-udp" />) to a remote machine or vice versa.
ja: <command>ssh</command> の <literal>-R</literal> と <literal>-L</literal> オプションを使うと、<command>ssh</command> が 2 台のマシン間で「暗号化トンネル」を作成することが可能です。「暗号化トンネル」を使えば、ローカル TCP ポート (補注<xref linkend="sidebar.tcp-udp" />を参照してください) をリモートのマシンに安全に転送したりその逆を行うことも可能です。

en: <emphasis>VOCABULARY</emphasis> Tunnel
ja: <emphasis>VOCABULARY</emphasis> トンネル

en: The Internet, and most LANs that are connected to it, operate in packet mode and not in connected mode, meaning that a packet issued from one computer to another is going to be stopped at several intermediary routers to find its way to its destination. You can still simulate a connected operation where the stream is encapsulated in normal IP packets. These packets follow their usual route, but the stream is reconstructed unchanged at the destination. We call this a “tunnel”, analogous to a road tunnel in which vehicles drive directly from the entrance (input) to the exit (output) without encountering any intersections, as opposed to a path on the surface that would involve intersections and changing direction.
ja: インターネットとインターネットに接続されている多くの LAN はパケットモードで動作しており、接続モードで動作していません。これは、一方のコンピュータから他方のコンピュータに向かって送信されたパケットは、宛先への経路を見つけるために複数の中間ルータで足止めされることを意味しています。とは言っても、接続モードを模倣することも可能です。接続モードではストリームを普通の IP パケットの中にカプセル化します。これらのパケットは通常の経路を通過しますが、ストリームは宛先を変えられることなく再構成されます。これは道路のトンネルにかけて「トンネル」と呼ばれています。道路のトンネルでは車両が入口 (入力) から出口 (出力) まで交差点に遭遇することなくまっすぐ進むのに対し、地上の経路を使うと車両は交差点を通過したり右折左折を繰り返しながら目的地まで進むことになります。

en: You can use this opportunity to add encryption to the tunnel: the stream that flows through it is then unrecognizable from the outside, but it is returned in decrypted form at the exit of the tunnel.
ja: トンネルに暗号化機能を追加することが可能です。すなわち、トンネルの中を流れるストリームは外から認識できませんが、トンネルの出口で復号化された形で返されます。

en: <command>ssh -L 8000:server:25 intermediary</command> establishes an SSH session with the <replaceable>intermediary</replaceable> host and listens to local port 8000 (see <xref linkend="figure.ssh-L" />). For any connection established on this port, <command>ssh</command> will initiate a connection from the <replaceable>intermediary</replaceable> computer to port 25 on the <replaceable>server</replaceable>, and will bind both connections together.
ja: <command>ssh -L 8000:server:25 intermediary</command> を使うことで、ローカルの <command>ssh</command> に <replaceable>intermediary</replaceable> との SSH セッションを確立させ、ローカルの <command>ssh</command> にローカルのポート 8000 番をリッスンさせます (<xref linkend="figure.ssh-L" />を参照してください)。ローカルのポート 8000 番を経由して接続が開始されたら、<replaceable>intermediary</replaceable> の <command>ssh</command> は <replaceable>intermediary</replaceable> から <replaceable>server</replaceable> のポート 25 番に接続し、ローカルから <replaceable>server</replaceable> への接続を中継します。

en: <command>ssh -R 8000:server:25 intermediary</command> also establishes an SSH session to the <replaceable>intermediary</replaceable> computer, but it is on this machine that <command>ssh</command> listens to port 8000 (see <xref linkend="figure.ssh-R" />). Any connection established on this port will cause <command>ssh</command> to open a connection from the local machine on to port 25 of the <replaceable>server</replaceable>, and to bind both connections together.
ja: <command>ssh -R 8000:server:25 intermediary</command> を使うことで、ローカルの <command>ssh</command> に <replaceable>intermediary</replaceable> との SSH セッションを確立させ、<replaceable>intermediary</replaceable> の <command>ssh</command> に <replaceable>intermediary</replaceable> のポート 8000 番をリッスンさせます (<xref linkend="figure.ssh-R" />を参照してください)。<replaceable>intermediary</replaceable> のポート 8000 番を経由して接続が開始されたら、ローカルの <command>ssh</command> はローカルから <replaceable>server</replaceable> のポート 25 番に接続し、<replaceable>intermediary</replaceable> から <replaceable>server</replaceable> への接続を中継します。

en: In both cases, connections are made to port 25 on the <replaceable>server</replaceable> host, which pass through the SSH tunnel established between the local machine and the <replaceable>intermediary</replaceable> machine. In the first case, the entrance to the tunnel is local port 8000, and the data move towards the <replaceable>intermediary</replaceable> machine before being directed to the <replaceable>server</replaceable> on the “public” network. In the second case, the input and output in the tunnel are reversed; the entrance is port 8000 on the <replaceable>intermediary</replaceable> machine, the output is on the local host, and the data are then directed to the <replaceable>server</replaceable>. In practice, the server is usually either the local machine or the intermediary. That way SSH secures the connection from one end to the other.
ja: どちらの場合も、ローカルと <replaceable>intermediary</replaceable> の間に確立した SSH トンネルを介して、<replaceable>server</replaceable> のポート 25 番に接続します。最初の例の場合、トンネルの入口はローカルのポート 8000 番で、データはまず <replaceable>intermediary</replaceable> を目指し、その後に「公開」ネットワークを経由して <replaceable>server</replaceable> に向かいます。2 番目の例の場合、トンネルの入口と出口が逆になります。トンネルの入口は <replaceable>intermediary</replaceable> のポート 8000 番で、出口はローカルにあります。出口から出たデータは <replaceable>server</replaceable> に向かいます。現実的な話をすると、ここで使われている <replaceable>server</replaceable> にはローカルまたは <replaceable>intermediary</replaceable> を指定することが多いです。このようにして SSH は端から端までの接続を保護します。

en: Forwarding a local port with SSH
ja: SSH を使ったローカルポートの転送

en: Forwarding a remote port with SSH
ja: SSH を使ったリモートポートの転送

en: Using Remote Graphical Desktops
ja: リモートグラフィカルデスクトップの利用

en: VNC (Virtual Network Computing) allows remote access to graphical desktops.
ja: VNC (Virtual Network Computing) を使うとグラフィカルデスクトップにリモートからアクセスすることが可能になります。

en: <primary>graphical desktop</primary><secondary>remote</secondary>
ja: <primary>グラフィカルデスクトップ</primary><secondary>リモート</secondary>

en: <primary>remote graphical desktop</primary>
ja: <primary>リモートグラフィカルデスクトップ</primary>

en: <primary>desktop, remote graphical desktop</primary>
ja: <primary>デスクトップ、リモートグラフィカルデスクトップ</primary>

en: This tool is mostly used for technical assistance; the administrator can see the errors that the user is facing, and show them the correct course of action without having to stand by them.
ja: VNC は技術支援に使われることが多いです。なぜなら、管理者はユーザが直面しているエラーを見ることが可能で、ユーザの側にいなくても正しい行動の仕方をユーザに示すことが可能だからです。

en: If you want to connect by VNC, and you don't want your data sent in clear text on the network, it is possible to encapsulate the data in an SSH tunnel (see <xref linkend="sect.ssh-port-forwarding" />). You simply have to know that VNC uses port 5900 by default for the first screen (called “localhost:0”), 5901 for the second (called “localhost:1”), etc.
ja: VNC で接続したいけれども、データを平文でネットワークに流したくない場合、SSH トンネルでデータをカプセル化することが可能です (<xref linkend="sect.ssh-port-forwarding" />を参照してください)。この時知っておかなければいけない点は、デフォルトで VNC は最初の画面 (「localhost:0」と呼ばれます) にポート 5900 番、2 番目の画面 (「localhost:1」と呼ばれます) にポート 5901 番を使うという点だけです。

en: The <command>ssh -L localhost:5901:localhost:5900 -N -T <replaceable>machine</replaceable></command> command creates a tunnel between local port 5901 in the localhost interface and port 5900 of the <replaceable>machine</replaceable> host. The first “localhost” restricts SSH to listening to only that interface on the local machine. The second “localhost” indicates the interface on the remote machine which will receive the network traffic entering in “localhost:5901”. Thus <command>vncviewer localhost:1</command> will connect the VNC client to the remote screen, even though you indicate the name of the local machine.
ja: <command>ssh -L localhost:5901:localhost:5900 -N -T <replaceable>machine</replaceable></command> コマンドを使うことで、localhost インターフェースのポート 5901 番と <replaceable>machine</replaceable> のポート 5900 番の間にトンネルが作られます。最初の「localhost」はローカルのインターフェースのみをリッスンするように SSH を制限します。2 番目の「localhost」は「localhost:5901」に入ってきたネットワークトラフィックを受け取るリモート側のインターフェースを表します。そんなわけで、<command>vncviewer localhost:1</command> はローカルの名前を使っているにも関わらず VNC クライアントをリモートの画面に接続します。

en: When the VNC session is closed, remember to close the tunnel by also quitting the corresponding SSH session.
ja: VNC セッションを閉じたら、対応する SSH セッションを終了してトンネルを閉じることも忘れないでください。

en: <emphasis>BACK TO BASICS</emphasis> Display manager
ja: <emphasis>BACK TO BASICS</emphasis> ディスプレイマネージャ

en: <primary>manager</primary><secondary>display manager</secondary>
ja: <primary>マネージャ</primary><secondary>ディスプレイマネージャ</secondary>

en: <primary>display manager</primary>
ja: <primary>ディスプレイマネージャ</primary>

en: Managing Rights
ja: 権限の管理

en: <primary>permissions</primary>
ja: <primary>パーミッション</primary>

en: Linux is definitely a multi-user system, so it is necessary to provide a permission system to control the set of authorized operations on files and directories, which includes all the system resources and devices (on a Unix system, any device is represented by a file or directory). This principle is common to all Unix systems, but a reminder is always useful, especially as there are some interesting and relatively unknown advanced uses.
ja: Linux は完全なマルチユーザシステムです。このため、ユーザの権限に基づいてファイルやディレクトリに対する操作を制御するためにパーミッションシステムを提供することが必要です。このパーミッションシステムはすべてのシステムリソースとデバイスに対して適用されます (Unix システムではすべてのデバイスはファイルまたはディレクトリとして表現されます)。この原理はすべての Unix システムで共通ですが、特に興味深く比較的知られていない上級の使い方があるので、注意は常に必要です。

en: <primary>user</primary><secondary>owner</secondary>
ja: <primary>ユーザ</primary><secondary sortas="ショユウシャ">所有者</secondary>

en: <primary>group</primary><secondary>owner</secondary>
ja: <primary>グループ</primary><secondary sortas="ショユウシャ">所有者</secondary>

en: <primary>owner</primary><secondary>user</secondary>
ja: <primary sortas="ショユウシャ">所有者</primary><secondary>ユーザ</secondary>

en: <primary>owner</primary><secondary>group</secondary>
ja: <primary sortas="ショユウシャ">所有者</primary><secondary>グループ</secondary>

en: Each file or directory has specific permissions for three categories of users:
ja: ファイルとディレクトリには 3 種類のユーザ別に特定のパーミッションが付けられます。以下に 3 種類のユーザを挙げます。

en: its owner (symbolized by <literal>u</literal> as in “user”);
ja: 所有者 (「user」の <literal>u</literal> で表記されます)。

en: its owner group (symbolized by <literal>g</literal> as in “group”), representing all the members of the group;
ja: 所有グループ (「group」の <literal>g</literal> で表記されます)。これはグループに所属する全ユーザを意味しています。

en: the others (symbolized by <literal>o</literal> as in “other”).
ja: その他 (「other」の <literal>o</literal> で表記されます)。

en: reading (symbolized by <literal>r</literal> as in “read”);
ja: 読み込み (「read」の <literal>r</literal> で表記されます)。

en: writing (or modifying, symbolized by <literal>w</literal> as in “write”);
ja: 書き込み (または変更。「write」の <literal>w</literal> で表記されます)。

en: executing (symbolized by <literal>x</literal> as in “eXecute”).
ja: 実行 (「eXecute」の <literal>x</literal> で表記されます)。

en: <primary>read, right</primary>
ja: <primary sortas="ヨミコミ、ケンゲン">読み込み、権限</primary>

en: <primary>write, right</primary>
ja: <primary sortas="カキコミ、ケンゲン">書き込み、権限</primary>

en: <primary>modification, right</primary>
ja: <primary sortas="ヘンコウ、ケンゲン">変更、権限</primary>

en: <primary>execution, right</primary>
ja: <primary sortas="ジッコウ、ケンゲン">実行、権限</primary>

en: In the case of a file, these rights are easily understood: read access allows reading the content (including copying), write access allows changing it, and execute access allows you to run it (which will only work if it is a program).
ja: ファイルの場合、これらの権限は簡単に理解できます。すなわち、読み込み権限があれば、内容を読むことが可能です (コピーも可能です)。書き込み権限があれば、内容を変更することが可能です。実行権限があれば、内容を実行することが可能です (実行権限に意味があるのは対象がプログラムの場合に限ります)。

en: <emphasis>SECURITY</emphasis> <literal>setuid</literal> and <literal>setgid</literal> executables
ja: <emphasis>SECURITY</emphasis> <literal>setuid</literal> と <literal>setgid</literal> 実行ファイル

en: <primary><literal>setuid</literal>, right</primary>
ja: <primary sortas="setuid、ケンゲン"><literal>setuid</literal>、権限</primary>

en: <primary><literal>setgid</literal>, right</primary>
ja: <primary sortas="setgid、ケンゲン"><literal>setgid</literal>、権限</primary>

en: Since a <literal>setuid</literal> root program is systematically run under the super-user identity, it is very important to ensure it is secure and reliable. Indeed, a user who would manage to subvert it to call a command of their choice could then impersonate the root user and have all rights on the system.
ja: root が所有者の <literal>setuid</literal> されたプログラムは一貫してスーパーユーザとして実行されるため、この種のプログラムが安全で信頼できるプログラムか否かという点はとても重要です。実際、好きなコマンドを呼び出すために root が所有者の <literal>setuid</literal> されたプログラムを破壊することで、ユーザは root ユーザになりすまし、システムのすべての権限を掌握することが可能です。

en: A directory is handled differently. Read access gives the right to consult the list of its entries (files and directories), write access allows creating or deleting files, and execute access allows crossing through it (especially to go there with the <command>cd</command> command). Being able to cross through a directory without being able to read it gives permission to access the entries therein that are known by name, but not to find them if you do not know their existence or their exact name.
ja: ディレクトリは別のやり方で取り扱われます。読み込み権限があれば、そのエントリ (ファイルとディレクトリ) のリストを閲覧することが可能です。書き込み権限があれば、ファイルを作成および削除することが可能です。実行権限があれば、そのディレクトリを横断することが可能です (<command>cd</command> コマンドでそのディレクトリに移動できます)。ディレクトリの読み込み権限がなくてもディレクトリを横断できるならば、ディレクトリ内の名前を知っているエントリにアクセスすることが可能です。ただし、エントリの存在を知らないかエントリの完全な名前を知らない場合、そのエントリを見つけることはできません。

en: <emphasis>SECURITY</emphasis> <literal>setgid</literal> directory and <emphasis>sticky bit</emphasis>
ja: <emphasis>SECURITY</emphasis> <literal>setgid</literal> ディレクトリと<emphasis>スティッキービット</emphasis>

en: <primary><literal>setgid</literal> directory</primary>
ja: <primary><literal>setgid</literal> ディレクトリ</primary>

en: The <literal>setgid</literal> bit also applies to directories. Any newly-created item in such directories is automatically assigned the owner group of the parent directory, instead of inheriting the creator's main group as usual. This setup avoids the user having to change its main group (with the <command>newgrp</command> command) when working in a file tree shared between several users of the same dedicated group.
ja: <literal>setgid</literal> ビットはディレクトリにも適用されます。<literal>setgid</literal> ビットが適用されたディレクトリの中に新しく作成されたアイテムは、作成者のメイングループを継承するのではなく、自動的に親ディレクトリの所有グループを割り当てられます。こうすることで、ユーザが同じ専用グループに所属する複数のユーザの間で共有されているファイルツリーの中で作業をしている場合、(<command>newgrp</command> コマンドを使って) 自分のメイングループを変更する必要がなくなります。

en: <primary>sticky bit</primary>
ja: <primary>スティッキービット</primary>

en: The “sticky” bit (symbolized by the letter “t”) is a permission that is only useful in directories. It is especially used for temporary directories where everybody has write access (such as <filename>/tmp/</filename>): it restricts deletion of files so that only their owner (or the owner of the parent directory) can do it. Lacking this, everyone could delete other users' files in <filename>/tmp/</filename>.
ja: 「スティッキー」ビット (「t」で表記されます) とはディレクトリだけに有効なパーミッションです。これは特に誰もが書き込み権限を持つ一時ディレクトリ (<filename>/tmp/</filename> など) に使われます。すなわち、スティッキービットを付けられたディレクトリ以下に含まれるファイルの削除を制限できます。ファイルは所有者 (または親ディレクトリの所有者) だけが削除できるようになります。<filename>/tmp/</filename> にスティッキービットがなければ、<filename>/tmp/</filename> ディレクトリ以下にある他のユーザのファイルを誰でも削除できることになります。

en: Three commands control the permissions associated with a file:
ja: 以下はファイルのパーミッションを制御する 3 種類のコマンドです。

en: <command>chown <replaceable>user</replaceable> <replaceable>file</replaceable></command> changes the owner of the file;
ja: <command>chown <replaceable>user</replaceable> <replaceable>file</replaceable></command>。これはファイルの所有者を変更します。

en: <command>chgrp <replaceable>group</replaceable> <replaceable>file</replaceable></command> alters the owner group;
ja: <command>chgrp <replaceable>group</replaceable> <replaceable>file</replaceable></command>。これはファイルの所有グループを変更します。

en: <command>chmod <replaceable>rights</replaceable> <replaceable>file</replaceable></command> changes the permissions for the file.
ja: <command>chmod <replaceable>rights</replaceable> <replaceable>file</replaceable></command>。これはファイルのパーミッションを変更します。

en: There are two ways of presenting rights. Among them, the symbolic representation is probably the easiest to understand and remember. It involves the letter symbols mentioned above. You can define rights for each category of users (<literal>u</literal>/<literal>g</literal>/<literal>o</literal>), by setting them explicitly (with <literal>=</literal>), by adding (<literal>+</literal>), or subtracting (<literal>-</literal>). Thus the <literal>u=rwx,g+rw,o-r</literal> formula gives the owner read, write, and execute rights, adds read and write rights for the owner group, and removes read rights for other users. Rights not altered by the addition or subtraction in such a command remain unmodified. The letter <literal>a</literal>, for “all”, covers all three categories of users, so that <literal>a=rx</literal> grants all three categories the same rights (read and execute, but not write).
ja: 権限の指定方法には 2 種類あります。それらの中でも、記号指定が最もわかりやすく覚えやすいでしょう。これは上で述べた文字記号を使います。ユーザのカテゴリ (<literal>u</literal>/<literal>g</literal>/<literal>o</literal>) に対する権限を (<literal>=</literal> で) 明示したり、(<literal>+</literal> で) 追加したり、(<literal>-</literal> で) 取り除いたりできます。そんなわけで、<literal>u=rwx,g+rw,o-r</literal> 式は、所有者に読み込み、書き込み、実行権限を与え、所有グループに読み込み、書き込み権限を追加し、その他のユーザから読み込み権限を奪います。追加と削除によって変更されない権限はそのままです。「all」を意味する文字 <literal>a</literal> は 3 つのユーザカテゴリすべてを表現します。このため、<literal>a=rx</literal> はすべてのカテゴリのユーザに対して同じ権限を与えます (読み込みと実行権限を与え、書き込み権限を与えません)。

en: <primary>octal representation of rights</primary>
ja: <primary sortas="ケンゲンノハッシンスウヒョウキ">権限の 8 進数表記</primary>

en: <primary>rights</primary><secondary>octal representation</secondary>
ja: <primary sortas="ケンゲン">権限</primary><secondary sortas="ハッシンスウヒョウキ">8 進数表記</secondary>

en: The (octal) numeric representation associates each right with a value: 4 for read, 2 for write, and 1 for execute. We associate each combination of rights with the sum of the figures. Each value is then assigned to different categories of users by putting them end to end in the usual order (owner, group, others).
ja: 数値表記は各権限を値 (8 進数) で表現します。具体的に言えば、読み込みは 4、書き込みは 2、実行権限は 1 で表現します。権限を組み合わせるには組み合わせたい権限に対応する数字を合計します。ユーザの各カテゴリ (所有者、グループ、その他) に対して与える権限を同じ順番で連結して、それぞれの権限を表現します。

en: To represent special rights, you can prefix a fourth digit to this number according to the same principle, where the <literal>setuid</literal>, <literal>setgid</literal> and <literal>sticky</literal> bits are 4, 2 and 1, respectively. <command>chmod 4754</command> will associate the <literal>setuid</literal> bit with the previously described rights.
ja: 同じ原則に従って特別な権限を表す 4 番目の桁は先に説明した 3 桁の権限表記の前に付けます。<literal>setuid</literal>、<literal>setgid</literal>、<literal>sticky</literal> ビットがそれぞれ 4、2、1 に対応します。<command>chmod 4754</command> は前に説明した権限に加えて、<literal>setuid</literal> ビットを設定します。

en: Note that the use of octal notation only allows to set all the rights at once on a file; you cannot use it to simply add a new right, such as read access for the group owner, since you must take into account the existing rights and compute the new corresponding numerical value.
ja: 8 進数表記で権限を指定すると、対象のファイルに対するすべての権限が同じものに設定されます。すなわち、たとえば所有グループに読み込み権限を与えるなどの新しい権限を追加したい場合、8 進数表記は使えません。なぜなら、既に設定されている権限を考慮した新しい権限の数値表記が対象のファイルすべてで同じ数値表記になるとは限らないからです。

en: <emphasis>TIP</emphasis> Recursive operation
ja: <emphasis>TIP</emphasis> 再帰的操作

en: Sometimes we have to change rights for an entire file tree. All the commands above have a <literal>-R</literal> option to operate recursively in sub-directories.
ja: しばしばファイルツリー全体の権限を変更しなければいけない場合があります。<command>chown</command>、<command>chgrp</command>、<command>chmod</command> には、サブディレクトリ内で再帰的に操作を行うための <literal>-R</literal> オプションが用意されています。

en: <primary>rights</primary><secondary>mask</secondary>
ja: <primary sortas="ケンゲン">権限</primary><secondary>マスク</secondary>

en: <primary>mask</primary><secondary>rights mask</secondary>
ja: <primary>マスク</primary><secondary sortas="ケンゲンマスク">権限マスク</secondary>

en: Administration Interfaces
ja: 管理インターフェース

en: <primary>interface</primary><secondary>administration interface</secondary>
ja: <primary>インターフェース</primary><secondary sortas="カンリインターフェース">管理インターフェース</secondary>

en: <primary>administration, interfaces</primary>
ja: <primary sortas="カンリ">管理</primary><secondary>インターフェース</secondary>

en: Using a graphical interface for administration is interesting in various circumstances. An administrator does not necessarily know all the configuration details for all their services, and doesn't always have the time to go seeking out the documentation on the matter. A graphical interface for administration can thus accelerate the deployment of a new service. It can also simplify the setup of services which are hard to configure.
ja: 管理にグラフィカルインターフェースを使うことはさまざまな状況で興味深いです。管理者はすべてのサービスのすべての設定の詳細を知る必要はありませんし、常に問題に関連する文書を探し出すための時間があるというわけでもありません。管理用のグラフィカルインターフェースを使うと、新しいサービスを素早く配備できるようになります。さらに、設定の難しいサービスのセットアップを単純に行うことが可能です。

en: Such an interface is only an aid, and not an end in itself. In all cases, the administrator must master its behavior in order to understand and work around any potential problem.
ja: グラフィカルインターフェースは補助でしかなく、インターフェース自身は目的ではありません。どんな場合でも管理者は、さまざまな潜在的問題を理解して対処するために、サービスの挙動に精通しなければいけません。

en: Since no interface is perfect, you may be tempted to try several solutions. This is to be avoided as much as possible, since different tools are sometimes incompatible in their work methods. Even if they all aim to be very flexible and try to adopt the configuration file as a single reference, they are not always able to integrate external changes.
ja: どんなインターフェースも完璧ではありませんから、さまざまなインターフェースを試したくなるかもしれません。これは可能な限り避けるべきです。なぜなら、ツールが違えばそのやり方に互換性がないこともあるからです。すべてのツールが高い柔軟性を持つことを心がけ、特定の設定ファイルを基準に選ぼうとしている場合であっても、あるツールが自分以外のツールによって行われた変更を必ず統合できるとは限りません。

en: Administrating on a Web Interface: <command>webmin</command>
ja: ウェブインターフェースを使った管理、<command>webmin</command>

en: This is, without a doubt, one of the most successful administration interfaces. It is a modular system managed through a web browser, covering a wide array of areas and tools. Furthermore, it is internationalized and available in many languages.
ja: <command>webmin</command> が最も成功した管理インターフェースの 1 つであることは間違いないでしょう。<command>webmin</command> はウェブブラウザを介したモジュールシステムで、幅広い領域とツールをカバーしています。さらに、<command>webmin</command> は国際化されており、多くの言語で利用できます。

en: There is, however, an unofficial package distributed on the <literal>webmin.com</literal> website. Contrary to the original Debian packages, this package is monolithic; all of its configuration modules are installed and activated by default, even if the corresponding service is not installed on the machine.
ja: しかしながら、非公式パッケージが <literal>webmin.com</literal> ウェブサイトから配布されています。元の Debian パッケージと異なり、このパッケージは柔軟性に欠けています。さらに対応するサービスがマシンにインストールされているか否かに関わらず、すべての設定モジュールがインストールされデフォルトで有効化されます。

en: <emphasis>SECURITY</emphasis> Changing the root password
ja: <emphasis>SECURITY</emphasis> <command>webmin</command> の root パスワードの変更

en: Webmin is used through a web interface, but it does not require Apache to be installed. Essentially, this software has its own integrated mini web server. This server listens by default on port 10000 and accepts secure HTTP connections.
ja: webmin はウェブインターフェースを介して使われますが、Apache をインストールする必要はありません。元から webmin には統合された小さなウェブサーバが含まれています。このサーバはデフォルトでポート 10000 番をリッスンし、安全な HTTP 接続を受け入れます。

en: Included modules cover a wide variety of services, among which:
ja: <command>webmin</command> に導入されているモジュールは多種多様なサービスをカバーしています。たとえば以下はそのリストです。

en: bind: DNS server configuration (name service);
ja: bind。このモジュールは DNS サーバの設定 (ネームサービス) を担当します。

en: postfix: SMTP server configuration (e-mail);
ja: postfix。このモジュールは SMTP サーバの設定 (電子メール) を担当します。

en: dhcpd: DHCP server configuration;
ja: dhcpd。このモジュールは DHCP サーバの設定を担当します。

en: proftpd: FTP server configuration;
ja: proftpd。このモジュールは FTP サーバの設定を担当します。

en: samba: Samba file server configuration;
ja: samba。このモジュールは Samba ファイルサーバの設定を担当します。

en: software: installation or removal of software from Debian packages and system updates.
ja: ソフトウェア。このモジュールは Debian パッケージを使ったソフトウェアのインストールと削除およびシステム更新を担当します。

en: The administration interface is available in a web browser at <literal>https://localhost:10000</literal>. Beware! Not all the modules are directly usable. Sometimes they must be configured by specifying the locations of the corresponding configuration files and some executable files (program). Frequently the system will politely prompt you when it fails to activate a requested module.
ja: ウェブブラウザで <literal>https://localhost:10000</literal> にアクセスすれば管理インターフェースを使えます。注意してください! すべてのモジュールがすぐに使えるわけではありません。対応する設定ファイルと一部の実行ファイル (プログラム) の場所を指定して、モジュールを設定しなければいけない場合もあります。webmin システムが要求されたモジュールの有効化に失敗した場合、webmin システムは丁寧な指示を表示するでしょう。

en: <emphasis>ALTERNATIVE</emphasis> GNOME control center
ja: <emphasis>ALTERNATIVE</emphasis> GNOME コントロールセンター

en: The GNOME project also provides multiple administration interfaces that are usually accessible via the “Settings” entry in the user menu on the top right. <command>gnome-control-center</command> is the main program that brings them all together but many of the system wide configuration tools are effectively provided by other packages (<emphasis role="pkg">accountsservice</emphasis>, <emphasis role="pkg">system-config-printer</emphasis>, etc.). Although they are easy to use, these applications cover only a limited number of base services: user management, time configuration, network configuration, printer configuration, and so on.
ja: GNOME プロジェクトは、通常右上に位置するシステムメニューの「設定」エントリから利用できる、複数の管理インターフェースを提供します。<command>gnome-control-center</command> は複数の管理インターフェースをひとまとめにしたメインプログラムですが、システム共通設定ツールの多くは他のパッケージによって提供されています (たとえば <emphasis role="pkg">accountsservice</emphasis>、<emphasis role="pkg">system-config-printer</emphasis> などが提供されています)。これらのアプリケーションは使いやすいのですが、基盤サービスの一部だけしかカバーされません。たとえば、ユーザ管理、時間設定、ネットワーク設定、プリンタ設定などがカバーされます。

en: Configuring Packages: <command>debconf</command>
ja: パッケージの設定、<command>debconf</command>

en: For most cases, these settings are very simple; only a few important variables in the configuration file are changed. These variables are often grouped between two “demarcation” lines so that reconfiguration of the package only impacts the enclosed area. In other cases, reconfiguration will not change anything if the script detects a manual modification of the configuration file, in order to preserve these human interventions (because the script can't ensure that its own modifications will not disrupt the existing settings).
ja: 多くの場合、これらの設定はとても簡素です。すなわち、設定ファイル中のわずかな重要変数だけが変更されます。これらの重要変数は多くの場合 2 つの「境界」線で挟まれています。そうすれば、パッケージを再設定する際に影響をおよぼす箇所を境界線で挟まれた範囲だけに限定できるからです。「境界」線で挟まれていない場合、スクリプトが手作業で設定ファイルが変更されたことを検出したら、人間による設定変更を上書きしないよう、再設定しても何も変更されません (なぜなら、スクリプトは自分の修正が既存の設定を破壊しないことを保証できないからです)。

en: <emphasis>DEBIAN POLICY</emphasis> Preserving changes
ja: <emphasis>DEBIAN POLICY</emphasis> 変更の保存

en: The Debian Policy expressly stipulates that everything should be done to preserve manual changes made to a configuration file, so more and more scripts take precautions when editing configuration files. The general principle is simple: the script will only make changes if it knows the status of the configuration file, which is verified by comparing the checksum of the file against that of the last automatically generated file. If they are the same, the script is authorized to change the configuration file. Otherwise, it determines that the file has been changed and asks what action it should take (install the new file, save the old file, or try to integrate the new changes with the existing file). This precautionary principle has long been unique to Debian, but other distributions have gradually begun to embrace it.
ja: Debian ポリシーには、スクリプトは設定ファイルに対して行われた手作業の変更を保護するように作業を実行しなければいけないことが明確に規定されています。このため、ますます多くのスクリプトが設定ファイルを編集する際に事前注意を出します。一般的な原則は単純です。すなわち、スクリプトが修正を行うのは、設定ファイルの状態を検証して、修正しても問題ないと判断した場合だけです。設定ファイルの状態検証は、最後に自動的に生成された設定ファイルのチェックサムと現在の設定ファイルのチェックサムを比較することで行います。両者のチェックサムが同じ場合、スクリプトは設定ファイルを変更する権限を与えられます。チェックサムが違った場合、設定ファイルが変更されたと判断し、対応 (新しいファイルをインストールする、古いファイルを保存する、新しい変更を既存のファイルと統合しようとする) を尋ねます。この事前注意の原則は長きにわたり Debian に固有の原則でしたが、他のディストリビューションでも徐々にこの原則が採用され始めています。

en: The <command>ucf</command> program (from the Debian package of the same name) can be used to implement such a behavior.
ja: <command>ucf</command> プログラム (同名の Debian パッケージに含まれます) はこの原則を実行に移すために使われます。

en: <command>syslog</command> System Events
ja: <command>syslog</command> システムイベント

en: Principle and Mechanism
ja: 原理とメカニズム

en: The <command>rsyslogd</command> daemon is responsible for collecting service messages coming from applications and the kernel, then dispatching them into log files (usually stored in the <filename>/var/log/</filename> directory). It obeys the <filename>/etc/rsyslog.conf</filename> configuration file.
ja: <command>rsyslogd</command> デーモンはアプリケーションおよびカーネルからのサービスメッセージの収集を担当し、サービスメッセージをログファイルに配送します (通常 <filename>/var/log/</filename> ディレクトリに保存します)。<command>rsyslogd</command> デーモンは <filename>/etc/rsyslog.conf</filename> ファイルの設定に従います。

en: Each log message is associated with an application subsystem (called “facility” in the documentation):
ja: 各ログメッセージはアプリケーションサブシステム (文書中では「facility」と呼ばれます) に関連付けられます。

en: <literal>auth</literal> and <literal>authpriv</literal>: for authentication;
ja: <literal>auth</literal> と <literal>authpriv</literal>。認証に関連するメッセージです。

en: <literal>cron</literal>: comes from task scheduling services, <command>cron</command> and <command>atd</command>;
ja: <literal>cron</literal>。タスクスケジューリングサービスである <command>cron</command> と <command>atd</command> から受け取ったメッセージです。

en: <literal>daemon</literal>: affects a daemon without any special classification (DNS, NTP, etc.);
ja: <literal>daemon</literal>。特に分類されていないデーモン (DNS、NTP など) から受け取ったメッセージです。

en: <literal>ftp</literal>: concerns the FTP server;
ja: <literal>ftp</literal>。FTP サーバから受け取ったメッセージです。

en: <literal>kern</literal>: message coming from the kernel;
ja: <literal>kern</literal>。カーネルから受け取ったメッセージです。

en: <literal>lpr</literal>: comes from the printing subsystem;
ja: <literal>lpr</literal>。印刷サブシステムから受け取ったメッセージです。

en: <literal>mail</literal>: comes from the e-mail subsystem;
ja: <literal>mail</literal>。電子メールサブシステムから受け取ったメッセージです。

en: <literal>news</literal>: Usenet subsystem message (especially from an NNTP — Network News Transfer Protocol — server that manages newsgroups);
ja: <literal>news</literal>。Usenet サブシステム (特にニュースグループを管理する NNTP (Network News Transfer Protocol) サーバ) から受け取ったメッセージです。

en: <literal>syslog</literal>: messages from the <command>syslogd</command> server, itself;
ja: <literal>syslog</literal>。<command>syslogd</command> サーバ (自分) から受け取ったメッセージです。

en: <literal>user</literal>: user messages (generic);
ja: <literal>user</literal>。ユーザメッセージ (一般的なメッセージ) に関連するメッセージです。

en: <literal>uucp</literal>: messages from the UUCP server (Unix to Unix Copy Program, an old protocol notably used to distribute e-mail messages);
ja: <literal>uucp</literal>。UUCP (Unix to Unix Copy Program、とりわけ昔は電子メールメッセージの配送に使われていた古いプロトコル) サーバから受け取ったメッセージです。

en: <literal>local0</literal> to <literal>local7</literal>: reserved for local use.
ja: <literal>local0</literal> から <literal>local7</literal>。ローカル利用向けに予約されているサブシステムから受け取ったメッセージです。

en: Each message is also associated with a priority level. Here is the list in decreasing order:
ja: さらに各メッセージは優先度と関連付けられます。以下は優先度の高い順に挙げたリストです。

en: <literal>emerg</literal>: “Help!” There is an emergency, the system is probably unusable.
ja: <literal>emerg</literal>。システムが「助けてください!」と言っていることを示しています。これは非常事態で、おそらくシステムが不安定になっていることを示しています。

en: <literal>alert</literal>: hurry up, any delay can be dangerous, action must be taken immediately;
ja: <literal>alert</literal>。システムが大至急対応を必要としており、遅れると危険な状態になることを示しています。この場合、すぐに何らかの措置を講じてください。

en: <literal>crit</literal>: conditions are critical;
ja: <literal>crit</literal>。システムが危機的状態に陥っていることを示しています。

en: <literal>err</literal>: error;
ja: <literal>err</literal>。システムにエラーが発生していることを示しています。

en: <literal>warn</literal>: warning (potential error);
ja: <literal>warn</literal>。システムが警告 (潜在的エラー) を発していることを示しています。

en: <literal>notice</literal>: conditions are normal, but the message is important;
ja: <literal>notice</literal>。システムが正常な状態とは言うものの、重要なメッセージを発していることを示しています。

en: <literal>info</literal>: informative message;
ja: <literal>info</literal>。システムが有益なメッセージを発していることを示しています。

en: <literal>debug</literal>: debugging message.
ja: <literal>debug</literal>。システムがデバッグメッセージを発していることを示しています。

en: The Configuration File
ja: 設定ファイル

en: Syntax of the Selector
ja: セレクタの構文

en: The selector is a semicolon-separated list of <literal><replaceable>subsystem</replaceable>.<replaceable>priority</replaceable></literal> pairs (example: <literal>auth.notice;mail.info</literal>). An asterisk may represent all subsystems or all priorities (examples: <literal>*.alert</literal> or <literal>mail.*</literal>). Several subsystems can be grouped, by separating them with a comma (example: <literal>auth,mail.info</literal>). The priority indicated also covers messages of equal or higher priority; thus <literal>auth.alert</literal> indicates the <literal>auth</literal> subsystem messages of <literal>alert</literal> or <literal>emerg</literal> priority. Prefixed with an exclamation point (!), it indicates the opposite, in other words the strictly lower priorities; <literal>auth.!notice</literal>, thus, indicates messages issued from <literal>auth</literal>, with <literal>info</literal> or <literal>debug</literal> priority. Prefixed with an equal sign (=), it corresponds to precisely and only the priority indicated (<literal>auth.=notice</literal> only concerns messages from <literal>auth</literal> with <literal>notice</literal> priority).
ja: セレクタは <literal><replaceable>subsystem</replaceable>.<replaceable>priority</replaceable></literal> の組からなるセミコロン区切りリストです (たとえば <literal>auth.notice;mail.info</literal> などです)。アスタリスクはすべてのサブシステムまたはすべての優先度を表します (たとえば <literal>*.alert</literal>、<literal>mail.*</literal> などのように使います)。コンマで区切れば複数のサブシステムをグループ化することが可能です (たとえば <literal>auth,mail.info</literal> などのように使います)。優先度は指定した優先度と同じかより高い優先度を持つメッセージを意味しています。このため <literal>auth.alert</literal> は <literal>alert</literal> および <literal>emerg</literal> 優先度を持つ <literal>auth</literal> サブシステムメッセージを表現します。優先度の前に感嘆符 (!) を付けると否定を表します。言い換えれば、その優先度より低い優先度です。このため <literal>auth.!notice</literal> は <literal>auth</literal> サブシステムメッセージの内 <literal>info</literal> および <literal>debug</literal> 優先度を持つメッセージを表現します。優先度の前に等号 (=) を付けると、指定した優先度だけを表します (<literal>auth.=notice</literal> は <literal>auth</literal> サブシステムメッセージの内 <literal>notice</literal> 優先度を持つメッセージを表現します)。

en: Each element in the list on the selector overrides previous elements. It is thus possible to restrict a set or to exclude certain elements from it. For example, <literal>kern.info;kern.!err</literal> means messages from the kernel with priority between <literal>info</literal> and <literal>warn</literal>. The <literal>none</literal> priority indicates the empty set (no priorities), and may serve to exclude a subsystem from a set of messages. Thus, <literal>*.crit;kern.none</literal> indicates all the messages of priority equal to or higher than <literal>crit</literal> not coming from the kernel.
ja: セレクタリスト内の各要素は前の要素を上書きします。このため、セレクタリストからある組を制限したり、特定の要素だけを除外することが可能です。たとえば、<literal>kern.info;kern.!err</literal> はカーネルから受け取った <literal>info</literal> 以上 <literal>warn</literal> 以下の優先度を持つメッセージを意味します。<literal>none</literal> 優先度は空の組を意味し (優先度を指定しないことを意味し)、あるサブシステムだけをメッセージの組から除外するのに役立つかもしれません。そんなわけで、<literal>*.crit;kern.none</literal> はカーネルから受け取った <literal>crit</literal> 以上の優先度を持つメッセージを意味します。

en: Syntax of Actions
ja: アクションの構文

en: <emphasis>BACK TO BASICS</emphasis> The named pipe, a persistent pipe
ja: <emphasis>BACK TO BASICS</emphasis> 名前付きパイプ、永続的なパイプ

en: <primary>named pipe</primary>
ja: <primary sortas="ナマエツキパイプ">名前付きパイプ</primary>

en: A named pipe is a particular type of file that operates like a traditional pipe (the pipe that you make with the “|” symbol on the command line), but via a file. This mechanism has the advantage of being able to relate two unrelated processes. Anything written to a named pipe blocks the process that writes until another process attempts to read the data written. This second process reads the data written by the first, which can then resume execution.
ja: 名前付きパイプは特殊なファイル型で、古典的なパイプ (コマンドラインで「|」文字を使って表すパイプ) のように振る舞いますが、ファイルを経由します。名前付きパイプのメカニズムは 2 つの別々のプロセスを関連付けることが可能という利点を持っています。別のプロセスが名前付きパイプに書き込まれるデータを読む準備を整えるまで、名前付きパイプに書き込むプロセスはブロックされます。読み込み側のプロセスが書き込み側のプロセスの書き込んだデータを読み込むと、書き込み側のプロセスのブロックが解除されます。

en: Such a file is created with the <command>mkfifo</command> command.
ja: 名前付きパイプは <command>mkfifo</command> コマンドで作成します。

en: The various possible actions are:
ja: 以下に指定できるさまざまなアクションを挙げます。

en: add the message to a file (example: <filename>/var/log/messages</filename>);
ja: ファイルにメッセージを追記します (たとえば <filename>/var/log/messages</filename> などのように指定します)。

en: send the message to a remote <command>syslog</command> server (example: <literal>@log.falcot.com</literal>);
ja: メッセージをリモートの <command>syslog</command> サーバに送信します (たとえば <literal>@log.falcot.com</literal> などのように指定します)。

en: send the message to an existing named pipe (example: <literal>|/dev/xconsole</literal>);
ja: 既存の名前付きパイプにメッセージを送信します (たとえば <literal>|/dev/xconsole</literal> などのように指定します)。

en: send the message to one or more users, if they are logged in (example: <literal>root,rhertzog</literal>);
ja: ログイン中の個人または複数人のユーザにメッセージを送信します (たとえば <literal>root,rhertzog</literal> などのように指定します)。

en: send the message to all logged in users (example: <literal>*</literal>);
ja: ログイン中の全ユーザにメッセージを送信します (たとえば <literal>*</literal> などのように指定します)。

en: write the message in a text console (example: <literal>/dev/tty8</literal>).
ja: テキストコンソールにメッセージを書き込みます (たとえば <literal>/dev/tty8</literal> などのように指定します)。

en: <emphasis>SECURITY</emphasis> Forwarding logs
ja: <emphasis>SECURITY</emphasis> ログの転送

en: <primary>log</primary><secondary>forwarding</secondary>
ja: <primary>ログ</primary><secondary sortas="テンソウ">転送</secondary>

en: It is a good idea to record the most important logs on a separate machine (perhaps dedicated for this purpose), since this will prevent any possible intruder from removing traces of their intrusion (unless, of course, they also compromise this other server). Furthermore, in the event of a major problem (such as a kernel crash), you have the logs available on another machine, which increases your chances of determining the sequence of events that caused the crash.
ja: 最重要のログを別のマシン (ログ記録専用マシン) に記録することは良い考えです。なぜなら、そうすることで侵入者に不正侵入の形跡を削除されないようにすることが可能だからです (形跡を削除するにはもちろん、ログ記録専用の別のマシンに不正アクセスするしかありません)。さらに、深刻な問題 (カーネルクラッシュなど) が起きた場合に、別のマシンにログを記録しておけば、クラッシュを引き起こす一連の出来事を決定できる可能性を増やすことが可能です。

en: To accept log messages sent by other machines, you must reconfigure <emphasis>rsyslog</emphasis>: in practice, it is sufficient to activate the ready-for-use entries in <filename>/etc/rsyslog.conf</filename> (<literal>$ModLoad imudp</literal> and <literal>$UDPServerRun 514</literal>).
ja: 他のマシンから送信されたログメッセージを受け入れるには、<emphasis>rsyslog</emphasis> を再設定しなければいけません。具体的に言えば、<filename>/etc/rsyslog.conf</filename> の中ですぐに利用できる状態になっているエントリ (<literal>$ModLoad imudp</literal> と <literal>$UDPServerRun 514</literal>) を有効化するだけで十分です。

en: The <command>inetd</command> Super-Server
ja: <command>inetd</command> スーパーサーバ

en: Inetd (often called “Internet super-server”) is a server of servers. It executes rarely used servers on demand, so that they do not have to run continuously.
ja: inetd (通常「インターネットスーパーサーバ」と呼ばれます) はサーバのサーバです。inetd は要求に応じてまれに使われるサーバを実行します。そうすれば、まれにしか使われないサーバを常に実行しておく必要がなくなります。

en: <primary>super-server</primary>
ja: <primary>スーパーサーバ</primary>

en: The <filename>/etc/inetd.conf</filename> file lists these servers and their usual ports. The <command>inetd</command> command listens to all of them; when it detects a connection to any such port, it executes the corresponding server program.
ja: <filename>/etc/inetd.conf</filename> ファイルには、要求に応じて起動するサーバとサーバの使うポート番号が書かれています。<command>inetd</command> コマンドはここで書かれたすべてのポートをリッスンします。さらに、<command>inetd</command> はポートに対する接続を検出したら、対応するサーバプログラムを実行します。

en: Packages frequently want to register a new server in the <filename>/etc/inetd.conf</filename> file, but Debian Policy prohibits any package from modifying a configuration file that it doesn't own. This is why the <command>update-inetd</command> script (in the package with the same name) was created: It manages the configuration file, and other packages can thus use it to register a new server to the super-server's configuration.
ja: 多くの場合 inetd を使うサーバのパッケージは <filename>/etc/inetd.conf</filename> ファイルに自分を登録することを望むのですが、Debian ポリシーはパッケージが自分の持ち物でない設定ファイルを修正することを禁止しています。このため、<command>update-inetd</command> スクリプト (同名のパッケージに含まれます) が作成されました。すなわち <command>update-inetd</command> スクリプトが設定ファイルを管理し、他のパッケージは <command>update-inetd</command> を使ってスーパーサーバの設定に新しいサーバを登録します。

en: Each significant line of the <filename>/etc/inetd.conf</filename> file describes a server through seven fields (separated by spaces):
ja: <filename>/etc/inetd.conf</filename> ファイルの有効な各行は (空白で区切られた) 7 つのフィールドで 1 つのサーバを表現します。各フィールドの意味は以下の通りです。

en: The TCP or UDP port number, or the service name (which is mapped to a standard port number with the information contained in the <filename>/etc/services</filename> file).
ja: TCP か UDP のポート番号、またはサービス名 (この場合、<filename>/etc/services</filename> ファイルに含まれる情報を使って標準的なポート番号に置換されます)。

en: The socket type: <literal>stream</literal> for a TCP connection, <literal>dgram</literal> for UDP datagrams.
ja: ソケットタイプ。このフィールドは TCP 接続の場合 <literal>stream</literal>、UDP データグラムの場合 <literal>dgram</literal> を指定します。

en: The options: two possible values: <literal>wait</literal> or <literal>nowait</literal>, to tell <command>inetd</command> whether it should wait or not for the end of the launched process before accepting another connection. For TCP connections, easily multiplexable, you can usually use <literal>nowait</literal>. For programs responding over UDP, you should use <literal>nowait</literal> only if the server is capable of managing several connections in parallel. You can suffix this field with a period, followed by the maximum number of connections authorized per minute (the default limit is 256).
ja: オプション。このフィールドに指定できる値は <literal>wait</literal> または <literal>nowait</literal> の 2 種類です。これらの値を使って、<command>inetd</command> に対して他の接続を受け入れる前に既に起動中のプロセスの終了を待つ (<literal>wait</literal>) か待たない (<literal>nowait</literal>) かを指定します。簡単に多重送信対応できる TCP 接続の場合、通常 <literal>nowait</literal> を使います。UDP を使って応答するプログラムに対しては、サーバが複数接続の並列化を管理する機能を持っている場合に限り <literal>nowait</literal> を使うべきです。この後にピリオドで区切りながら子プロセスの最大数、さらに 1 分間に認められる接続の最大数 (デフォルトの値は 256) を指定することが可能です。

en: The full path to the server program to execute.
ja: 実行するサーバプログラムのフルパス。

en: The arguments: this is a complete list of the program's arguments, including its own name (<literal>argv[0]</literal> in C).
ja: 引数。このフィールドはプログラムの引数の完全なリストを指定し、サーバプログラムの名前 (C 言語で言えば <literal>argv[0]</literal>) を含みます。

en: Excerpt from <filename>/etc/inetd.conf</filename>
ja: <filename>/etc/inetd.conf</filename> からの抜粋

en: <primary>Wietse Venema</primary>
ja: <primary sortas="ジンメイ">人名</primary><secondary>Wietse Venema</secondary>

en: <primary>Venema, Wietse</primary>
ja: <primary sortas="ジンメイ">人名</primary><secondary>Wietse Venema</secondary>

en: <emphasis>ALTERNATIVE</emphasis> Other <command>inetd</command> commands
ja: <emphasis>ALTERNATIVE</emphasis> 他の <command>inetd</command> コマンド

en: Scheduling Tasks with <command>cron</command> and <command>atd</command>
ja: <command>cron</command> と <command>atd</command> を使ったスケジューリングタスク

en: <primary>scheduled commands</primary>
ja: <primary sortas="スケジュールサレタコマンド">スケジュールされたコマンド</primary>

en: <primary>command scheduling</primary>
ja: <primary sortas="コマンドノスケジューリング">コマンドのスケジューリング</primary>

en: In a Unix system, many tasks are scheduled for regular execution:
ja: Unix システムでは、以下に挙げる多くのタスクが定期的に実行されるよう予定されています。

en: rotating the logs;
ja: ログの循環。

en: updating the database for the <command>locate</command> program;
ja: <command>locate</command> プログラムの使うデータベースの更新。

en: back-ups;
ja: バックアップ。

en: maintenance scripts (such as cleaning out temporary files).
ja: メンテナンススクリプト (これは一時ファイルの掃除を行うスクリプトなどを指します)。

en: By default, all users can schedule the execution of tasks. Each user has thus their own <emphasis>crontab</emphasis> in which they can record scheduled commands. It can be edited by running <command>crontab -e</command> (its content is stored in the <filename>/var/spool/cron/crontabs/<replaceable>user</replaceable></filename> file).
ja: デフォルトで、すべてのユーザはタスク実行の予定を入れることが可能です。各ユーザは自分専用の <emphasis>crontab</emphasis> を持っており、これを使ってコマンド実行の予定を登録することが可能です。<emphasis>crontab</emphasis> を編集するには <command>crontab -e</command> を実行します (<emphasis>crontab</emphasis> は <filename>/var/spool/cron/crontabs/<replaceable>user</replaceable></filename> ファイルに保存されます)。

en: <emphasis>SECURITY</emphasis> Restricting <command>cron</command> or <command>atd</command>
ja: <emphasis>SECURITY</emphasis> <command>cron</command> または <command>atd</command> の使用制限

en: The root user has their own <emphasis>crontab</emphasis>, but can also use the <filename>/etc/crontab</filename> file, or write additional <emphasis>crontab</emphasis> files in the <filename>/etc/cron.d</filename> directory. These last two solutions have the advantage of being able to specify the user identity to use when executing the command.
ja: root ユーザは自分専用の <emphasis>crontab</emphasis> を持っていますが、<filename>/etc/crontab</filename> ファイルを使ったり、追加的な <emphasis>crontab</emphasis> ファイルを <filename>/etc/cron.d</filename> ディレクトリに置くことが可能です。最後の 2 つの解決策には、コマンドを実行するユーザを明示できるという利点があります。

en: The <emphasis>cron</emphasis> package includes by default some scheduled commands that execute:
ja: デフォルトで <emphasis>cron</emphasis> パッケージには、いくつかのスケジュール済みコマンドが含まれています。

en: programs in the <filename>/etc/cron.hourly/</filename> directory once per hour;
ja: <filename>/etc/cron.hourly/</filename> ディレクトリ内のプログラムは 1 時間に 1 回実行されます。

en: programs in <filename>/etc/cron.daily/</filename> once per day;
ja: <filename>/etc/cron.daily/</filename> ディレクトリ内のプログラムは 1 日に 1 回実行されます。

en: programs in <filename>/etc/cron.weekly/</filename> once per week;
ja: <filename>/etc/cron.weekly/</filename> ディレクトリ内のプログラムは 1 週間に 1 回実行されます。

en: programs in <filename>/etc/cron.monthly/</filename> once per month.
ja: <filename>/etc/cron.monthly/</filename> ディレクトリ内のプログラムは 1 カ月に 1 回実行されます。

en: Many Debian packages rely on this service: by putting maintenance scripts in these directories, they ensure optimal operation of their services.
ja: 多くの Debian パッケージは cron のサービスに頼っています。すなわち、メンテナンススクリプトをこれらのディレクトリに入れて、サービスの最適な動作を保証しています。

en: Format of a <filename>crontab</filename> File
ja: <filename>crontab</filename> ファイルの書式

en: <emphasis>TIP</emphasis> Text shortcuts for <command>cron</command>
ja: <emphasis>TIP</emphasis> <command>cron</command> のテキストショートカット

en: <command>cron</command> recognizes some abbreviations which replace the first five fields in a <filename>crontab</filename> entry. They correspond to the most classic scheduling options:
ja: <command>cron</command> はいくつかの略語を認識します。略語は <filename>crontab</filename> エントリの最初の 5 つのフィールドを置き換えます。略語は最も古典的なスケジューリングオプションに対応します。

en: <literal>@yearly</literal>: once per year (January 1, at 00:00);
ja: <literal>@yearly</literal>。この略語は 1 年に 1 回 (1 月 1 日の 00:00) を意味しています。

en: <literal>@monthly</literal>: once per month (the 1st of the month, at 00:00);
ja: <literal>@monthly</literal>。この略語は 1 カ月に 1 回 (毎月 1 日の 00:00) を意味しています。

en: <literal>@weekly</literal>: once per week (Sunday at 00:00);
ja: <literal>@weekly</literal>。この略語は 1 週間に 1 回 (日曜日の 00:00) を意味しています。

en: <literal>@daily</literal>: once per day (at 00:00);
ja: <literal>@daily</literal>。この略語は 1 日 1 回 (00:00) を意味しています。

en: <literal>@hourly</literal>: once per hour (at the beginning of each hour).
ja: <literal>@hourly</literal>。この略語は 1 時間に 1 回 (毎時 0 分) を意味しています。

en: <emphasis>SPECIAL CASE</emphasis> <command>cron</command> and daylight savings time
ja: <emphasis>SPECIAL CASE</emphasis> <command>cron</command> と夏時間

en: In Debian, <command>cron</command> takes the time change (for Daylight Savings Time, or in fact for any significant change in the local time) into account as best as it can. Thus, the commands that should have been executed during an hour that never existed (for example, tasks scheduled at 2:30 am during the Spring time change in France, since at 2:00 am the clock jumps directly to 3:00 am) are executed shortly after the time change (thus around 3:00 am DST). On the other hand, in autumn, when commands would be executed several times (2:30 am DST, then an hour later at 2:30 am standard time, since at 3:00 am DST the clock turns back to 2:00 am) are only executed once.
ja: Debian では、<command>cron</command> は可能な限り正確に時刻変化 (夏時間、実質的にはローカル時間の大幅な変更) に追従します。このため、決して存在しない 1 時間内に実行されるべきコマンド (たとえば、フランスで夏時間開始日の午前 2:30 に予定されているタスクです。夏時間に切り替わると標準時の午前 2:00 は夏時間の午後 3:00 になります) は時刻が変わった後すぐに実行されます (つまり夏時間で午前 3:00 頃に実行されます)。一方で、夏時間終了日に複数回実行されると思われるコマンド (夏時間の午前 2:30 とその 1 時間後の標準時の午前 2:30 に予定されているコマンド。標準時に戻ると夏時間の午前 3:00 は標準時の午前 2:00 になります) は 1 回だけ実行されます。

en: Be careful, however, if the order in which the different scheduled tasks and the delay between their respective executions matters, you should check the compatibility of these constraints with <command>cron</command>'s behavior; if necessary, you can prepare a special schedule for the two problematic nights per year.
ja: しかしながら気を付けてください、別にスケジュールされたタスクとの順番とそれぞれのタスク実行間の遅延が重要な問題の場合、それらの制約の互換性と <command>cron</command> の挙動を照合するべきです。必要ならば、夏時間開始日と夏時間終了日の夜専用の特別なスケジュールを用意することも可能です。

en: the value for the hour (from 0 to 23);
ja: 時間 (0 から 23 までの数字を指定します)。

en: the value for the day of the month (from 1 to 31);
ja: 月の日付 (1 から 31 までの数字を指定します)。

en: the value for the month (from 1 to 12);
ja: 月 (1 から 12 までの数字を指定します)。

en: the value for the day of the week (from 0 to 7, 1 corresponding to Monday, Sunday being represented by both 0 and 7; it is also possible to use the first three letters of the name of the day of the week in English, such as <literal>Sun</literal>, <literal>Mon</literal>, etc.);
ja: 曜日 (0 から 7 までの数字、月曜日は 1、日曜日は 0 と 7 の両方、さらに英語で書いた曜日の最初の 3 文字 <literal>Sun</literal>、<literal>Mon</literal> などを使うことも可能です)。

en: the user name under whose identity the command must be executed (in the <filename>/etc/crontab</filename> file and in the fragments located in <filename>/etc/cron.d/</filename>, but not in the users' own crontab files);
ja: コマンドを実行するユーザ名 (<filename>/etc/crontab</filename> ファイルと <filename>/etc/cron.d/</filename> にある分割されたファイルでは必要ですが、各ユーザ専用のファイルでは不要です)。

en: the command to execute (when the conditions defined by the first five columns are met).
ja: 実行するコマンド (最初の 5 つのフィールドで定義された条件が満足されたら実行します)。

en: All these details are documented in the <citerefentry><refentrytitle>crontab</refentrytitle> <manvolnum>5</manvolnum></citerefentry> man page.
ja: すべての詳細は <citerefentry><refentrytitle>crontab</refentrytitle> <manvolnum>5</manvolnum></citerefentry> man ページに書かれています。

en: <emphasis>TIP</emphasis> Executing a command on boot
ja: <emphasis>TIP</emphasis> 起動時にコマンドを実行

en: To execute a command a single time, just after booting the computer, you can use the <literal>@reboot</literal> macro (a simple restart of <command>cron</command> does not trigger a command scheduled with <literal>@reboot</literal>). This macro replaces the first five fields of an entry in the <emphasis>crontab</emphasis>.
ja: コンピュータを起動した後に毎回コマンドを実行するためには、<literal>@reboot</literal> マクロを使ってください (<command>cron</command> を単純に再起動しただけでは <literal>@reboot</literal> でスケジュールされたコマンドは実行されません)。<literal>@reboot</literal> マクロを使うには <emphasis>crontab</emphasis> 内の最初の 5 つのフィールドを <literal>@reboot</literal> で置換してください。

en: <emphasis>ALTERNATIVE</emphasis> Emulating <command>cron</command> with <command>systemd</command>
ja: <emphasis>ALTERNATIVE</emphasis> <command>systemd</command> を使った <command>cron</command> のエミュレート

en: Using the <command>at</command> Command
ja: <command>at</command> コマンドの利用

en: An alternative syntax postpones the execution for a given duration: <command>at now + <replaceable>number</replaceable> <replaceable>period</replaceable></command>. The <replaceable>period</replaceable> can be <literal>minutes</literal>, <literal>hours</literal>, <literal>days</literal>, or <literal>weeks</literal>. The <replaceable>number</replaceable> simply indicates the number of said units that must elapse before execution of the command.
ja: 与えられた期間だけ実行を先延ばしにする構文もあります。たとえば <command>at now + <replaceable>number</replaceable> <replaceable>period</replaceable></command> です。<replaceable>period</replaceable> には <literal>minutes</literal>、<literal>hours</literal>、<literal>days</literal>、<literal>weeks</literal> を指定することが可能です。<replaceable>number</replaceable> は単純に <replaceable>period</replaceable> で指定した単位の量を表し、この量だけコマンドの実行が先延ばしされます。

en: To cancel a task scheduled by <command>cron</command>, simply run <command>crontab -e</command> and delete the corresponding line in the <emphasis>crontab</emphasis> file. For <command>at</command> tasks, it is almost as easy: run <command>atrm <replaceable>task-number</replaceable></command>. The task number is indicated by the <command>at</command> command when you scheduled it, but you can find it again with the <command>atq</command> command, which gives the current list of scheduled tasks.
ja: <command>cron</command> でスケジュールされたタスクを中止するには、単純に <command>crontab -e</command> を実行し、<emphasis>crontab</emphasis> ファイルから対応する行を削除してください。<command>at</command> タスクの場合、削除はとても簡単です。すなわち <command>atrm <replaceable>task-number</replaceable></command> を実行してください。タスク番号は <command>at</command> コマンドで予定を登録した際に表示されたものです。もう一度確認するには <command>atq</command> コマンドを実行してください。これはスケジュールされたタスクの現在のリストを表示します。

en: Scheduling Asynchronous Tasks: <command>anacron</command>
ja: 非同期タスクのスケジューリング、<command>anacron</command>

en: <command>anacron</command> is the daemon that completes <command>cron</command> for computers that are not on at all times. Since regular tasks are usually scheduled for the middle of the night, they will never be executed if the computer is off at that time. The purpose of <command>anacron</command> is to execute them, taking into account periods in which the computer is not working.
ja: <command>anacron</command> はデーモンで、常に起動されていないコンピュータの <command>cron</command> を完成させるものです。定期的なタスクは通常真夜中に予定されているため、その時間にコンピュータの電源が切れていればタスクは決して実行されません。<command>anacron</command> の目的は、コンピュータの電源が切れている期間を考慮して、その期間中に予定されていたタスクを実行することです。

en: Please note that <command>anacron</command> will frequently execute such activity a few minutes after booting the machine, which can render the computer less responsive. This is why the tasks in the <filename>/etc/anacrontab</filename> file are started with the <command>nice</command> command, which reduces their execution priority and thus limits their impact on the rest of the system. Beware, the format of this file is not the same as that of <filename>/etc/crontab</filename>; if you have particular needs for <command>anacron</command>, see the <citerefentry><refentrytitle>anacrontab</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manual page.
ja: <command>anacron</command> は通常そのようなタスクをマシンの起動数分後に実行します。このことにより、コンピュータの反応が遅くなります。このため、<filename>/etc/anacrontab</filename> ファイルに載せられたタスクは <command>nice</command> コマンドと一緒に開始されます。こうすることで、タスクの優先度を低くして実行できるので、システムの残りの部分に対する影響を減らすことが可能です。<filename>/etc/anacrontab</filename> ファイルの書式は <filename>/etc/crontab</filename> と異なる点に注意してください。さらに <command>anacron</command> を使う特別な理由がある場合、<citerefentry><refentrytitle>anacrontab</refentrytitle> <manvolnum>5</manvolnum></citerefentry> マニュアルページをご覧ください。

en: <emphasis>BACK TO BASICS</emphasis> Priorities and <command>nice</command>
ja: <emphasis>BACK TO BASICS</emphasis> 実行優先度と <command>nice</command>

en: <command>nice</command> works with levels of “niceness”: the positive levels (from 1 to 19) progressively lower the priority, while the negative levels (from -1 to -20) will increase it — but only root can use these negative levels. Unless otherwise indicated (see the <citerefentry><refentrytitle>nice</refentrytitle> <manvolnum>1</manvolnum></citerefentry> manual page), <command>nice</command> increases the current level by 10.
ja: <command>nice</command> は「niceness」と呼ばれる優先度と連動します。ここで正の優先度 (1 から 19) は低い優先度、これに対して、負の優先度 (-1 から -20) は高い優先度を意味します。負の (高い) 優先度を使えるのは root だけです。「niceness」を与えなければ (<citerefentry><refentrytitle>nice</refentrytitle> <manvolnum>1</manvolnum></citerefentry> マニュアルページを参照してください)、<command>nice</command> は現在の優先度を正方向に 10 だけ増加します (優先度を下げます)。

en: If you discover that an already running task should have been started with <command>nice</command> it is not too late to fix it; the <command>renice</command> command changes the priority of an already running process, in either direction (but reducing the “niceness” of a process is reserved for the root user).
ja: 既に実行中のタスクの中に <command>nice</command> で開始するべきプロセスを発見した場合、今からでも優先度を修正することが可能です。<command>renice</command> コマンドは実行中のプロセスの優先度を変更します。優先度を低くすることも高くすることも可能です (ただし、「niceness」を減らす (優先度を高くする) ことができるのは root だけです)。

en: Installation of the <emphasis role="pkg">anacron</emphasis> package deactivates execution by <command>cron</command> of the scripts in the <filename>/etc/cron.hourly/</filename>, <filename>/etc/cron.daily/</filename>, <filename>/etc/cron.weekly/</filename>, and <filename>/etc/cron.monthly/</filename> directories. This avoids their double execution by <command>anacron</command> and <command>cron</command>. The <command>cron</command> command remains active and will continue to handle the other scheduled tasks (especially those scheduled by users).
ja: <emphasis role="pkg">anacron</emphasis> パッケージをインストールすることにより、<command>cron</command> は <filename>/etc/cron.hourly/</filename>、<filename>/etc/cron.daily/</filename>、<filename>/etc/cron.weekly/</filename>、<filename>/etc/cron.monthly/</filename> ディレクトリに含まれるスクリプトを実行しなくなります。これは <command>anacron</command> と <command>cron</command> がスクリプトを二重に実行することを避けるためです。<command>cron</command> コマンドはまだ有効で、他のスケジュールされたタスク (特にユーザがスケジュールしたタスク) を取り扱うことが可能です。

en: Quotas
ja: クォータ

en: <primary>quota</primary>
ja: <primary>クォータ</primary>

en: The quota system allows limiting disk space allocated to a user or group of users. To set it up, you must have a kernel that supports it (compiled with the <varname>CONFIG_QUOTA</varname> option) — as is the case with Debian kernels. The quota management software is found in the <emphasis role="pkg">quota</emphasis> Debian package.
ja: クォータシステムを使うことで、ユーザまたはユーザグループに割り当てられたディスク領域を制限することが可能です。クォータを設定するには、クォータをサポートする (<varname>CONFIG_QUOTA</varname> オプションを有効化してコンパイルされた) カーネルを使わなければいけません。Debian カーネルはクォータをサポートしています。クォータ管理ソフトウェアは <emphasis role="pkg">quota</emphasis> Debian パッケージに含まれています。

en: To activate quota in a filesystem, you have to indicate the <literal>usrquota</literal> and <literal>grpquota</literal> options in <filename>/etc/fstab</filename> for the user and group quotas, respectively. Rebooting the computer will then update the quotas in the absence of disk activity (a necessary condition for proper accounting of already used disk space).
ja: あるファイルシステムでクォータを有効化するには、<filename>/etc/fstab</filename> の中で <literal>usrquota</literal> (ユーザ用クォータ) および <literal>grpquota</literal> (グループ用クォータ) オプションを指定します。この後コンピュータを再起動すると、ディスク活動のない時にクォータが更新されます (これは使用済みディスク領域を適切に計量する必要条件です)。

en: The <command>edquota <replaceable>user</replaceable></command> (or <command>edquota -g <replaceable>group</replaceable></command>) command allows you to change the limits while examining current disk space usage.
ja: <command>edquota <replaceable>user</replaceable></command> (または <command>edquota -g <replaceable>group</replaceable></command>) コマンドを使うと、現在のディスク領域使用量を検査している最中に、制限を変更することが可能です。

en: <emphasis>GOING FURTHER</emphasis> Defining quotas with a script
ja: <emphasis>GOING FURTHER</emphasis> スクリプトを使ったクォータの定義

en: The <command>setquota</command> program can be used in a script to automatically change many quotas. Its <citerefentry><refentrytitle>setquota</refentrytitle> <manvolnum>8</manvolnum></citerefentry> manual page details the syntax to use.
ja: <command>setquota</command> プログラムを使うことで、スクリプトの中で自動的に多くのクォータを変更することが可能です。構文の使い方は <citerefentry><refentrytitle>setquota</refentrytitle> <manvolnum>8</manvolnum></citerefentry> マニュアルページをご覧ください。

en: The quota system allows you to set four limits:
ja: クォータシステムを使うと以下の 4 種類の制限を設定することが可能です。

en: <primary>inode</primary>
ja: <primary>i ノード</primary>

en: A “soft” limit can be temporarily exceeded; the user will simply be warned that they are exceeding the quota by the <command>warnquota</command> command, which is usually invoked by <command>cron</command>. A “hard” limit can never be exceeded: the system will refuse any operation that will cause a hard quota to be exceeded.
ja: 「ソフト」リミットは一時的に超過できます。しかし、ユーザは <command>warnquota</command> コマンドからクォータを超過していることに対して簡単な警告を受けます。<command>warnquota</command> コマンドは通常 <command>cron</command> コマンドによって呼び出されます。「ハード」リミットは決して超過できません。すなわち、システムはハードクォータを超過するような操作をすべて拒否します。

en: <emphasis>VOCABULARY</emphasis> Blocks and inodes
ja: <emphasis>VOCABULARY</emphasis> ブロックと i ノード

en: <primary>block (disk)</primary>
ja: <primary>ブロック (ディスク)</primary>

en: The filesystem divides the hard drive into blocks — small contiguous areas. The size of these blocks is defined during creation of the filesystem, and generally varies between 1 and 8 kibibytes.
ja: ファイルシステムはハードドライブをブロック (小さく連続した領域) に分割します。ブロックのサイズはファイルシステムの作成時に定義され、一般的に 1 から 8 キロバイトまでの範囲を取ります。

en: A block can be used either to store the real data of a file, or for meta-data used by the filesystem. Among this meta-data, you will especially find the inodes. An inode uses a block on the hard drive (but this block is not taken into consideration in the block quota, only in the inode quota), and contains both the information on the file to which it corresponds (name, owner, permissions, etc.) and the pointers to the data blocks that are actually used. For very large files that occupy more blocks than it is possible to reference in a single inode, there is an indirect block system; the inode references a list of blocks that do not directly contain data, but another list of blocks.
ja: ブロックはファイルの実データまたはファイルシステムが使うメタデータのどちらか一方を保存するために使われます。メタデータの中でも特に、i ノードについて説明します。1 つの i ノードはハードドライブ上の 1 ブロックを使い (i ノードを保存するブロックはブロッククォータに考慮されず、i ノードクォータだけに考慮されます)、その i ノードに対応するファイルの情報 (名前、所有者、パーミッションなど) と実際に使われるデータブロックへのポインタ情報の両方を含みます。単一の i ノードで対応できないくらい多くのブロックを専有するとても大きなファイルのために、間接ブロックシステムがあります。この場合の i ノードは、実データではなく別のブロックのリストを保存しているブロックのリストを参照します。

en: With the <command>edquota -t</command> command, you can define a maximum authorized “grace period” within which a soft limit may be exceeded. After this period, the soft limit will be treated like a hard limit, and the user will have to reduce their disk space usage to within this limit in order to be able to write anything to the hard drive.
ja: <command>edquota -t</command> コマンドを使えば、ソフトリミットの超過を許す「猶予期間」の最長値を定義することが可能です。この期間の後、ソフトリミットはハードリミットと同様に扱われます。ユーザがハードドライブに何かを書き込むには、ディスク領域の使用量を減らしてクォータの制限内に収めなければいけません。

en: <emphasis>GOING FURTHER</emphasis> Setting up a default quota for new users
ja: <emphasis>GOING FURTHER</emphasis> 新規ユーザのデフォルトクォータを設定する

en: To automatically setup a quota for new users, you have to configure a template user (with <command>edquota</command> or <command>setquota</command>) and indicate their user name in the <varname>QUOTAUSER</varname> variable in the <filename>/etc/adduser.conf</filename> file. This quota configuration will then be automatically applied to each new user created with the <command>adduser</command> command.
ja: 新規ユーザ向けにクォータを自動設定するには、(<command>edquota</command> または <command>setquota</command> を使って) テンプレートユーザに対してクォータを設定し、<filename>/etc/adduser.conf</filename> ファイルの <varname>QUOTAUSER</varname> 変数にテンプレートユーザの名前をいれなければいけません。この後 <command>adduser</command> コマンドを使って新規ユーザを作成すれば、テンプレートユーザと同じクォータ設定が自動的に適用されます。

en: <primary>backup</primary>
ja: <primary>バックアップ</primary>

en: <primary>restoration</primary>
ja: <primary sortas="フクゲン">復元</primary>

en: Making backups is one of the main responsibilities of any administrator, but it is a complex subject, involving powerful tools which are often difficult to master.
ja: バックアップを取ることは管理者の主要な責任の 1 つです。しかし、これは通常極めるのが難しい強力なツールを使う複雑な問題です。

en: Rather than detailing some of them, this section will present the thoughts of the Falcot Corp administrators when they defined their backup strategy.
ja: この節ではプログラムの使い方を詳細に説明するのではなく、Falcot Corp の管理者がバックアップ戦略を定義する際にどのように考えたかを説明します。

en: At Falcot Corp, backups have two goals: recovering erroneously deleted files, and quickly restoring any computer (server or desktop) whose hard drive has failed.
ja: Falcot Corp では、バックアップには 2 つの目標があります。具体的に言えば、誤って削除したファイルを回復することと、ハードドライブに障害が起きた際にコンピュータ (サーバおよびデスクトップ) を素早く復元することです。

en: Backing Up with <command>rsync</command>
ja: <command>rsync</command> を使ったバックアップ

en: Backups on tape having been deemed too slow and costly, data will be backed up on hard drives on a dedicated server, on which the use of software RAID (see <xref linkend="sect.raid-soft" />) will protect the data from hard drive failure. Desktop computers are not backed up individually, but users are advised that their personal account on their department's file server will be backed up. The <command>rsync</command> command (from the package of the same name) is used daily to back up these different servers.
ja: テープへのバックアップは遅くて費用がかかりすぎるとみなされ、データは専用サーバのハードドライブにバックアップされることになりました。専用サーバはソフトウェア RAID (<xref linkend="sect.raid-soft" />を参照してください) を使ってデータをハードウェア障害から守っています。デスクトップコンピュータは個別にバックアップされませんが、ユーザは部署のファイルサーバの個人アカウントはバックアップされると知らされています。毎日異なるサーバにバックアップを行う目的で、<command>rsync</command> コマンド (同名のパッケージに含まれます) が使われています。

en: <emphasis>BACK TO BASICS</emphasis> The hard link, a second name for the file
ja: <emphasis>BACK TO BASICS</emphasis> ハードリンク、ファイルの別名

en: <primary>link</primary><secondary>hard link</secondary>
ja: <primary>リンク</primary><secondary>ハードリンク</secondary>

en: <primary>hard link</primary>
ja: <primary>ハードリンク</primary>

en: A hard link, as opposed to a symbolic link, cannot be differentiated from the linked file. Creating a hard link is essentially the same as giving an existing file a second name. This is why the deletion of a hard link only removes one of the names associated with the file. As long as another name is still assigned to the file, the data therein remain present on the filesystem. It is interesting to note that, unlike a copy, the hard link does not take up additional space on the hard drive.
ja: ハードリンクはシンボリックリンクと異なり、リンクされたファイルと区別できません。本質的に、ハードリンクの作成は既存のファイルに別名を与えることと同義です。そのため、ハードリンクの削除はそのファイルに関連する名前を削除するに過ぎません。他の名前がまだそのファイルに関連付けられている場合、データの実体はファイルシステムから削除されません。コピーと異なり、ハードリンクはハードドライブ上に追加的な領域を必要としない点について注意することは興味深いです。

en: A hard link is created with the <command>ln <replaceable>target</replaceable> <replaceable>link</replaceable></command> command. The <replaceable>link</replaceable> file is then a new name for the <replaceable>target</replaceable> file. Hard links can only be created on the same filesystem, while symbolic links are not subject to this limitation.
ja: ハードリンクは <command>ln <replaceable>target</replaceable> <replaceable>link</replaceable></command> コマンドで作成されます。ここで <replaceable>link</replaceable> ファイルは <replaceable>target</replaceable> ファイルの新しい名前です。ハードリンクは <replaceable>target</replaceable> と <replaceable>link</replaceable> が同じファイルシステム上にある場合に限り作成できます。対してシンボリックリンクはこの制限を受けません。

en: The available hard drive space prohibits implementation of a complete daily backup. As such, the <command>rsync</command> command is preceded by a duplication of the content of the previous backup with hard links, which prevents usage of too much hard drive space. The <command>rsync</command> process then only replaces files that have been modified since the last backup. With this mechanism a great number of backups can be kept in a small amount of space. Since all backups are immediately available and accessible (for example, in different directories of a given share on the network), you can quickly make comparisons between two given dates.
ja: 利用できるハードドライブの空き領域によっては、完全な日次バックアップができない場合があります。このため、まず <command>rsync</command> コマンドは今回のバックアップの内容を前回のバックアップの内容へのハードリンクの形で複製します。このおかげで、ハードドライブ領域を無駄に消費することがなくなります。そして <command>rsync</command> プロセスは前回のバックアップ以降に変更されたファイルだけを置き換えていきます。このメカニズムにより、多くのバックアップを少ない領域に保存することが可能です。すべてのバックアップは即座に利用できる上に即座にアクセスできるので (たとえば、ネットワーク共有されたディレクトリの中に置かれるので)、ある日付同士の違いを素早く比較できます。

en: <primary>copy, backup copy</primary>
ja: <primary>コピー、バックアップコピー</primary>

en: <primary>backup</primary><secondary>copy</secondary>
ja: <primary>バックアップ</primary><secondary>コピー</secondary>

en: This backup mechanism is easily implemented with the <command>dirvish</command> program. It uses a backup storage space (“bank” in its vocabulary) in which it places timestamped copies of sets of backup files (these sets are called “vaults” in the dirvish documentation).
ja: <command>dirvish</command> プログラムを使えば、このバックアップメカニズムを簡単に実現できます。<command>dirvish</command> プログラムはバックアップストレージ領域 (dirvish 用語で「bank」) を使い、「bank」の中に一連のバックアップファイルのタイムスタンプを付けたコピー (dirvish の文書ではこれらを「vault」と呼びます) を置きます。

en: The main configuration is in the <filename>/etc/dirvish/master.conf</filename> file. It defines the location of the backup storage space, the list of “vaults” to manage, and default values for expiration of the backups. The rest of the configuration is located in the <filename><replaceable>bank</replaceable>/<replaceable>vault</replaceable>/dirvish/default.conf</filename> files and contains the specific configuration for the corresponding set of files.
ja: 主要な設定は <filename>/etc/dirvish/master.conf</filename> ファイルに書かれています。<filename>/etc/dirvish/master.conf</filename> ファイルでは、バックアップストレージ領域の場所、管理する「vault」のリスト、バックアップの保存期限のデフォルト値を定義します。残りの設定、すなわち <replaceable>vault</replaceable> でバックアップするファイルセットに固有の設定は <filename><replaceable>bank</replaceable>/<replaceable>vault</replaceable>/dirvish/default.conf</filename> ファイルに書かれています。

en: The <filename>/etc/dirvish/master.conf</filename> file
ja: <filename>/etc/dirvish/master.conf</filename> ファイル

en: bank:
        /backup
    exclude:
        lost+found/
        core
        *~
    Runall:
        root    22:00
    expire-default: +15 days
    expire-rule:
    #   MIN HR    DOM MON       DOW  STRFTIME_FMT
        *   *     *   *         1    +3 months
        *   *     1-7 *         1    +1 year
        *   *     1-7 1,4,7,10  1
ja: bank:
        /backup
    exclude:
        lost+found/
        core
        *~
    Runall:
        root    22:00
    expire-default: +15 days
    expire-rule:
    #   分  時    日  月        曜日 保存期限
        *   *     *   *         1    +3 months
        *   *     1-7 *         1    +1 year
        *   *     1-7 1,4,7,10  1

en: <emphasis>IN PRACTICE</emphasis> Scheduled expiration
ja: <emphasis>IN PRACTICE</emphasis> 削除スケジュール

en: The expiration rules are not used by <command>dirvish-expire</command> to do its job. In reality, the expiration rules are applied when creating a new backup copy to define the expiration date associated with that copy. <command>dirvish-expire</command> simply peruses the stored copies and deletes those for which the expiration date has passed.
ja: 削除を担当している <command>dirvish-expire</command> は削除ルールを使いません。削除ルールが適用されるのは新しいバックアップコピーの作成時であり、バックアップコピーを削除する日付が削除ルールによって定義されます。<command>dirvish-expire</command> は保存されたコピーを単純に調べて、期限の過ぎているコピーを削除します。

en: The <filename>/backup/root/dirvish/default.conf</filename> file
ja: <filename>/backup/root/dirvish/default.conf</filename> ファイル

en: The above example specifies the set of files to back up: these are files on the machine <emphasis>rivendell.falcot.com</emphasis> (for local data backup, simply specify the name of the local machine as indicated by <command>hostname</command>), especially those in the root tree (<literal>tree: /</literal>), except those listed in <literal>exclude</literal>. The backup will be limited to the contents of one filesystem (<literal>xdev: 1</literal>). It will not include files from other mount points. An index of saved files will be generated (<literal>index: gzip</literal>), and the image will be named according to the current date (<literal>image-default: %Y%m%d</literal>).
ja: 上の例では、バックアップするファイルセットを指定しています。具体的に言えば、バックアップ対象は <emphasis>rivendell.falcot.com</emphasis> マシン (ローカルデータをバックアップするには、単純に <command>hostname</command> の出力するローカルマシンの名前を指定します) にあるルートツリーの内容 (<literal>tree: /</literal>) から <literal>exclude</literal> で指定したものを除外したファイルです。さらに、バックアップ対象は <literal>tree</literal> と同一のファイルシステムの内容 (<literal>xdev: 1</literal>) に制限されます。他のマウントポイントのファイルはバックアップされません。保存されたファイルのインデックス (<literal>index: gzip</literal>) が生成され、イメージには現在の日付に関連する名前 (<literal>image-default: %Y%m%d</literal>) が付けられます。

en: <emphasis>IN PRACTICE</emphasis> Remote backup over SSH
ja: <emphasis>IN PRACTICE</emphasis> SSH を使ったリモートバックアップ

en: When dirvish needs to save data to a remote machine, it will use <command>ssh</command> to connect to it, and will start <command>rsync</command> as a server. This requires the root user to be able to automatically connect to it. The use of an SSH authentication key allows precisely that (see <xref linkend="sect.ssh-key-based-auth" />).
ja: dirvish はリモートマシンにデータをバックアップする場合、<command>ssh</command> を使ってリモートマシンに接続し、<command>rsync</command> をサーバとして開始します。この場合、root ユーザとして自動的にリモートマシンに接続できなければいけません。これを実現するには、SSH 認証鍵を使ってください (<xref linkend="sect.ssh-key-based-auth" />を参照してください)。

en: Restoring Machines without Backups
ja: バックアップなしのマシンの復元

en: The Falcot Corp administrators are aware of the limits in their backup policy. Since they can't protect the backup server as well as a tape in a fireproof safe, they have installed it in a separate room so that a disaster such as a fire in the server room won't destroy backups along with everything else. Furthermore, they do an incremental backup on DVD-ROM once per week — only files that have been modified since the last backup are included.
ja: Falcot Corp の管理者は自分たちのバックアップポリシーの限界を理解しています。テープを耐火金庫に入れるかのようにバックアップサーバを保護することができないため、管理者はバックアップサーバを他のサーバと別の部屋に設置しました。そうすればサーバルームの火事などの災害が起きてもその他のサーバと一緒にバックアップも破壊されることを避けられるからです。さらに、管理者は 1 週間に 1 回 DVD-ROM に増分バックアップ (最後のバックアップ以降に修正されたファイルだけのバックアップ) をとるようにしています。

en: <emphasis>GOING FURTHER</emphasis> Backing up SQL and LDAP services
ja: <emphasis>GOING FURTHER</emphasis> SQL と LDAP サービスのバックアップ

en: <primary>dump</primary>
ja: <primary>ダンプ</primary>

en: Many services (such as SQL or LDAP databases) cannot be backed up by simply copying their files (unless they are properly interrupted during creation of the backups, which is frequently problematic, since they are intended to be available at all times). As such, it is necessary to use an “export” mechanism to create a “data dump” that can be safely backed up. These are often quite large, but they compress well. To reduce the storage space required, you will only store a complete text file per week, and a <command>diff</command> each day, which is created with a command of the type <command>diff <replaceable>file_from_yesterday</replaceable> <replaceable>file_from_today</replaceable></command>. The <command>xdelta</command> program produces incremental differences from binary dumps.
ja: 多くのサービス (SQL や LDAP データベースなど) は単純にファイルをコピーするだけではバックアップできません (それらのサービスをバックアップの作成中に適切に中断しない限りバックアップできません。サービスの中断は通常問題です。なぜなら、サービスが常に利用できることを意図されているからです)。そのような場合、安全にバックアップできる「データダンプ」を作るために「エクスポート」メカニズムを使うことが必要です。データダンプは通常サイズのとても大きいファイルですが、データダンプのサイズは圧縮によってかなり小さくなります。要求されるストレージ領域を減らすために、完全なテキストファイルを保存するのを 1 週間に 1 回、<command>diff</command> を保存するのを毎日に制限しています。差分は <command>diff <replaceable>file_from_yesterday</replaceable> <replaceable>file_from_today</replaceable></command> で生成されます。バイナリダンプから増分差分を作成するには <command>xdelta</command> プログラムを使ってください。

en: <emphasis>CULTURE</emphasis> <emphasis>TAR</emphasis>, the standard for tape backups
ja: <emphasis>CULTURE</emphasis> <emphasis>TAR</emphasis>、テープバックアップ用の標準規格

en: <primary>backup</primary><secondary>on tape</secondary>
ja: <primary>バックアップ</primary><secondary sortas="テープヘノ">テープへの</secondary>

en: <primary>tape, backup</primary>
ja: <primary>テープ、バックアップ</primary>

en: Historically, the simplest means of making a backup on Unix was to store a <emphasis>TAR</emphasis> archive on a tape. The <command>tar</command> command even got its name from “Tape ARchive”.
ja: 歴史的に言って、Unix で最も簡単にバックアップを作成する手段は <emphasis>TAR</emphasis> アーカイブをテープに保存する方法でした。<command>tar</command> コマンドは「Tape ARchive」から命名されています。

en: Hot Plugging: <emphasis>hotplug</emphasis>
ja: ホットプラグ機能、<emphasis>hotplug</emphasis>

en: Introduction
ja: 前書き

en: <primary>hotplug</primary>
ja: <primary>ホットプラグ</primary>

en: The kernel has a database that associates each device ID with the required driver. This database is used during boot to load all the drivers for the peripheral devices detected on the different buses, but also when an additional hotplug device is connected. Once the device is ready for use, a message is sent to <command>udevd</command> so it will be able to create the corresponding entry in <filename>/dev/</filename>.
ja: カーネルは必要なドライバとデバイス ID を関連付けるデータベースを持っています。このデータベースは起動中にさまざまなバスで検出された周辺機器用のすべてのドライバを読み込んだりする際、追加的なホットプラグデバイスが接続された際に使われます。デバイスの使用準備が整ったら、メッセージが <command>udevd</command> に送信され、<command>udevd</command> は対応するエントリを <filename>/dev/</filename> 内に作成します。

en: The Naming Problem
ja: 命名問題

en: Before the appearance of hotplug connections, it was easy to assign a fixed name to a device. It was based simply on the position of the devices on their respective bus. But this is not possible when such devices can come and go on the bus. The typical case is the use of a digital camera and a USB key, both of which appear to the computer as disk drives. The first one connected may be <filename>/dev/sdb</filename> and the second <filename>/dev/sdc</filename> (with <filename>/dev/sda</filename> representing the computer's own hard drive). The device name is not fixed; it depends on the order in which devices are connected.
ja: ホットプラグ接続の出現前、デバイスに固定された名前を割り当てることは簡単でした。名前は単純にデバイスが接続されたバスの位置を基にしていました。しかしこのやり方はデバイスが接続されるバスの位置が決まっていない場合に問題となります。典型的な例は、コンピュータがディスクドライブとして認識するデジタルカメラや USB メモリを使う場合です。最初に接続されたデバイスは <filename>/dev/sdb</filename>、2 番目に接続されたデバイスは <filename>/dev/sdc</filename> と名付けられるかもしれません (<filename>/dev/sda</filename> はコンピュータのハードドライブを表します)。デバイスに対するデバイス名は固定されませんし、デバイス名はデバイスが接続された順番に依存します。

en: Additionally, more and more drivers use dynamic values for devices' major/minor numbers, which makes it impossible to have static entries for the given devices, since these essential characteristics may vary after a reboot.
ja: さらに、デバイスのメジャー/マイナー番号に動的な値を使うドライバが増えています。動的なメジャー/マイナー番号を使うことで、あるデバイスに対する静的なエントリを持つことが不可能になります。なぜなら、これらのエントリは再起動の後に変化するかもしれないからです。

en: <emphasis>udev</emphasis> was created precisely to solve this problem.
ja: <emphasis>udev</emphasis> はまさにこの問題を解決するために作られました。

en: How <emphasis>udev</emphasis> Works
ja: <emphasis>udev</emphasis> の動作原理

en: When <emphasis>udev</emphasis> is notified by the kernel of the appearance of a new device, it collects various information on the given device by consulting the corresponding entries in <filename>/sys/</filename>, especially those that uniquely identify it (MAC address for a network card, serial number for some USB devices, etc.).
ja: <emphasis>udev</emphasis> は新しいデバイスの出現についてカーネルから通知を受けると、<filename>/sys/</filename> 内の対応するエントリを調べて、与えられたデバイスに関するさまざまな情報 (特にデバイスを一意に識別する情報 (ネットワークカードの MAC アドレス、USB デバイスのシリアル番号など)) を収集します。

en: Armed with all of this information, <emphasis>udev</emphasis> then consults all of the rules contained in <filename>/etc/udev/rules.d/</filename> and <filename>/lib/udev/rules.d/</filename>. In this process it decides how to name the device, what symbolic links to create (to give it alternative names), and what commands to execute. All of these files are consulted, and the rules are all evaluated sequentially (except when a file uses “GOTO” directives). Thus, there may be several rules that correspond to a given event.
ja: この情報を武器にして、<emphasis>udev</emphasis> は <filename>/etc/udev/rules.d/</filename> と <filename>/lib/udev/rules.d/</filename> に含まれるすべてのルールを調査します。この過程で <emphasis>udev</emphasis> はデバイスに割り当てる名前、作成するシンボリックリンクの名前 (シンボリックリンクはデバイスに別名を与えるために作成されます)、実行するコマンドを決定します。上記ディレクトリに含まれるすべてのファイルが調査され、すべてのルールが順番に評価されます (「GOTO」指示文を使う場合を除きます)。そのため、与えられたイベントに対応する複数のルールがあるかもしれません。

en: The syntax of rules files is quite simple: each row contains selection criteria and variable assignments. The former are used to select events for which there is a need to react, and the latter defines the action to take. They are all simply separated with commas, and the operator implicitly differentiates between a selection criterion (with comparison operators, such as <literal>==</literal> or <literal>!=</literal>) or an assignment directive (with operators such as <literal>=</literal>, <literal>+=</literal> or <literal>:=</literal>).
ja: ルールの構文はとても単純です。つまり各行には、選択基準と変数代入命令が含まれます。選択基準は反応を必要とするイベントを選ぶのに使われ、変数代入命令はイベントに対して行う動作を定義します。選択基準と変数代入命令は単純にコンマで区切られており、演算子を使って選択基準 (<literal>==</literal> または <literal>!=</literal> などの比較演算子を付ける) と変数代入命令 (<literal>=</literal>、<literal>+=</literal>、<literal>:=</literal> などの演算子を付ける) を暗黙のうちに区別します。

en: Comparison operators are used on the following variables:
ja: 比較演算子は以下の変数に使われます。

en: <literal>KERNEL</literal>: the name that the kernel assigns to the device;
ja: <literal>KERNEL</literal>。カーネルがデバイスに割り当てた名前を意味します。

en: <literal>ACTION</literal>: the action corresponding to the event (“add” when a device has been added, “remove” when it has been removed);
ja: <literal>ACTION</literal>。イベントに対する動作を意味します (デバイスが追加されたら「add」で、デバイスが取り外されたら「remove」です)。

en: <literal>DEVPATH</literal>: the path of the device's <filename>/sys/</filename> entry;
ja: <literal>DEVPATH</literal>。デバイスの <filename>/sys/</filename> エントリのパスを意味します。

en: <literal>SUBSYSTEM</literal>: the kernel subsystem which generated the request (there are many, but a few examples are “usb”, “ide”, “net”, “firmware”, etc.);
ja: <literal>SUBSYSTEM</literal>。要求を生成したカーネルサブシステムを意味します (たくさんの種類がありますが、「usb」、「ide」、「net」、「firmware」などがその例です)。

en: <literal>ATTR{<replaceable>attribute</replaceable>}</literal>: file contents of the <replaceable>attribute</replaceable> file in the <filename>/sys/<replaceable>$devpath</replaceable>/</filename> directory of the device. This is where you find the MAC address and other bus specific identifiers;
ja: <literal>ATTR{<replaceable>attribute</replaceable>}</literal>。デバイスの <filename>/sys/<replaceable>$devpath</replaceable>/</filename> ディレクトリ内の <replaceable>attribute</replaceable> ファイルの内容を意味します。これで MAC アドレスやその他のバス固有識別子がわかります。

en: <literal>KERNELS</literal>, <literal>SUBSYSTEMS</literal> and <literal>ATTRS{<replaceable>attributes</replaceable>}</literal> are variations that will try to match the different options on one of the parent devices of the current device;
ja: <literal>KERNELS</literal>、<literal>SUBSYSTEMS</literal>、<literal>ATTRS{<replaceable>attributes</replaceable>}</literal>。対象のデバイスの親デバイスの 1 つに対するさまざまなオプションに対して一致を検査します。

en: <literal>PROGRAM</literal>: delegates the test to the indicated program (true if it returns 0, false if not). The content of the program's standard output is stored so that it can be reused by the <literal>RESULT</literal> test;
ja: <literal>PROGRAM</literal>。指定されたプログラムを使ってテストを実行することを意味します (プログラムが 0 を返したら真、それ以外を返したら偽になります)。プログラムの標準出力の内容は保存され、<literal>RESULT</literal> テストによって再利用されます。

en: <literal>RESULT</literal>: execute tests on the standard output stored during the last call to <literal>PROGRAM</literal>.
ja: <literal>RESULT</literal>。<literal>PROGRAM</literal> が最後に呼び出された時に保存された標準出力に対してテストを実行することを意味します。

en: The right operands can use pattern expressions to match several values at the same time. For instance, <literal>*</literal> matches any string (even an empty one); <literal>?</literal> matches any character, and <literal>[]</literal> matches the set of characters listed between the square brackets (or the opposite thereof if the first character is an exclamation point, and contiguous ranges of characters are indicated like <literal>a-z</literal>).
ja: 演算子の右側引数には、複数の値に同時にマッチするようなパターン式を使うことが可能です。たとえば、<literal>*</literal> は任意の文字列に (空文字列にも) マッチします。そして <literal>?</literal> は任意の文字にマッチし、<literal>[]</literal> は角括弧の間にリストされた文字セットにマッチします (最初の文字が <literal>!</literal> の場合は、その否定にマッチします。また、文字の連続範囲は <literal>a-z</literal> のように表記します)。

en: Regarding the assignment operators, <literal>=</literal> assigns a value (and replaces the current value); in the case of a list, it is emptied and contains only the value assigned. <literal>:=</literal> does the same, but prevents later changes to the same variable. As for <literal>+=</literal>, it adds an item to a list. The following variables can be changed:
ja: 代入演算子に関して、<literal>=</literal> は値を代入します (そして現在の値を入れ替えます)。さらに、リストに代入する場合、リストを空にした後、割り当てた値だけを代入します。<literal>:=</literal> は同じことをしますが、後から値を変更できなくなります。<literal>+=</literal> はリストにアイテムを追加します。代入演算子を使って変更できる変数は以下です。

en: <literal>NAME</literal>: the device filename to be created in <filename>/dev/</filename>. Only the first assignment counts; the others are ignored;
ja: <literal>NAME</literal>。<filename>/dev/</filename> 内に作成するデバイスファイル名を意味します。最初に代入された値だけが考慮され、他は無視されます。

en: <literal>SYMLINK</literal>: the list of symbolic links that will point to the same device;
ja: <literal>SYMLINK</literal>。同じデバイスを指すシンボリックリンクのリストです。

en: <literal>OWNER</literal>, <literal>GROUP</literal> and <literal>MODE</literal> define the user and group that owns the device, as well as the associated permission;
ja: <literal>OWNER</literal>、<literal>GROUP</literal>、<literal>MODE</literal>。デバイスを所有するユーザとグループおよびパーミッションを定義します。

en: <literal>RUN</literal>: the list of programs to execute in response to this event.
ja: <literal>RUN</literal>。イベントに応答する際に実行するプログラムのリストを意味します。

en: The values assigned to these variables may use a number of substitutions:
ja: これらの変数に割り当てる値の中で、以下の置換変数を使うことが可能な場合があります。

en: <literal>$kernel</literal> or <literal>%k</literal>: equivalent to <literal>KERNEL</literal>;
ja: <literal>$kernel</literal> または <literal>%k</literal>。<literal>KERNEL</literal> と同じ値です。

en: <literal>$number</literal> or <literal>%n</literal>: the order number of the device, for example, for <literal>sda3</literal>, it would be “3”;
ja: <literal>$number</literal> または <literal>%n</literal>。デバイスの割り当て番号を意味します。たとえば、<literal>sda3</literal> の場合「3」です。

en: <literal>$devpath</literal> or <literal>%p</literal>: equivalent to <literal>DEVPATH</literal>;
ja: <literal>$devpath</literal> または <literal>%p</literal>。<literal>DEVPATH</literal> と同じ値です。

en: <literal>$attr{<replaceable>attribute</replaceable>}</literal> or <literal>%s{<replaceable>attribute</replaceable>}</literal>: equivalent to <literal>ATTRS{<replaceable>attribute</replaceable>}</literal>;
ja: <literal>$attr{<replaceable>attribute</replaceable>}</literal> または <literal>%s{<replaceable>attribute</replaceable>}</literal>。<literal>ATTRS{<replaceable>attribute</replaceable>}</literal> と同じ値です。

en: <literal>$major</literal> or <literal>%M</literal>: the kernel major number of the device;
ja: <literal>$major</literal> または <literal>%M</literal>。デバイスのカーネルメジャー番号を意味します。

en: <literal>$minor</literal> or <literal>%m</literal>: the kernel minor number of the device;
ja: <literal>$minor</literal> または <literal>%m</literal>。デバイスのカーネルマイナー番号を意味します。

en: <literal>$result</literal> or <literal>%c</literal>: the string output by the last program invoked by <literal>PROGRAM</literal>;
ja: <literal>$result</literal> または <literal>%c</literal>。<literal>PROGRAM</literal> によって起動された最後のプログラムの出力文字列を意味します。

en: and, finally, <literal>%%</literal> and <literal>$$</literal> for the percent and dollar sign, respectively.
ja: そして最後に、<literal>%%</literal> と <literal>$$</literal>。それぞれパーセントとドル記号を意味します。

en: A concrete example
ja: 具体例

en: Let us consider the case of a simple USB key and try to assign it a fixed name. First, you must find the elements that will identify it in a unique manner. For this, plug it in and run <command>udevadm info -a -n /dev/sdc</command> (replacing <replaceable>/dev/sdc</replaceable> with the actual name assigned to the key).
ja: 単純な USB メモリに固定された名前を割り当てる場合を考えましょう。最初に、一意的な方法で USB メモリを識別するために必要な要素を見つけなければいけません。このために、USB メモリを取り付け、<command>udevadm info -a -n /dev/sdc</command> を実行してください (ここで、<replaceable>/dev/sdc</replaceable> は USB メモリに割り当てられた実際のデバイス名で置き換えてください)。

en: To create a new rule, you can use tests on the device's variables, as well as those of one of the parent devices. The above case allows us to create two rules like these:
ja: 新しいルールを作るために、デバイスの変数および親デバイスの変数に対するテストを行います。上の例から、以下のような 2 つのルールを作成します。

en: Once these rules are set in a file, named for example <filename>/etc/udev/rules.d/010_local.rules</filename>, you can simply remove and reconnect the USB key. You can then see that <filename>/dev/usb_key/disk</filename> represents the disk associated with the USB key, and <filename>/dev/usb_key/part1</filename> is its first partition.
ja: これらのルールをたとえば <filename>/etc/udev/rules.d/010_local.rules</filename> という 1 つのファイルに書き込んだら、USB メモリを取り外し、もう一度取り付けてください。この USB キーに関連付けられたディスクを表す <filename>/dev/usb_key/disk</filename> と第 1 パーティションを表す <filename>/dev/usb_key/part1</filename> が生成されたことと思います。

en: <emphasis>GOING FURTHER</emphasis> Debugging <emphasis>udev</emphasis>'s configuration
ja: <emphasis>GOING FURTHER</emphasis> <emphasis>udev</emphasis> 設定のデバッグ

en: Like many daemons, <command>udevd</command> stores logs in <filename>/var/log/daemon.log</filename>. But it is not very verbose by default, and it is usually not enough to understand what is happening. The <command>udevadm control --log-priority=info</command> command increases the verbosity level and solves this problem. <command>udevadm control --log-priority=err</command> returns to the default verbosity level.
ja: 多くのデーモンと同様に、<command>udevd</command> は <filename>/var/log/daemon.log</filename> にログを保存します。しかしデフォルトの状態だとログはそれほど詳細でなく、何が起きているかを理解するには不十分な場合が多いです。<command>udevadm control --log-priority=info</command> コマンドを使ってログの詳細度を上げることで、この問題は解決されます。デフォルトの詳細度に戻すには、<command>udevadm control --log-priority=err</command> を使ってください。

en: Power Management: Advanced Configuration and Power Interface (ACPI)
ja: 電源管理、Advanced Configuration and Power Interface (ACPI)

en: The topic of power management is often problematic. Indeed, properly suspending the computer requires that all the computer's device drivers know how to put them to standby, and that they properly reconfigure the devices upon waking. Unfortunately, there are still a few devices unable to sleep well under Linux, because their manufacturers have not provided the required specifications.
ja: 電源管理は問題のある場合が多いです。実際、適切にコンピュータを一時停止するには、コンピュータのすべてのデバイスドライバがデバイスをスタンバイ状態にする方法を知り、デバイスドライバがデバイスを再始動する際に適切に再設定できなければいけません。不幸なことに、Linux の下ではうまくスタンバイ状態にできないデバイスが多いです。なぜなら、デバイスの製造業者が必要な仕様を公開しないからです。

en: <emphasis>BEWARE</emphasis> Graphics card and standby
ja: <emphasis>BEWARE</emphasis> グラフィックカードとスタンバイ

en: The graphics card driver is often the culprit when standby doesn't work properly. In that case, it is a good idea to test the latest version of the X.org graphics server.
ja: グラフィックカードドライバはスタンバイがうまくできない問題の原因になることが多いです。この場合、X.org グラフィックサーバの最新版を試してみるのが良いアイディアです。

en: After this overview of basic services common to many Unix systems, we will focus on the environment of the administered machines: the network. Many services are required for the network to work properly. They will be discussed in the next chapter.
ja: この章では多くの Unix システムで共通の基本的サービスの概要を述べました。次の章では管理されているマシンの環境に焦点を合わせます。すなわちネットワークに焦点を合わせます。多くのサービスはネットワークを正しく動作させることを必要とします。次の章ではこれについて議論します。
