Czy to możliwe (i jak)? Naprawdę potrzebuję tego dla kilku zdalnych komputerów, na których mam dostęp ssh (ale bez dostępu rootowego).Zainstaluj zsh bez uprawnień roota?
Odpowiedz
Możesz wypróbować polecenie chsh
. Czy na pewno Zsh nie jest zainstalowany na odległym komputerze? Jeśli nie, możesz to zrobić (cytowane z zsh FAQ Section 1.7)
Podstawową ideą jest użycie exec, aby zastąpić bieżącą powłokę zsh. Często możesz to zrobić w pliku logowania, takim jak .profile (jeśli twoja powłoka to sh lub ksh) lub .login (jeśli jest to csh). Upewnij się, że masz jakiś sposób na zmianę pliku (np. Przez FTP), zanim spróbujesz tego, ponieważ exec jest często raczej pamiętliwy.
Jeśli masz zsh w podkatalogu bin katalogu domowym, umieścić to w .profile:
[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
lub jeśli Twój login shell jest csh lub tcsh, umieścić to w .login:
if (-f ~/bin/zsh) exec ~/bin/zsh -l
(w każdym przypadku -l mówi, że zsh jest powłoką logowania).
Jeśli chcesz sprawdzić to, zanim się do niego przyłączysz, możesz sprawić, by powłoka logowania zadawała pytanie, czy wykonać polecenie zsh. Poniższa praca dla Bourne podobnych muszli:
[ -f $HOME/bin/zsh ] && {
echo "Type Y to run zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
}
i C-shell-jak muszli:
if (-f ~/bin/zsh) then
echo -n "Type Y to run zsh: "
if ("$<" == Y) exec ~/bin/zsh -l
endif
To nie jest dobry pomysł, aby umieścić to (nawet bez -l) do .cshrc , przynajmniej bez testów na to, co powinien zrobić csh, ponieważ spowoduje to, że każda instancja csh zmieni się w zsh i wywoła skrypty csh (tak, niestety niektórzy to piszą), którzy nie nazywają się csh -f
nie zdać. Jeśli chcesz, aby xterm uruchamiał zsh, zmień zmienną środowiskową SHELL na pełną ścieżkę zsh w tym samym czasie, co exec zsh (w rzeczywistości jest to rozsądne ze względu na spójność, nawet jeśli nie używasz xterma). Jeśli musisz wykonać komendę zsh z twojego .cshrc, minimalna kontrola bezpieczeństwa to: ($? Prompt) exec zsh.
Jeśli chcesz, aby twoja powłoka logowania pojawiła się na liście procesów jako -zsh, możesz połączyć zsh z -zsh (np. Przez ln -s ~/bin/zsh ~/bin/-zsh) i zmienić exec na exec -zsh. (Upewnij się, że -zsh jest na twojej ścieżce.) Ma to taki sam efekt jak opcja -l.
Przypis: jeśli masz uprawnienia roota, upewnij się, że zsh wchodzi w/etc/shells na wszystkich odpowiednich komputerach, w tym klientach NIS, lub możesz mieć problemy z FTP na tym komputerze.
Jeśli na komputerze jest włączony zsh, powinieneś być w porządku po prostu wykonać polecenie zsh
w zachęcie do zamiany, jeśli to działa, możesz spróbować przekonwertować swoją powłokę na wersję chsh
(powinna działać bez uprawnień roota) lub podczas łączenia się z ssh
wstaw ssh -t hostname zsh
, aby uruchomić go automatycznie.
Utwórz katalog w swoim katalogu kont użytkowników, rozpakuj zsh, a następnie użyj ./config
, make
i make install
.
Pobierz zsh z:
wget -O zsh.tar.gz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && tar -xvzf zsh.tar.gz -C zsh --strip-components 1
cd zsh
można skompilować zsh siebie, na przykład:
./configure --prefix=$HOME
make
make install
a następnie uruchomić go jawnie, lub programowo z pliku startowego Twojego bieżącego powłoki (umieścić exec $HOME/bin/zsh -l
w właściwe miejsce).
W wersji 5.2 przedrostek powinien być po prostu '--prefix = $ HOME', w przeciwnym razie zakończy się na' $ HOME/bin/bin' – ilija139
@ ilija139 Dzięki, poprawione. – Jens
Po prostu zauważyłem, że folder 'lib' jest również umieszczony w' $ HOME':/ Może najlepiej zainstalować w innym folderze i dowiązać symbolicznie do '$ HOME/bin' – ilija139
- 1. Zainstaluj gcc na Linuksie bez uprawnień administratora
- 2. Linux nieprzetworzone dane wejściowe bez uprawnień roota?
- 3. Upuszczanie uprawnień roota
- 4. Upuszczanie uprawnień roota w Pythonie
- 5. Zainstaluj PHP 5 bez libxml2
- 6. Upuszczanie uprawnień roota dla niektórych operacji w Pythonie
- 7. Zainstaluj VSTO BEZ używając Clickonce
- 8. Zainstaluj oprogramowanie Android Studio bez uprawnień administratora w systemie Windows 7
- 9. Zmiana rejestru bez uprawnień administratora
- 10. SFML 1.6 bez uprawnień administratora
- 11. Uprawnienia roota dla aplikacji iOS
- 12. Zainstaluj m2crypto na virtualenv bez pakietów systemowych
- 13. Zainstaluj gcc-C++ na CentOS bez yumu
- 14. Podnoszenie uprawnień do używania mach_inject
- 15. Uruchamianie Visual Studio bez uprawnień admina
- 16. Dlaczego ping działa bez uprawnień administratora?
- 17. Zaktualizuj pamięć podręczną ldconfig bez uprawnień administratora
- 18. Usługa WCF nie działa bez uprawnień administratora
- 19. Zainstaluj Oh My Zsh na Vagrant Box jako część procesu ładowania początkowego
- 20. Jak wykonać dokowanie jako roota?
- 21. Jak wyświetlić bash_history dla roota?
- 22. Utwórz hasło roota dla PHPMyAdmin
- 23. Przekazywanie wszystkich argumentów w funkcji zsh
- 24. Zainstaluj aplikację na iOS bezpośrednio ze strony internetowej - bez hasła, bez iTunes, bez UDID
- 25. Co robi autoload w zsh?
- 26. Aplikacja GTK # .NET bez wymaganego oddzielnego GTK # Zainstaluj
- 27. Zainstaluj polecenie make bez już tworzenia (mac os 10.5)
- 28. Propozycja pakietu Zsh
- 29. alias zsh z rozszerzeniem
- 30. Alias ZSH z parametrem
Pytanie dotyczyło instalacji * bez * uprawnień administratora. –