Mac-terminal : der Versuch, fügen Sie zu /etc/shells

Dieser arbeitet

$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

Aber diese macht nicht :

sudo -s 'echo /usr/local/bin/zsh >> /etc/shells'
/bin/bash: echo /usr/local/bin/zsh >> /etc/shells: No such file or directory
InformationsquelleAutor ghostrider | 2017-12-03



2 Replies
  1. 5

    sudo nimmt einen string als komplett-Befehl. Sollten Sie eine shell interpretieren die Befehlszeile wie diese:

    sudo sh -c 'echo /usr/local/bin/zsh >> /etc/shells'
    

    Diese führt sh mit root-rechten, und sh interpretiert die Zeichenfolge als ein shell-Befehl, einschließlich >> als Ausgabe-Umleitung.

  2. 1

    Das einzige, was Sie wirklich brauchen sudo ist, öffnen Sie die geschützte Datei zum schreiben. Sie können die tee Befehl an Datei Anhängen.

    echo /usr/local/bin/zsh | sudo tee -a /etc/shells > /dev/null
    

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.