-bash: / usr / sbin / mail: aucun fichier ni répertoire de ce type

0

Je rencontre des problèmes de courrier depuis un moment maintenant et j'ai décidé de les résoudre aujourd'hui! Eh bien maintenant je suis coincé. Le problème était, lorsque je tape, mailil n'affiche pas mon courrier, en regardant mon lien symbolique auquel le courrier était lié msmtp. J'ai essayé de mettre à jour le lien symbolique vers postfix, mais cela ne fonctionne pas et une straceanalyse me dit que cela fonctionne:

sudo strace ln -sf /usr/sbin/mail /usr/sbin/postfix
execve("/bin/ln", ["ln", "-sf", "/usr/sbin/mail", "/usr/sbin/postfix"], [/* 13 vars */]) = 0
brk(NULL)                               = 0x136f000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=62599, ...}) = 0
mmap(NULL, 62599, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9edbd88000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1868984, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9edbd87000
mmap(NULL, 3971488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9edb7a9000
mprotect(0x7f9edb969000, 2097152, PROT_NONE) = 0
mmap(0x7f9edbb69000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c0000) = 0x7f9edbb69000
mmap(0x7f9edbb6f000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9edbb6f000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9edbd86000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9edbd85000
arch_prctl(ARCH_SET_FS, 0x7f9edbd86700) = 0
mprotect(0x7f9edbb69000, 16384, PROT_READ) = 0
mprotect(0x60c000, 4096, PROT_READ)     = 0
mprotect(0x7f9edbd98000, 4096, PROT_READ) = 0
munmap(0x7f9edbd88000, 62599)           = 0
brk(NULL)                               = 0x136f000
brk(0x1390000)                          = 0x1390000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2981280, ...}) = 0
mmap(NULL, 2981280, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9edb4d1000
close(3)                                = 0
stat("/usr/sbin/postfix", 0x7fff872ed280) = -1 ENOENT (No such file or directory)
lstat("/usr/sbin/postfix", {st_mode=S_IFLNK|0777, st_size=14, ...}) = 0
stat("/usr/sbin/mail", 0x7fff872ed0d0)  = -1 ENOENT (No such file or directory)
symlink("/usr/sbin/mail", "/usr/sbin/postfix") = -1 EEXIST (File exists)
unlink("/usr/sbin/postfix")             = 0
symlink("/usr/sbin/mail", "/usr/sbin/postfix") = 0
lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
close(0)                                = 0
close(1)                                = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

Cependant, quand je regarde le lien symbolique:

ls -l /usr/sbin | grep "\->"
...
lrwxrwxrwx  1 root root           14 Jul 18 09:28 mail -> /usr/bin/msmtp
...

J'ai décidé de désinstaller msmtppour de bon en utilisant sudo apt-get remove msmtp --purgece qui a fonctionné. J'ai ensuite essayé de créer le lien symbolique une nouvelle fois en utilisant sudo ln -sf /usr/sbin/mail /usr/sbin/postfix. Maintenant, chaque fois que je tape mail, cela me donne l'erreur suivante:

 mail
-bash: /usr/sbin/mail: No such file or directory

Toutefois:

sudo find / -iname "mail"
...
/usr/sbin/mail
...

Quelle est la cause du problème avec ma mailcommande et comment puis-je résoudre ce problème avec succès?


Sortie de sudo find / -iname "postfix":

sudo find / -iname "postfix"
/etc/ufw/applications.d/postfix
/etc/resolvconf/update-libc.d/postfix
/etc/network/if-up.d/postfix
/etc/network/if-down.d/postfix
/etc/ppp/ip-up.d/postfix
/etc/ppp/ip-down.d/postfix
/etc/insserv.conf.d/postfix
/etc/init.d/postfix
/etc/postfix
/usr/share/doc/postfix
/usr/share/bash-completion/completions/postfix
/usr/share/lintian/overrides/postfix
/usr/share/postfix
/usr/sbin/postfix   #<=
/usr/lib/python3/dist-packages/fail2ban/tests/files/logs/postfix
/usr/lib/postfix
/var/spool/postfix
/var/lib/postfix
You have new mail in /home/serveradmin/Maildir
CertifcateJunky
la source
Pouvez-vous poster le résultat de sudo find / -iname "postfix"?
Fanatique
@Fanatique ouais une seconde
CertifcateJunky
1
La première chose à faire: avec sudo ln -sf /usr/sbin/mail /usr/sbin/postfixvous, faites postfixun lien symbolique vers mail, pas l'inverse.
Kamil Maciorowski
@KamilMaciorowski Même si je le fais en sens inverse, il produit toujours les mêmes résultats, j'y ai pensé
CertifcateJunky
Comme une note de côté, quel est le point réel de lien symbolique mailà postfix? Ils font des choses complètement différentes! Vous ne trouverez pas de client de messagerie interactif dans Postfix. (Ni dans msmtp, d'ailleurs. Ils sont tous les deux généralement liés par un lien symbolique vers / usr / sbin / * send * mail.)
grawity

Réponses:

2

Le -fdans votre commande a écrasé le binaire /usr/sbin/postfixavec un lien.

Lorsque vous inversez par la suite l'ordre, il n'y a pas de binaire auquel vous souhaitez vous connecter, mais je m'attendais à une erreur.

Vous devez réinstaller le binaire à /usr/sbin/postfixpartir d’une sauvegarde ou d’une réinstallation; le correctement commandé ln -sf /usr/sbin/postfix /usr/sbin/mailva maintenant vous donner le lien que vous voulez.

Sur Ubuntu 16.04, le mailprogramme normal est activé /usr/bin/, bien que, par défaut, il se /usr/sbin/trouve plus tôt dans la PATHliste.

AFH
la source