私のルートメールを他のユーザー(ニックネーム)に送信したいと思いますuserto
。私のuserto
ホームディレクトリは、使用時にマウントし、使用しないときは削除する暗号化されたハードドライブにあるため、メールを転送したくありません。したがって、電子メールをそれらに転送するときにuserto
ハードドライブがマウントされない場合、その電子メールは失われます。ルートメールにはシステムメッセージがあるので必要ありません。
必要に応じてコマンドラインでメールを送信したいと思います。
PostFixとDoveCot(メールボックス)を設定しました。
試してみましたが、dovecot
ルートメールにアクセスできませんでした。確認するにはdoveadm search -u root ALL
。
エラーが発生しました。
Error: Invalid settings in userdb: userdb returned 0 as uid
doveadm
Error: User lookup failed: Invalid user settings. Refer to server log for more information.
たぶん他のツールを使用する必要がありますdovecot
。
私は1つの方法だけを見ています。新しいユーザーを作成し(nick'sを使用してcollectmail
)、すべてのメールをルートから彼のメールボックスに転送します。必要に応じてコマンドラインを介してcollectmail
メールを移動することです。userto
しかし、私はこの方法が最善だとは思わない。
編集する:
IMO私はそれを使用しませんspool
。
メールボックスがあり、郵便物がすべて入っています。~Mailbox
答え1
ルートディレクトリからユーザーディレクトリにコピーしましたか?通常、ルートのメールは次の場所に保存されます。/var/mail
まず、ルートメールがどこに保存されているかを確認してください。
sudo env | grep MAIL
通常/var/mail/root
または/var/spool/mail/root
次に、次の方法でユーザーのメールの場所を確認します。env | grep MAIL
また、次のようにする必要があります。/var/mail/$USER
または/var/spool/mail/$USER
次に、root権限を使用してrootから$ USERにコピーしてみてください。
答え2
あなたが私のようにしてdovecotを使ってルートメールを読むことができるようにしたい場合(他のユーザーに転送またはコピーすることの欠点なし)、私にとって最善の解決策はbinfsを使用してこの目的のための専用ユーザーを作成することです。マウントされたMaildir、例:
apt install bindfs
useradd -c "Account to Read ROOT mails with Dovecot" -M -r -s /usr/sbin/nologin -d /nonexistent -U rootmail
mkdir /var/spool/mail/mboxes/rootmail
chown rootmail: /var/spool/mail/mboxes/rootmail
echo -e '\n/var/spool/mail/mboxes/root /var/spool/mail/mboxes/rootmail fuse.bindfs map=root/rootmail:@root/@rootmail 0 0' >> /etc/fstab
mount /var/spool/mail/mboxes/rootmail
この設定により、ユーザールートメールを使用してdovecotサーバーを利用するIMAPクライアントを介してメールにアクセスできます(おそらくdovecot first_valid_uid = 1とfirst_valid_gid = 1を構成してシステムユーザーを許可するか、ユーザーを非システムユーザーとして追加する必要があり、-r
ユーザーのフラグを省略する必要があります)。加える )。