サーバ管理未経験者がアカウント管理のために勉強したことをまとめる
Linuxユーザ
Linuxを使用するときにログインするユーザアカウント。ユーザ独自のパスワードを持つ。
ユーザアカウントの作成にはroot権限が必要になる。
$ cat /etc/passwd
全ユーザの情報を確認する。NISでアカウント情報を共有している場合、その内容はこのファイルには反映されていないので注意。
書式は、ユーザ名:x(古い環境では暗号化されたパスワード):uid:gid:(ユーザ作成時にのみ設定できる編集不可のコメント):ユーザのホームディレクトリ:ユーザが使用するシェル
$ who
今現在ログインしているユーザを確認する。
# useradd --gid xxxx --uid xxxx ユーザ名
gidとuidを予め設定しつつユーザの新規追加。
# passwd ユーザ名
ユーザのパスワードを設定する
# userdel -r ユーザ名
ユーザを削除する。-rオプションで、ホームディレクトリも自動削除。
Linuxグループ
例えば、特定のファイルの編集権限を特定のグループだけに与えたい、といったときに便利な概念。 ユーザは必ず一つ、メイングループに所属する。その他に所属するグループをサブグループという。
$ cat /etc/group
全グループの情報を確認する。NISでアカウント情報を共有している場合、その内容はこのファイルには反映されていないので注意。
書式は、グループ名:x(古い環境では暗号化されたパスワード):gid:所属ユーザ(カンマ区切り)
# groupadd グループ名
グループの新規作成。
# groupdel グループ名
グループの削除。存在するユーザのメイングループを削除することは出来ない。
指定したグループのIDを持つファイルが残っている場合、グループを削除すると、そのファイルのパーミッションが不明(501)になる。
rootユーザ
/etcなどのシステム全体の設定を変更することができたり、消してはいけないすべてのファイルも消すことができる。
# id uid=0(root) gid=0(root)
rootかどうか確認する
$ su
exitするまでの期間、root権限を使えるようになる。
rootパスワードを用いて実行するので、セキュリティを考えるとsudoの使用が推奨されている。
$ sudo
コマンド単位で一時的にroot権限を使えるようになる。
ホームディレクトリ
ユーザがログインした直後に配置される場所。
一般ユーザが自由にファイルやディレクトリを作成しても良い空間は、基本的にこのホームディレクトリのみ。ユーザ個別の設定ファイルなどもこのディレクトリ内に置かれる。
基本的に他ユーザのホームディレクトリに変更を加えることはできない。
$ cd ~ # 方法1 $ cd # 方法2
ホームディレクトリに戻る
プロセス
実行中のプログラムみたいなもの。タスクとも言う。
プロセスに適切なメモリやCPU時間などをOSが自動で割り振り、プロセスが終了したときに自動でそれらは開放される。
$ ps aux
Linux上で現在動作しているプロセスを確認する。
a;端末操作のプロセスを表示、u;CPUやメモリの使用率なども表示、x;現在実行しているプロセスを表示
$ pstree
プロセスの親子関係を確認する。
$ top
Linux上で現在動作しているプロセスを確認する。
$ kill プロセスID
指定したIDのプロセスを殺す。
ゾンビプロセスや暴走したプロセスをkillするときに使われる。基本的に自分の権限で実行しているプロセスしかkillできない。
他者のプロセスをkillする場合にはroot権限を必要とする。