あそぶ技術

フィヨルドブートキャンプでRuby on railsの学習をしている僕の学習ブログです。

sudoをインストールしvisudoで使えるようにする

sudoの初期設定

タイトル通りsudoをインストールして設定し使える様に出来ます。

私の環境

  • Macのusキーボードを使っています。
  • さくらVPSにdebian9を入れています。

こんな感じです。

そもそもsudoをなんで設定するのか

あるファイルを編集したい、あの設定を変えたいって事ありますよね。 その時にrootじゃないと変更や操作が出来ないってパターンが良くあります。

そんな感じでrootで無いと出来ない事はかなり多いです。

じゃあずっとrootで良いじゃん!って思うんですが、rootって何でも出来過ぎちゃうんですよ。

具体的に言うとファイルとか全部消すコマンドがあってそれが出来ちゃう訳です。

例えるといつでも全世界の核ミサイルのボタンを押して全てを終わらせられる感じ。

f:id:zeroringo:20180725150651p:plain

使えないと不便だけど、常に使える状態は危険なのでsudoというコマンドを使って必要な時だけroot権限を使えるようにする訳です。

sudoのインストール

rootでログインして

apt install sudo

でインストールできます。

sudoをvisudoで編集

インストールは終わったんですが初期設定ではsudoは使えません。

設定ファイルにユーザーを追加してsudoを使えるようにします。

設定ファイルはvisudoで開けます。 visudoと打って編集してみましょう

コメントアウトと設定

無事開くとたくさんの#と文字が出てきます。

この#はコメントアウトと言って直ぐ横に書いてある文字をタダのコメントになっています。

ただのコメントを弄っても設定は変わりませんがどんな設定があるのかをコメントで示してくれています。

その下の#が無い文字列が設定です。

これを変更、追加、削除等をする事で設定の変更ができます。

実践

実際にやってみましょう

以下の文字列を探して下さい。

# User privilege specification

root ALL=(ALL) ALL

初期ではrootしか使えないような設定になっています。

という訳でこのroot ALL=(ALL) ALLのrootの部分をユーザーネーム に変更した一文を加えます。

こんな感じです↓

f:id:zeroringo:20180727111321p:plain

書き換えた後の終了の仕方が解らない

visudoのコマンド一覧が画面下の方に載っていのですが

f:id:zeroringo:20180727111349p:plain

文字化けしている!!

^X=「ctrl + X」

これが終了コマンドなのでctrl + Xで終わらせられます。

YかNを入力して!っぽい文字化けのせいで暗号化してる選択が画面下に出ます。

大文字のYを入力すると保存して終了出来ます。

因みにNを押した場合は保存しないで終了です。

f:id:zeroringo:20180727111423p:plain

終わったらsu - ユーザーネームでrootからユーザーに変更して下さい。

f:id:zeroringo:20180727111856p:plain

一刻も早くrootから抜け出そう!

こんな所にいられるか!俺は部屋に戻るぞ!

f:id:zeroringo:20180725151450p:plain

ちゃんと設定出来て入ればsudoがユーザーで使えるようになっています。

終わり

参考サイト

HTTPがさっぱり解らないのでとりあえずtelnetしてみた

HTTPがさっぱり解らない人はtelnetをしよう

HTTPについて三日掛かってようやく解ってきました。

HTTPの基本というサイトからの座学から始めたんですが全く頭に入ってきませんでした。

興味が湧かない文字の羅列とにらめっこするのが苦しゅうて苦しゅうて

f:id:zeroringo:20180724150709p:plain

良く解らないままtelnetっていうのをしてみてようやく解ってきたので僕と同じくHTTPが全然頭に入って来ない!苦手!って人はとりあえずtelnetしてみると解りやすいかも

f:id:zeroringo:20180724150718p:plain

磯野〜、telnetしようぜ〜!

telnetのインストール

macOS High Sierraでtelnetを使えるようにする

MacOSのHigh Sierraにはtelnetが標準では入っていないそうなのでHigh Sierraを使っているならインストールからしましょう!

Home brewがインストールされているならターミナルでbrew install telnetと入力するだけです。

簡単!

Home brewがインストールされていない方はこちらをどうぞー

zeroringo.hateblo.jp

teinetの使い方

telnetでhttpとか | ioaia blog><;

このサイトが解りやすかったです。

  1. ターミナルでtelnet www2.hitobashira.org 80 と入力
  2. 空白が出るので
  3. GET / HTTP/1.1 と入力(リクエスト)
  4. host: www2.hitobashira.org と入力
  5. いっぱい文字が出てくる(レスポンス)

f:id:zeroringo:20180724152909p:plain こんな感じ

つまずきポイント

  • GET / HTTP/1.1コマンドを入力するときに最初の/(スラッシュ)の両隣に半角スペースが無いと次のhostの行が入力出来ないみたいなので半角スペースを忘れずに!
  • C:> telnet  ←何これ?

色々なメソッドを入力してみる

GET / HTTP/1.1 と入力

これのGETの部分をメソッドっていうみたいで、メソッドには他にも色々な種類があります。

HTTPの基本 メソッド

で、GET / HTTP/1.1のGETの部分を他のメソッドに変えるだけで他のメソッドも使えちゃいます。

例 TRACE / HTTP/1.1

色々試してみましょう。

HTTP メッセージの1部分だけをレスポンスさせる事も出来るみたいですよ!

https://mdn.mozillademos.org/files/13827/HTTPMsgStructure2.png

終わり

とりあえずtelnet使えたでしょうか? 使うと色々な文字が出てくるのですがこの部分については色々サイトがあるのでそっちで理解すると良いかと思います。 このぐらいになってくると私は興味が出てきて

HTTP入門

このサイトの内容が掴める様になってきました。 以上ですー

PostgreSQL 9.6をインストールする

debian9にPostgreSQL 9.6をインストールしていきます。

PostgreSQL、読み方はポストグレスキューエル

どうでも良いけどPostgreSQLのアイコンは象だった。

f:id:zeroringo:20180719161424p:plain

つまりこういう事か…

f:id:zeroringo:20180719161233p:plain

かわいい

学習サイト

今回進めていくサイト

symfoware.blog.fc2.com

なのだけれど新しい版があったのでそっちで学習

symfoware.blog.fc2.com

始める前にapt updateをするように!

zeroringo.hateblo.jp

それが出来れば後はハマらなかったです。

少し解り辛かった所

パスワード?知らない子ですね。

postgresユーザーに切り替えて、psqlを実行。

# su - postgres

パスワードの入力を求められるが設定していないため入れず。 なのでパスワードを作る

ユーザーとパスワードの設定

# passwd postgres

出来た。

# su - postgresチェレンジでパスワードを入力しログイン

|とl

「\l」でデータベースの一覧が表示できます。

postgres=# \l

|じゃなくてlです。 アルファベット小文字のエルですね。

qiita.com

#と$

コードの#と$の違いでつまずく人もいるかも。 だったらsudoをつけて実行するのじゃ

良く解らなかった所

python3どこ?

ユーザー「postgres」が自動的に作成されています。 また、python3も一緒にインストールされるようです。

Psycopg2?

新しい方の最後にある

Psycopg2を使用して、接続をテストをする

はやりませんでした。

Psycopg2って何さ

python3がインストールされてるというコードが見つけられなかった。

データベースのユーザー?

そもそもサーバーのユーザーとデータベースのユーザーって別けられてるんですよね?

そこから解ってないマン

どれがサーバーのユーザーなのかデータベースのユーザーなのかが良く解ってないので要確認や!

APTでインストール出来ない。だったらアップデートだ!

f:id:zeroringo:20180719135140p:plain

フィヨルドブートキャンプ でpostgresql-9.6がインストール出来ないと日報に書いた時の駒形さんとのやりとり

僕↓

2018年07月19日(木) 11:15 zeroringo

@komagata

デフォルトの

$ sudo apt-get install postgresql-9.6

だとエラーがでてしまったので

$ sudo apt update

でアップデートした後にデフォルトの

$ sudo apt-get install postgresql-9.6

したらインストール出来たみたいです。

駒形さん↓

2018年07月19日(木) 11:43 komagata

なるほど、何であれ検索/インストール前にapt updateは必須ですー

何故かと言うと、aptの仕組みを理解していればわかるのですが、

最新のパッケージ一覧の情報はネット上にあり、apt-get updateでローカルに反映し、apt-get install xxxとかはローカルの一覧だけを参照して行われるからです。

ネット接続が無い環境に手動で持ってきてやる場合もあるからだと思いますー

なんやて工藤!

apt updateはネットにある最新のカタログを貰うコマンドで、そのカタログが無いとインストール出来ない仕組みっぽいです。

f:id:zeroringo:20180719140138p:plain

リアルだと古い通販のカタログ冊子で注文したけれど、それはもう無いですって返事が来た感じなのかな。

更新大事ですね。

Macで\(バックスラッシュ)が¥(円マーク)になってしまう問題と解決方法

問題

postgresを無事インストールし\qコマンドでログアウトしようと思ったのですが、バックスラッシュが円マークになってしまいログアウト出来ません。

f:id:zeroringo:20180719124101p:plain

因みに端末はMacBook Pro 2016でUSキーボードで、tarminalから操作しsshでサーバーにログインしています。

なんでバックスラッシュ円マークになってしまうん?

お金は欲しいが今じゃないんですよね。

Google Chromeでも試してみるもやっぱり円マークになってまいます。

錬金術かよ

f:id:zeroringo:20180719121210p:plain

解決方法

①システム環境設定を開きキーボードをクリックします。

f:id:zeroringo:20180719122625p:plain

②上のタブで入力ソースを選びます。

③"¥"キーで入力する文字を¥(円記号)から(バックスラッシュ)に変更します。

f:id:zeroringo:20180719120652p:plain

で完了です。

これでブラウザでもtarminalもsshでも(バックスラッシュ)が打てます。

postgresでログアウトも出来ますし、就職も決まり彼女も出来ました。

ありがとうございました!

SSHの設定 公開鍵の作り方

f:id:zeroringo:20180713161854p:plain

前回に引き続きSSHの設定です。

今回ハマった箇所

f:id:zeroringo:20180713161922p:plain 今回もハマりました!!

凄い!!!!!

サーバーかクライアントか

クライアント側(自分のPC)で設定する箇所をサーバー側でやっていました。 公開鍵を作ったり、登録したりはクライアント側でやると気付いた時は恥ずかしいやら恥ずかしいやらでした。 そりゃ進まねー訳だよ!

クライアントサイドの操作かサーバーサイドの操作かってめっちゃ大事ですね。 ちゃんと確認せな。

configのコメントアウトを外していない

#PermitRootLogin yesなどの設定を#PermitRootLogin noに変えてやったー!とか思ってたんですがこのまま進めたらポート番号無しでサーバーにログイン出来てしまった。

セキュリティーガバガバやんけ!

なんでこーなっかたっていうと#コイツ

コイツ#が付いてるってことはこの右に書かれている文字は全てタダのコメントですってことです。 コメントアウトってやつ。

だから、#で書いて有るところは初期値で別にここに書いて有るから設定が効いてる訳じゃないので#右の文字全部消してもそのまま動きます。

なので、#を外して PermitRootLogin no としてあげると設定が効きました。

configの設定

  1. ポートを変更する
  2. PasswordAuthentication yesのyesをnoに変更する
  3. 変更を有効にするためのサーバーの再起動

上二つは昨日と同じ要領で書き換え、三つ目は$ sudo /etc/init.d/ssh restartで色々調べたけれどフィヨルドブートキャンプのプラクティスが一番分かりやすかったです。

でも、見逃していた…

公開鍵の設定方法

f:id:zeroringo:20180713162052p:plain

参考にしたサイトです。

Mac OS X から Linuxサーバ へ、RSA 鍵を用いて SSH 接続する

鍵を作る

ssh接続を鍵認証で行う

(1) まず、クライアントでキーペア(秘密鍵と公開鍵)を作ります。本例では、client_rsaというRSA鍵を作成。

$ cd ~/.ssh

$ ssh-keygen -f client_rsa -t rsa -b 2048

Enter passphrase: パスワードを設定する場合は入力してEnter。不要ならEnter。

Enter some passphrase again: もう一度同じように入力。

鍵を送る

scp ~/.ssh/作った鍵の名前これをサーバーに送る サーバーのuser名@サーバーのアドレス:~/.ssh/作った鍵の名前(←名前を変えたかったらここを変更する)

私はさくらVPNを使っているのですがさくらVPNのサーバーのアドレスはVPNコントロールパネルのIPv4のアドレスと書かれているところにあります。

これ↓ f:id:zeroringo:20180713153114p:plain

tarminalからこんなコードを送ってRSA鍵を送信する。 パスワードを求められるので入力する(サーバー側のパスワード)

鍵を使う

ssh -p ポート番号 サーバーのuser名@サーバーのアドレス

これで入れました。

$マークの前の表示がサーバーのuser名とホスト名に変わって入ればOK

exitを入力するとサーバーからログアウト出来る。

以上ですー

おまけ

ちゃんと設定出来ているかどうかの確認 f:id:zeroringo:20180717110046p:plain こんな感じです

Homebrew導入メモ

f:id:zeroringo:20180713145452j:plain macへhomebrewを導入した際の手順のまとめです。

こちらのサイトを参考にしました。

Homebrew をインストールして使えるようになるまで 〜私の場合〜

Xcodeインストール

私の場合はインストール済みだったのですがバージョンが古かったのでエラーが出てしまいました。

なので最新版にアップデート

tarminalから出来なかなーと弄ってたんですがAPPstoreからアップデート出来ました。

こっちの方が簡単。 アップデートは16分ぐらい時間がかかりました。

Homebrewのインストール

公式サイトのインストールと書かれている箇所のコードをtarminalにコピペ

Homebrew macOS 用パッケージマネージャー

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

現在の最新版だとこんな感じですが、アップデートされたらコードが変る様なので自分でサイトに行くが吉。

ダウンロード中に途中止まったりするので不安になる。 意味有るのか解らんけど止まったらエンターを押していました。

インストール出来ているかの確認

$ brew doctor

を入力し

Your system is ready to brew.

が出ればOK!

私はここでXcodeが最新版じゃないというエラーが出たので慌ててXcodeを最新版にアップデートしました。

以上ですー