Как изменить мой корневой каталог?

У меня есть текущий/home/user/каталог для ~, но я хочу изменить его, чтобы быть в/user/home/

/user/home уже существует.

Опция использования usermod движение не должно работать, потому что у меня нет доступа к системе как корень или как другой пользователь.

Я прошу решение вроде изменения некоторого .bashrc файла и изменения некоторой переменной среды или чего-то подобного. Я регистрируюсь на пути ssh.

Я запускаю Ubuntu 14.04.

Заранее спасибо

Решения как те ниже, к сожалению, не применимы к моему случаю:

Как изменить мой собственный корневой каталог?

Как изменить мой корневой каталог по умолчанию

https://stackoverflow.com/questions/20797819/command-to-change-the-default-home-directory-of-a-user

Править

Я думал, что дам еще некоторую информацию здесь, а не отвечу на комментарии.

В настоящее время структура папок является намного более странной, чем мой пример выше, но jist его является тем же. Т.е. в настоящее время когда я делаю:

user@local:~$ ssh user@host

Я заканчиваю в:

user@host:~$ 
user@host:~$ pwd
/path/of/current/home/

таким образом, когда я использую вещи как pip с --user тег это установит вещи локально.

Поскольку существуют некоторые ограничения памяти, а также ssh проблемы с записью в то местоположение (через какое-то время я больше не могу писать) я хотел бы иметь следующее поведение:

user@local:~$ ssh user@host
user@host:~$ 
user@host:~$ pwd
/path/of/new/home/

/path/of/new/home/ уже существует и не установили ограничения выше.

5
задан 23 May 2017 в 05:39

1 ответ

Ну, Вы могли просто добавить эту строку к Вашему ~/.profile1:

HOME=/user/home/

Однако это действительно не хорошая идея. Проблемы, которые это вызвало бы, включают (но вероятно не ограничены):

  1. Это будет только работать если /home/user принадлежит Вашему пользователю. Если это не будет, то Вы даже не сможете войти в систему.

  2. Это будет работать на Вашего пользователя только. Для всех остальных Ваш корневой каталог будет тем, что хранится в /etc/passwd. Это означает это, например, cd ~user перестанет работать. Другими словами, если я вхожу в систему как bob и bob имеет строку HOME=/home/bob/foo в ~/.profile, затем bob думает, что его корневой каталог /home/bob/foo но никто больше не знает что:

    $ whoami
    bob
    $ echo $HOME
    /home/bob/foo
    $ cd ## this moves to your $HOME
    $ pwd
    /home/bob/foo
    

    Пока все хорошо. Но:

    $ whoami
    terdon
    $ cd ~bob
    $ pwd
    /home/bob
    
  3. Это будет управлять Вашим безумным системным администратором. Вы не хотите возмущать своего системного администратора для Вас, являются хрустящими и имеют приятный вкус с кетчупом.

В любом случае это редко - хорошая идея смешать с переменными как $HOME, это может часто иметь непреднамеренные последствия. Вместо этого намного более чистое решение состояло бы в том, чтобы удостовериться, что каждая новая сессия оболочки запускается в целевом каталоге. Просто добавьте эту строку к Вашему ~..bashrc:

cd /user/home/

Теперь, каждый раз Вы log2 в или открытый терминал, Вы окажетесь в /user/home.


1 Или ~/.bash_profile если это существует.

2 Входят в находящиеся в Debian системы как Ubuntu, так или иначе. Для других ДИСТРИБУТИВОВ/OSS Вы, возможно, должны были бы добавить его к ~/.profile также. Посмотрите здесь.

3
ответ дан 23 November 2019 в 10:28

Другие вопросы по тегам:

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