sudo するときに sbin にパスを設定する方法 | Carpe Diem

僕はDebian派です。CentOSは嫌い・・・というかCentOSが俺のこと嫌いなんじゃないかと思っていた原因の一つがコレ。

オフィスにn0tsさんが来てたので、せっかくなので日ごろ気になってたアレコレを聞いてみたらスッキリした解決方法を教えてくれました。

「visudoは構文チェック機能のために存在する」こととか。

さくらインターネットのVPSにDebian Squeezeをインストールする。

デフォルトのCentOSでネットワークの設定を記録しておく。

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/resolv.conf

installerをダウンロードする。

# mkdir /boot/new
# cd /boot/new
# wget ftp://ftp.jp.debian.org/pub/Linux/Debian/dists/squeeze/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
# wget ftp://ftp.jp.debian.org/pub/Linux/Debian/dists/squeeze/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux

grubからinstallerを起動できるようにする。

# /boot/grub/grub.conf:
(...)
title new squeeze amd64
        root (hd0,0)
        kernel /new/linux ro root=LABEL=/ console=tty0 console=ttyS0,115200n8r
        initrd /new/initrd.gz

rebootしたらgrubのmenuでinstallerが選べるのでインストールする。

参照:タイトルは明日考えます: さくらのVPSでシリアルコンソールからDebianインストール

capistranoで小ハマリ。

Emacsとかcapistranoとかコマンド経由でCentOSにsudoすると「ttyが無い」的なメッセージが出て出来ない。

CentOS

$ sudo diff sudoers.org sudoers
56c56
< Defaults requiretty
---
> #Defaults requiretty

visudoでDefaults requirettyという行をコメントアウトすれば行けるみたい。

Debian Squeeze

Defaults visiblepw

Capistrano側で対応する場合

recipeに下記を追加

default_run_options[:pty] = true

参照:sudo: sorry, you must have a tty to run sudo