/etc/shells
ファイルを更新して、自作でインストールされたバージョンへのパスを含めようとしてbash
います。/usr/local/bin/bash
$ sudo echo /usr/local/bin/bash >> /etc/shells
パーミッションが拒否されました。読み取り専用のように見えるため、手動で更新することはできません。
ファイルを検査すると、アクセス許可は次のように設定されます。
-rw-r--r-- 1 root wheel 179 Feb 21 2017 /etc/shells
したがって、これを念頭に置いて、Homebrewでシェルを更新することに関するこの記事を見た後、rootユーザーとしてシェルを開始し、上記のコマンドを試してみました。
$ sudo -s
$ echo /usr/local/bin/bash >> /etc/shells
$ chsh -s /usr/local/bin/bash
ただし、これは最初のコマンド($ sudo -s
)でハングしているようです。これにより、bash
CPUを約70%消費するプロセスが生成され、何も起こりません。
/etc/shells/
ファイルを更新する別の方法はありますか?
ルートのみのファイルに追加する方法は
echo /usr/local/bin/bash | sudo tee -a /etc/shells
です。–ペテシュ
それが機能する理由と機能
sudo echo /usr/local/bin/bash >> /etc/shells
しない理由を説明できますか。
後者は、が実行される前に>>
シェルによって出力リダイレクトが適用される(しようとされる)ため機能しません。もちろん、ユーザーシェルにはそれを行う権限がありません。sudo …
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加