自分にテストメールが届きません。 ターミナルでsu...
「Permission denied」というのは「権限がないよ」という意味になります。
これからよく目にするエラーなので覚えておきましょう。
まずは、
/etc/postfix/sasl_passwd.db
というファイル自体があるかどうか確かめてください。
「Permission denied」というエラーなので、恐らくファイル自体はあるはずで、
そのファイルを開いて読む権限がない。
ということになります。
(ファイル自体がなければ、「No such file or directory」というエラーが大抵出ます。(これもよくこれから目にするエラーです))
ファイルがあれば、その権限がいくつになっているかを確認します。
権限のことを「パーミッション」とも言います。
ファイルやディレクトリには「権限」が常についています。
権限は3種類で
「Read(ファイルを開いて中を読める)」
「Write(書き込んで編集できる)」
「eXecute(phpファイルなど実行できるファイルの場合にそれを実行できる)」
です。
それぞれの権限のことを「r」「w」「x」と略します。
PC内では複数ユーザーが作ることができます。(家族で使ったり、仕事で複数社員が使ったり、外部の人が使ったり)
また、ユーザーごとに「グループ」を作ることができます。
「ユーザーごと」や「グループごと」「その他」の3種類に対して
「このファイルやディレクトリに対しての権限」をくっつけておくことで、勝手に編集したり読んだりしないように出来ます。
まずは、
/etc/postfix/sasl_passwd.db
のディレクトリ内で
ls -l ←「エルエスと打って、半角スペース打って、ハイフンの次はエル」です
と打ってみてください。
するとディレクトリとファイルが下記のような感じで並びます。
-rw-r--r-- 1 root wheel 49 7 11 21:34 sasl_passwd
-rw-r--r-- 1 root wheel 29360128 7 11 21:34 sasl_passwd.db
-rw-r--r-- 1 root wheel 12666 9 24 2016 transport
一番右側がディレクトリやフィアルで、それぞれに一番左側に「-rw-r--r--」というような「権限」が表示されます。
権限の読み方は下記を参考にしてください。
https://qiita.com/shisama/items/5f4c4fa768642aad9e06)
ローカルで開発する程度であれば自分以外触ることもない(悪用されることもない)ので、
「誰でも見れるし書き込めるし実行できる」という意味の「777」という権限をつけてしまえば大丈夫です。
(サーバーにアップする際には自分以外触れないなどの権限にするのが普通ですが、今の段階ではそこまで詳しく知る必要はありません)
sasl_passwd.dbというファイルがpostfixのプログラムから開いたりする権限がないというのが今回の原因なので、sasl_passwd.dbに権限を付与するには、そのファイルのディレクトリ内で
chmod 777 sasl_passwd.db
と打ってください。「chmod」は権限を付与・変更するコマンドです。
コマンドが実行できない場合はコマンドの前に「sudo」をつけてください。
その後、再度
sudo postmap /etc/postfix/sasl_passwd
をやってみましょう。
ありがとうございます。
ファイルの中身をコンソールで表示できる「cat」コマンド(http://www.atmarkit.co.jp/ait/articles/1602/25/news034.html)か
ファイルの中身を編集できる「vim(もしくはvi)」コマンド(http://nigohiroki.hatenablog.com/entry/2012/09/07/234807)などが使えます。
cat ファイル名(フルパスまたは相対パス)
vim ファイル名(フルパスまたは相対パス)
という形で打てばファイルの中身が見れます。
vimはコンソール上のエディターなので、vimで開いた場合は、
:q ←コロンと英小文字のキュー
でエディターを閉じられます。
aitonoMacBook-Air:~ kaito$ sudo postmap /etc/postfix/sasl_passwd
postmap: fatal: open database /etc/postfix/sasl_passwd.db: Permission denied
KaitonoMacBook-Air:~ kaito$ cat postmap /etc/postfix/sasl_passwd.db
cat: postmap: No such file or directory
cat: /etc/postfix/sasl_passwd.db: No such file or directory
KaitonoMacBook-Air:~ kaito$
sudo chown -R postfix .
sudo chgrp -R postfix .
sudo chmod -R ugo rwx .
上記のコマンドを実行したところうまくいきました。ありがとうございます。
部活の学習一覧
Lesson 01
「WEBサービスと必要な機能」
Lesson 02
「画面を設計しよう!」
Lesson 03
「テーブルを設計しよう!part1」
Lesson 04
「テーブルを設計しよう!part2」
Lesson 05
「テーブルを設計しよう!part3」
Lesson 06
「DB作成」
Lesson 07
「画面を作ろう!」
Lesson 08
「画面を作ろう!part2」
Lesson 09
「ユーザー登録機能を作ろう!」
Lesson 10
「ユーザー登録機能を作ろう!part2」
コーヒーブレイク
「投資の小話」
Lesson 11
「ログイン機能を作ろう!」
Lesson 12
「ログアウト機能を作ろう!」
Lesson 13
「退会機能を作ろう!」
Lesson 14
「プロフィール編集機能を作ろう!」
コーヒーブレイク
「書いて書いて書きまくれ!」
Lesson 15
「パスワード変更機能を作ろう!」
Lesson 16
「パスワードリマインダー機能を作ろう!」
Lesson 17
「商品登録機能を作ろう!」
Lesson 18
「商品登録機能を作ろう!part2」
Lesson 19
「商品登録機能を作ろう!part3」
Lesson 20
「商品一覧表示機能を作ろう!」
Lesson 21
「商品詳細画面を作ろう!」
Lesson 22
「商品検索機能を作ろう!」
Lesson 23
「連絡掲示板機能を作ろう!」
Lesson 24
「お気に入り機能を作ろう!」
Lesson 25
「マイページ機能を作ろう!」
コーヒーブレイク
「はたらくプログラミング 第5話」
ご意見箱
ターミナルでsudo postmap /etc/postfix/sasl_passwdを入力した後
postmap: fatal: open database /etc/postfix/sasl_passwd.db: Permission denied
と表示されますが、これが原因でしょうか?
どうすれば解決できるでしょうか?