読者です 読者をやめる 読者になる 読者になる

ログってなんぼ

日々のメモです

「sudo を実行するには tty がなければいけません。すみません」の対策方法

すみません、と言われると・・・・ いやこちらこそすみません(´・ω・`)・・・なんか・・

vagrant up時の例

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'centos'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
GuestAdditions seems to be installed (4.3.6) correctly, but not running.
sudo: sudo を実行するには tty がなければいけません。すみません

デプロイ用シェルを実行した時の例

$ ssh deployuser@example.com "./deploy.sh"
sudo: sudo を実行するには tty がなければいけません。すみません

deploy.shの中にsudoを使っている箇所があると上記エラーとなります。

端末なしのバックグラウンドsudoを許可をする

visudoコマンドで/etc/sudoersファイルを編集します

VMのOS(CentOS6)

# visudo
#Defaults    requiretty

上記のようにコメントアウトすることで端末なしのsudoが許可となります。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
GuestAdditions 4.3.6 running --- OK.
[default] Mounting shared folders...
[default] -- /vagrant

OKですね

ユーザーを制限する

上記設定では、すべてのユーザーにttyなしsudoを許可する形になっています。めんどくさくてサボった(´・ω・`)。

本番サーバーにはたくさんのユーザーが居ると思うので、ttyなしsudo可能なユーザーを制限すべきですね

コメントアウトするのをやめて、例外を追記する

# visudo
Defaults           requiretty
Defaults:vagrant !requiretty
本番サーバーでは、デプロイ用のユーザーなどを別途用意していると思うのでそのユーザー名のみを記述する形になるでしょう。