.zshrc
ユーザーのホームディレクトリにファイルなしで起動すると、zsh
シェルプロンプトに直接アクセスを許可するのではなく、対話型設定ユーティリティが実行されます。
私はこれをzsh
Debian Wheezyシステムのデフォルトシェルに設定しました。したがって、zsh
手動で変更しないと、新しく作成されたすべてのユーザーにログインシェルがあります。.zshrc
もデフォルトがあるので、/etc/skel
私のシステムのすべての一般ユーザーはホームディレクトリにファイルのコピーを持っています。システムユーザーには該当しません。
sudo
sh
システムユーザー(たとえば、特定のネットワークデーモンのユーザー)を渡したり変更したりすると、そのユーザーのホームディレクトリで利用できない設定ツールが実行されます。.zshrc
各デーモンのホームディレクトリに入れるのは正しいとは思わず、.zshrc
多くのシステムで設定してメンテナンスするのも痛いでしょう。しかし、私はまだbash
これらのユーザーにとってあまり快適なバージョンにダウングレードしたくありません。
ユーザーのホームディレクトリにファイルを作成せずに設定ツールを無効にする方法はありますかzsh
?さらに、.zshrc
単一のファイルをシステム全体のデフォルトに設定する方法は、ファイルを持たないすべてのユーザーに最適です。.zshrc
答え1
から:http://www.zsh.org/mla/users/2007/msg00398.html
The shell then executes code in the file
scripts/newuser in the shared library area (by default
/usr/local/share/zsh/<VERSION>/scripts/newuser). This feature can be
turned off simply by removing this script. The module can be removed
entirely from the configured shell by editing the line starting
"name=zsh/newuser" in the config.modules file, which is generated in the
top level distribution directory during configuration: change the line to
include "link=no auto=no".
そして、&オプションが設定されているすべてのシェルから取得されます/etc/zsh/zshrc
。 (ほとんどの対話型zshプロセスはこれを行います)interactive
rcs
globalrc
または、定義されないまでユーザーが関数を使用できないという明白な副作用を持つzsh-newuser-install() { :; }
関数を追加します。/etc/zsh/zshenv
UIDテストを追加してこれを最適化できます。
if (( EUID < 1000 )) && (( EUID != 0 )); then # or whatever the highest daemon uid on your system
zsh-newuser-install() { :; }
fi