LoginSignup
0
0

More than 1 year has passed since last update.

sudoは必要なときに使う

Posted at

ターミナルで入力するコマンドでたまに出てくるsudoだが、これのせいで私は半日程度苦しんだのでここに残しておく。

Ruby on Rails チュートリアルをやっていたときに途中で自分のコードがおかしくなり、仕方なく筆者の方のgithubからクローンしてやり直すことになった。

その際master.keyファイルが無かったため、
master.keyが見つからない問題 [初見殺し] - はじめてのデプロイで嵌るポイント
の記事などを参考にしてcredentialsyml.encも消してから自分で新しく二つとも作り直そうとして、ターミナルで

sudo EDITOR="vi" rails credentials:edit

を実行した。

「管理者権限が必要なんやなー」くらいのノリで実行したが、
結論から言えばこのsudoが悪さをしており、sudo無しで

EDITOR="vi" rails credentials:edit

と実行すれば正解であった。

上記でsudoを使用した弊害として、rails s rails routesなどのコマンドを打つと

/Users/ユーザー名/.rbenv/(略)/encrypted_file.rb:118:in `binread': Permission denied @ rb_sysopen - /Users/ユーザー名/environment/sample_app/config/master.key (Errno::EACCES)

というエラーが出た。

どうやらファイルへの権限から来るエラーのようだったが、
前後どっちのファイルの権限を直せば良いのかわからなかった。

.rbenvの方の権限を直そうとしたがうまくいかず、
master.keyの方も何回も作り直したがうまくいかなかった。
しかしmaster.keyを作り直すというのは実は合っていたようだ。

sudoは管理者権限で何でもできる便利なコマンドだなーと思っていたら、
どうやらsudoを使ってターミナルで実行すると生成されたファイルとかも管理者じゃないとアクセスとかがダメになってしまうらしいという記事
Ruby gem install bundler で Permission denied エラーになった
等を見つけたので、試しにsudoを外して

EDITOR="vi" rails credentials:edit

master.keyを作ったら一発だった。

当然sudoが便利なときや必要な時はあるのだろうが、こういったトラブルの元になることもあるため慎重に使っていきたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0