Serverspec本読書メモ 3.5章〜3.12章までを書いた時に、PTYを良くわかっていなかったので別途メモ
わかっていること
- serverspecは sudo パスワードを入力する場合PTYを要求する
- sudo パスワードを入力しない場合でも
-
/etc/sudoers
にDefaults requiretty
が設定されている場合はPTYが必要
-
PTY : 擬似端末(ぎじたんまつ、pseudo terminal)
仮想コンソール、端末装置、シリアルポートハードウェアなどを使用しないテキスト端末のインターフェイスを提供する。これらのハードウェアの代わりに、擬似端末セッションの役割をソフトウェア(プロセス)が代用する。例えば、SSHなどでログインするとこの端末に接続される。
sudo パスワードを入力する場合、何故 PTY が必要?
- 対話入力には、PTYが必要
- serverspec等で非PTYの場合は、一方的にコマンドを送ってその結果を受け取るだけっぽい
Defaults requiretty
が設定されている場合に、何故 PTYが必要?
- CentOSでは標準で設定されているらしい
- セキュリティ上の問題らしい
- 例えばwebサーバのセキュリティホールを突かれて、任意のスクリプトを実行された時に、sudoできてしまうのを回避するため
参考
-
バックアップcronでsudoを使う | アロハ技術者ブログ
- 特定のスクリプトだけ、sudoを許可するとかもできる