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