Jak mogę to zrobić ssh admin@nas command
pracować, jeśli command
jest w /opt/bin
?
Na moim pliku NAS QNAP /root/.ssh/rc :
echo "old path is $PATH"
export PATH=/opt/bin:/opt/sbin:$PATH
echo "new path is $PATH"
na mojej maszynie:
~$ ssh admin@nas 'echo $PATH'
zwraca
old path is /usr/bin:/bin:/usr/sbin:/sbin
new path is /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin
/usr/bin:/bin:/usr/sbin:/sbin
więc zmienna ścieżki nie jest zachowywana. Jak mogę to osiągnąć?
Edytować:
Jak wspomniałem w moim komentarzu poniżej polecenia, którego próbuję użyć, jest git lub, bardziej konkretnie git-upload-pack
i git-receive-pack
i prawdopodobnie kilka innych. Chcę używać ich w różnych lokalizacjach i okazjach i nie chcę zawracać sobie głowy konfigurowaniem git config na każdym komputerze, na którym go używam lub uczę mojego IDE, jak komunikować się z moim NAS, ale raczej mieć zgodne ze standardami NAS. Więc pomyślałem, że wszystko, czego potrzebuję, to ustawić właściwe $PATH
Edytuj II:
do tej pory próbowałem także wstawiać export PATH=...
jak również dodanie innego echo
(aby sprawdzić, czy są uruchomione) do ~/.bash_profile
, to /etc/profile
i do ~/.bashrc
. Najwyraźniej żaden z nich nie jest nawet wykonywany, gdy uruchamiam polecenie nieinteraktywne, jak powyżej. Jeśli zrobię ssh admin@nas
wszystkie są wykonywane, ale to nie pomaga
~/.bash_profile
, do/etc/profile
i do~/.bashrc
. Najwyraźniej żaden z nich nie jest nawet wykonywany, gdy uruchamiam polecenie nieinteraktywne, jak powyżej. Jeśli zrobięssh admin@nas
wszystkie są wykonywane, ale to nie pomaga~/.bashrc
?su -
Odpowiedzi:
Jeśli jesteś zalogowany jako administrator,
~/.bashrc
nie jest używany, ale~/.profile
jest. Możesz więc dodać to do .profile:A PATH zostanie załadowany w ten sposób podczas logowania jako admin. To, co zrobiłem w moim nas, to dodałem to do .bashrc i zmieniłem .profile na 1 linię:
Więc kiedy logujesz się jako admin, nadal masz skonfigurowany SH z .bashrc.
EDYTOWAĆ: Teraz rozumiem, co chcesz zrobić ...
Po prostu utwórz dowiązania symboliczne do tych dwóch plików binarnych wewnątrz / usr / bin. Na przykład:
źródło
Możesz wejść
real address
polecenia zamiast polecenia w ssh admin @ nascommand
. Jak poniżej:ssh admin@nas /opt/bin/command-name
źródło
git-upload-pack
igit-receive-pack
i prawdopodobnie kilka innych. Chcę używać ich w różnych lokalizacjach i okazjach i nie chcę zawracać sobie głowy konfigurowaniem git config na każdym komputerze, na którym go używam lub uczę mojego IDE, jak komunikować się z moim NAS, ale raczej mieć zgodne ze standardami NAS. Więc pomyślałem, że wszystko, czego potrzebuję, to ustawić właściwe$PATH