commit:     8fb71c916f648e79897e202076fc5447df07c991
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 27 16:53:38 2019 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Wed Mar 27 17:18:09 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8fb71c91

mail-filter/opendkim: use /var/lib/opendkim in pkg_config.

The keys that are generated by opendkim-genkey are data, in a sense,
and not configuration files. As a result, I think it's more appropriate
to store them in /var/lib/opendkim than in /etc/opendkim where they were
previously stored. This commit moves the keys, and also tightens the
permissions on them a bit so that the "opendkim" user can only read them.

Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.11

 mail-filter/opendkim/opendkim-2.10.3-r8.ebuild | 28 +++++++++++++++-----------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/mail-filter/opendkim/opendkim-2.10.3-r8.ebuild 
b/mail-filter/opendkim/opendkim-2.10.3-r8.ebuild
index c45d7104150..f2e43b0041f 100644
--- a/mail-filter/opendkim/opendkim-2.10.3-r8.ebuild
+++ b/mail-filter/opendkim/opendkim-2.10.3-r8.ebuild
@@ -55,7 +55,7 @@ src_prepare() {
 
        # We delete the "Socket" setting because it's overridden by our
        # conf.d file.
-       sed -e 's:/var/db/dkim:/etc/opendkim:g' \
+       sed -e 's:/var/db/dkim:/var/lib/opendkim:g' \
                -e 's:/var/db/opendkim:/var/lib/opendkim:g' \
                -e 's:/etc/mail:/etc/opendkim:g' \
                -e 's:mailnull:opendkim:g' \
@@ -183,28 +183,32 @@ pkg_config() {
        local selector keysize pubkey
 
        read -p "Enter the selector name (default ${HOSTNAME}): " selector
-       [[ -n "${selector}" ]] || selector=${HOSTNAME}
+       [[ -n "${selector}" ]] || selector="${HOSTNAME}"
        if [[ -z "${selector}" ]]; then
                eerror "Oddly enough, you don't have a HOSTNAME."
                return 1
        fi
-       if [[ -f "${ROOT}"etc/opendkim/${selector}.private ]]; then
+       if [[ -f "${ROOT}var/lib/opendkim/${selector}.private" ]]; then
                ewarn "The private key for this selector already exists."
        else
                keysize=1024
-               # generate the private and public keys
-               opendkim-genkey -b ${keysize} -D "${ROOT}"etc/opendkim/ \
-                       -s ${selector} -d '(your domain)' && \
-                       chown opendkim:opendkim \
-                       "${ROOT}"etc/opendkim/"${selector}".private || \
-                               { eerror "Failed to create private and public 
keys." ; return 1; }
-               chmod go-r "${ROOT}"etc/opendkim/"${selector}".private
+               # Generate the private and public keys. Note that 
opendkim-genkeys
+               # sets umask=077 on its own to keep these safe. However, we want
+               # them to be readable (only!) to the opendkim user, and we 
manage
+               # that by changing their groups and making everything 
group-readable.
+               opendkim-genkey -b ${keysize} -D "${ROOT}"var/lib/opendkim/ \
+                       -s "${selector}" -d '(your domain)' && \
+                       chgrp --no-dereference opendkim \
+                                 
"${ROOT}var/lib/opendkim/${selector}".{private,txt} || \
+                               { eerror "Failed to create private and public 
keys." ;
+                                 return 1; }
+               chmod g+r "${ROOT}var/lib/opendkim/${selector}".{private,txt}
        fi
 
        # opendkim selector configuration
        echo
        einfo "Make sure you have the following settings in your 
/etc/opendkim/opendkim.conf:"
-       einfo "  Keyfile /etc/opendkim/${selector}.private"
+       einfo "  Keyfile /var/lib/opendkim/${selector}.private"
        einfo "  Selector ${selector}"
 
        # MTA configuration
@@ -216,7 +220,7 @@ pkg_config() {
 
        # DNS configuration
        einfo "After you configured your MTA, publish your key by adding this 
TXT record to your domain:"
-       cat "${ROOT}"etc/opendkim/${selector}.txt
+       cat "${ROOT}var/lib/opendkim/${selector}.txt"
        einfo "t=y signifies you only test the DKIM on your domain. See 
following page for the complete list of tags:"
        einfo "  http://www.dkim.org/specs/rfc4871-dkimbase.html#key-text";
 }

Reply via email to