Edited at

Ubuntuサーバー管理チートシート

More than 5 years have passed since last update.

Ubuntu 12.04LTS を使いながら調べたことをメモしてます。


ユーザーの追加や削除


ユーザー追加

$ sudo adduser USER

useradd というコマンドもあるが、こちらだとオプションで指定しないとホームディレクトリや .bashrc などが作られない。


ユーザー削除

$ sudo userdel -r USER

-r はホームディレクトリとメールスプールも削除するオプション。


ユーザーをサブグループに追加

$ sudo gpasswd -a USER GROUP

usermod -G GROUP USER は危険なので使わない。(参考)


管理ユーザーを追加する

$ sudo adduser NEWADMIN

$ sudo gpasswd -a NEWADMIN sudo
$ sudo gpasswd -a NEWADMIN adm
$ sudo gpasswd -a NEWADMIN admin


ログインできないユーザーを追加する

$ sudo useradd -s /bin/false

一般ユーザーとして使われない特殊なユーザーを作りたい場合は /bin/false をログインシェルに指定する。


パスワードなしで sudo

/etc/sudoers を書き換えるのだが、普通に vi とかで書き換えると危険なので visudo を使う。(参考)

$ sudo EDITOR=vi visudo

admin グループに属すユーザーがパスワードなしで sudo できるようにするには、こんな感じで書き換える。

# Members of the admin group may gain root privileges

%admin ALL=(ALL) NOPASSWD:ALL


パッケージ


パッケージリストの更新

$ sudo apt-get update


パッケージのインストール

$ sudo apt-get install PACKAGENAME


パッケージのアンインストール

$ sudo apt-get remove PACKAGENAME


パッケージの検索

正規表現で検索できる。

$ sudo apt-cache search REGEX


パッケージの情報表示

$ sudo apt-cache show PACKAGENAME


どのバージョンがインストールされるか知りたい

$ sudo apt-cache policy PACKAGENAME


インストール済みパッケージのリスト表示

$ dpkg -l


インストール済みパッケージに含まれるファイルを表示

$ dpkg -L PACKAGENAME


パッケージファイル(*.deb)に含まれるファイルを表示

$ dpkg -c DEBFILENAME

インストールしたパッケージの *.deb は /var/cache/apt/archives にキャッシュされている。


サービスの状態表示

$ sudo service --status-all

upstart という仕組みで管理されているサービスの状態は次のコマンドで。

$ sudo initctl list


ホスト名の変更

/etc/hostname/etc/hosts を変更して再起動。

再起動しない方法はわからない。


ネットワーク設定(静的IP,DNSサーバー,ルーティングの設定)

/etc/network/interfaces に書く。

post-up を使うと任意のコマンドを実行できるので、ルーティング設定はそれでしている。

# とあるNIC2枚挿しサーバーの設定例

# The loopback network interface
auto lo
iface lo inet loopback

# LAN
auto eth0
iface eth0 inet static
address 192.168.17.10
network 192.168.17.0
netmask 255.255.255.0
dns-nameservers 192.168.1.1 # 使用するDNSサーバー名
dns-search example.org # DNSサフィックス
post-up route add -net 192.168.0.0/20 gw 192.168.17.253 # ルート設定

# WAN
auto eth1
iface eth1 inet static
address 192.168.16.10
network 192.168.16.0
netmask 255.255.255.0
gateway 192.168.16.253

書き換えたら、ネットワークを再起動する。

$ sudo ifdown -a

$ sudo ifup -a
$ sudo service resolvconf restart # /etc/resolv.conf に反映

ssh でリモートからネットワークを再起動したいときは、こんな感じでできる。

sudo nohup sh -c "ifdown -a; ifup -a"

失敗するとマシンの場所までいかないと復帰できなくなる。


タイムゾーンの設定

/etc/localtime というファイルがタイムゾーンの設定らしい。(参考)

$ ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

GUIもどきでやるなら次のように。

$ sudo dpkg-reconfigure tzdata