After installing prebuild mc binary to Mojave and newer (link and link 2), and trying to run mc under root with sudo command, I got error:

$sudo mc
common.c unimplemented subshell type 1
read (subshell_pty...): No such file or directory (2)

2 Answers 2


It appears that mc requires to match precompiled shell version, e.g. /bin/bash to be the one.

In order to resolve this, its is required to change default root shell from sh to bash, and do it with following command:

sudo dscl . -change /Users/root UserShell /bin/sh /bin/bash

To revert back in case you have some problems, just reverse the parameters:

sudo dscl . -change /Users/root UserShell /bin/bash /bin/sh

Just in case above commands do not work, may be default shell was already changed. Check it with command:

dscl . -read /Users/root UserShell

Hope it will save tons of time for you.

  • Great! That works. Is there any known reason to not keep this change permanent?
    – mivk
    Sep 10, 2020 at 11:20
  • I keep it, as I am used to bash Sep 11, 2020 at 8:56

Midnight Commander is still actively developed. But this default shell bug has been ongoing for years. Apple switched Catalina to use zsh but default /bin/sh is still there for backwards compatibility of bourne shell scripts. Other OSes are impacted by this shell issue. Some use the Dash shell to be /bin/sh, etc.

Newer console file managers such as lf, ranger, broot, vifm, nnn, fff, etc., etc., etc. are worth a look.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .