• メールの設定の所で
    自分にテストメールが届きません。 ターミナルでsu...
  • guest 
    メールの設定の所で自分にテストメールが届きません。

    ターミナルでsudo postmap /etc/postfix/sasl_passwdを入力した後
    postmap: fatal: open database /etc/postfix/sasl_passwd.db: Permission denied
    と表示されますが、これが原因でしょうか?

    どうすれば解決できるでしょうか?
    回答 2

    返信者画像

    ウェブカツ!!コーチ 
    講師からの回答
    恐らくそれが原因になります。
    「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

    をやってみましょう。

    guest 
    言われた通りにしてみた所、解決できました!
    ありがとうございます。

    guest 
    open database /etc/postfix/sasl_passwd.db: Permission denied と表示された後に、/etc/postfix/sasl_passwd.dbのディレクトリを開くにはどのようにすればいいのでしょうか。

    guest 
    open database /etc/postfix/sasl_passwd.db: Permission denied と表示された後に、/etc/postfix/sasl_passwd.dbのディレクトリを開くにはどのようにすればいいのでしょうか。

    返信者画像

    ウェブカツ!!コーチ 
    講師からの回答
    sasl_passwd.dbファイルの中身を見たい場合は
    ファイルの中身をコンソールで表示できる「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 ←コロンと英小文字のキュー


    でエディターを閉じられます。

    guest 
    下記、試みましたがどうもうまくいきません。どうしてでしょうか。

    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$

    guest 
    cd /etc/postfix
    sudo chown -R postfix .
    sudo chgrp -R postfix .
    sudo chmod -R ugo rwx .

    上記のコマンドを実行したところうまくいきました。ありがとうございます。