.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