10. アカウント管理と管理タスク
10.1. ユーザとグループの管理
10.1.1. ユーザアカウント
Linuxは複数のユーザが同時にログインし利用できるシステムとなっている。
またユーザアカウント情報は/etc/passwd
ファイルに保存される。
/etc/passwdファイル
/etc/passwd
ファイルは以下のような構成となり、一般ユーザでも読み取り可能。
デフォルトシェルはログインを想定しない場合/bin/false
や/sbin/nologin
となる。
/bin/false | /sbin/noloin | |
---|---|---|
Telnet接続 | x | x |
SSH接続 | x | x |
FTP接続 | x | o |
SFTP接続 | x | x |
シェルの実行 | x | x |
/etc/shadowファイル
シャドウパスワードが書かれたファイルで、パスワード本体が暗号化されたものが保存されている。 root(とshadowグループ所属者)しか読み取りできない。
10.1.2. グループアカウント
/etc/groupファイル
/etc/group
ファイルは以下のような構成となり、グループアカウント情報が保存される。
一般ユーザでも読み取り可能。
ユーザーにとって基本となるグループをプライマリグループと呼ばれる。 プライマリグループ以外に参加しているグループはサブグループと呼ばれる。
なおプライマリーグループは/etc/passwd
のGIDフィールドで確認できる。
10.1.3. ユーザーとグループの管理のコマンド
useraddコマンド
useradd
コマンドはユーザアカウントを作成するコマンド。
オプション | 説明 |
---|---|
-c コメント | ユーザー情報を表すコメントの指定 |
-d ディレクトリ名 | ホームディレクトリの指定 |
-g グループ名 or GID | プライマリグループの指定 |
-G グループ名 or GID | プライマリグループ以外に所属するグループの指定 |
-s ログインシェル | ログインシェルの指定 |
-u UID | UIDの指定 |
-m | ホームディレクトリの自動的な作成 |
なお作成するホームディレクトリに作成したいファイルのひな形は/etc/skel
ディレクトリに置くことでホームディレクトリに自動的にコピーされる。
usermodコマンド
既存のユーザアカウント情報を変更できるコマンド。
またユーザーアカウントをロックすることもできる。
ロックは-L
オプション、ロック解除は-U
オプションで可能。
userdelコマンド
ユーザアカウントを削除できるコマンド。
-r
オプションでホームディレクトリも削除できる。
passwdコマンド
パスワード変更するコマンド。 一般ユーザは自身のパスワードを変更でき、rootユーザは全てのユーザーのパスワードを変更することができる。 またユーザーアカウントをロックすることもできる。
オプション | 説明 |
---|---|
-l | 指定したユーザーアカウントのロック |
-u | 指定したユーザーアカウントのロックを解除 |
groupaddコマンド
グループを作るコマンド。
オプション | 説明 |
---|---|
-g グループID | グループIDの指定 |
groupmodコマンド
グループ情報変更するコマンド。
オプション | 説明 |
---|---|
-g グループID | 指定したグループIDへ変更 |
-n グループ名 | 指定したグループ名へ変更 |
groupdelコマンド
作成済みのグループアカウントを削除するコマンド。 なお削除対象のグループをプライマリグループとするユーザーがいる場合は削除できない。
idコマンド
ユーザがどのグループに所属しているのか調べられるコマンド。 UID,GUID,サブグループGUIDがわかる。
getentコマンド
ユーザーやグループの一覧を表示するコマンド。 データベースとキーを引数に渡すと管理データベースからエントリを取得できる。
10.2. ジョブスケジューリング
10.2.1. cron
cronは定期的なジョブを実行するために使用できる仕組みでスケジュールを定義したコマンドを定期的に実行することが可能。 デーモンとも呼ばれる。
cronの構成
cronの仕組みはcrondデーモンとcrontabコマンドで構成される。 内部的にはcrondが1分ごとにcrontabファイル内容を調べることで実現している。
crontab
ユーザのcrontabは/var/spool/cron/
ディレクトリに配置されるが、そのファイルを直接エディタで編集してはならない。
編集にはcrontab
コマンドを用いる。
システムのcrontabは/etc/crontab
ファイルに保存される。
システムのcronで定期的に実行するジョブを格納するディレクトリは以下の通り。
ディレクトリ名 | 説明 |
---|---|
/etc/cron.hourly | 毎時定期的に実行するジョブのスクリプトを格納 |
/etc/cron.daily | 毎日定期的に実行するジョブのスクリプトを格納 |
/etc/cron.monthly | 毎月定期的に実行するジョブのスクリプトを格納 |
/etc/cron.weekly | 毎週定期的に実行するジョブのスクリプトを格納 |
/etc/cron.d | 上記以外のジョブのスクリプトを格納 |
cron/atのアクセス制限
cron/atはユーザー単位で利用制限を実施できる。
制限は/etc/cron.allow
,/etc/cron.deny
ファイルの設定で可能。
10.2.2. cronに関するコマンド
at/atrm/atqコマンド
at
コマンドは1回限りのジョブ予約を行えるコマンド。
オプション | 説明 |
---|---|
-d | atrmのエイリアス |
-r | atrmのエイリアス |
-l | atqのエイリアス |
-f ファイルパス | STDINではなくファイルからジョブ指定 |
atrm
コマンドは予約中のジョブをジョブ番号で指定して削除できるコマンド。
atq
コマンドは予約中のジョブを表示するコマンド
crontabコマンド
cronを設定するコマンド。
オプション | 説明 |
---|---|
-e | viエディタなどを使用して、crontabファイルを編集 |
-l | crontabファイルの内容を表示 |
-r | crontabファイルの削除 |
-i | crontabファイル削除時の確認 |
-u ユーザー | ユーザーを指定しcrontabファイルの編集 ( rootユーザーのみ使用可能 ) |
記述例は以下のように行う。
30 22 * * * /usr/local/bin/backup.sh # 毎日22:30に実行
0 12 * * 1,2 /usr/local/bin/backup.sh # 毎週月曜日、火曜日の12:00に実行
10.2.3. systemdによるスケジューリング
systemdでスケジューリングを行う場合タイマーUnitを使用する。 タイマーUnitには以下のような種類がある。
種類 | 使用例 |
---|---|
モノトニックタイマ | システム起動10分後に実行、以降1週間ごとに実施 |
リアルタイムタイマ | 毎日午前4時に実行 |
/etc/systemd/system/
以下に拡張子.timer
でファイルを作成することで設定を行う。
ファイルの記述書式はman 7 systemd.time
で確認可能。
スケジュールの確認
スケジュールの削除
サービスの実行ログの確認
10.3. ローカライゼーションと国際化
10.3.1. ローカライゼーションと国際化
ローカライゼーションはソフトウェアのメニューやメッセージを利用者の地域や国に合わせること。 i18nとも呼ばれる、具体的には言語や日付、通貨単位などを合わせる。
国際化はソフトウェアを最初から多言語・他地域対応するように作ることを言う。
10.3.2. ロケール
ロケールは利用者の地域情報を表す。 これらのカテゴリは個々に設定することが可能。
ロケールの設定はlocale
コマンドで確認可能。(-a
でロケールを全表示可能)
またカテゴリーは以下のようなものがある。
環境変数 | 説明 |
---|---|
LC_CTYPE | 文字の種類やその比較・分類の規定 |
LC_COLLATE | 文字の照合や整列に関する規定 |
LC_MESSAGES | メッセージ表示に使用する言語 |
LC_MONETARY | 通貨に関する規定 |
LC_NUMERIC | 数値の書式に関する規定 |
LC_TIME | 日付や時刻の書式に関する規定 |
LANGUAGE | 複数一括設定(:区切り)、最高優先度 |
LC_ALL | 一括設定、高優先度 |
LANG | 一括設定、低優先度 |
ロケール名は以下のようなものがある。
ロケール名 | 説明 |
---|---|
C, POSIX | 英語 |
ja_JP.utf8(ja_JP.UTF-8) | 日本語/Unicode |
ja_JP.eucJP | 日本語/EUC-JP |
ja_JP.shiftJIS | 日本語/シフトJIS |
en_US.utf8 | 英語(米)/Unicode |
10.3.3. 文字コード
文字コードはコンピュータ上で文字を利用するために各文字に割り当てたバイトコードを指す。
iconvコマンド
文字コードを変換するために使用するコマンド。
オプション | 説明 |
---|---|
-l | 変換できる文字コードの一覧を表示 |
-f 入力文字コード | 変換元の文字コード。from。 |
-t 出力文字コード | 変換後の文字コード。to。 |
-o ファイル名 | 文字コード変換した文字列を出力するファイル名。 |
10.3.4. タイムゾーン
タイムゾーンは地域ごとに区分された標準時間帯を指す。 UTC+N時間で決まる。日本の場合はUTC+9時間。
設定は/usr/share/zoneinfo/
以下に格納される。
なお日本のタイムゾーン設定は以下のように行える。
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime #シンボリックリンクで行う場合
tzselectコマンド
一覧から表示される情報をもとにタイムゾーンを設定できるコマンド。
tzconfigコマンド
/etc/localtime
,/etc/timezone
まとめて変更できるコマンド。