Другой ssh каталог входа в систему от пользователя домой

При работе над командной строкой оболочка сначала делает перенаправления и после этого делает execve к внешней команде. Это означает, что перенаправления выполняются с неизменными пользовательскими правами (потому что оболочка не заботится о принимающем участие sudo позже).

Команда sudo, которая могла легко сделать >> results.txt не видит, что, но просто получает измененный дескриптор файла для/dev/stdout.

Две возможности:

  1. Вы делаете перенаправление в файл / каталог, который перезаписываем Вам (User2).
  2. Вы пишете сценарий обертки, который делает это и называет сценарий обертки через sudo.
7
29.01.2015, 23:46
2 ответа

В вашей ~/. bashrc или ~/.bash_profile~/.bash_profile~/.bash_profile, поместите это в конец файла:

cd /path/to/your/destination

Сохраните файл, выйдите из системы и снова войдите в систему, вы должны быть в файле /путь/к/направление.


Вы также можете создать псевдоним в вашей локальной учетной записи, отредактировать ваш локальный ~/.bashrc и добавить:

alias fastlogin='ssh servername -t "cd /path/to/your/destination; exec bash --login"'

Источник вашего файла, чтобы изменения вступили в силу:

source ~/.bashrc 

Теперь протестируйте его, введя быстрый логин в вашем терминале.

В конце вам потребуется bash, чтобы соединение не прекратилось после выполнения cd и --login, поэтому в исходных файлах ~/.bashrc и ~/.bash_profile.

14
27.01.2020, 20:15

Дом пользователя указывают на домашнюю переменную. Итак, если вы хотите изменить его - вы можете изменить домашнюю переменную в .Bashrc, .bash_profile или что-то. Смотри:

undefine@uml:~$ echo $HOME
/home/undefine
undefine@uml:~$ export HOME=/tmp
undefine@uml:/home/undefine$ cd ~
undefine@uml:~$ pwd
/tmp
1
27.01.2020, 20:15

Теги

Похожие вопросы