изменение приглашения bash после смены каталога пользователя по умолчанию

368
Guy St-Louis

Есть кое-что, чего я не понимаю. Я использовал найденный здесь способ изменения пользовательского каталога по умолчанию, используя vipw / etc / passwd

Однако, как только я захожу в этот файл и изменяю dir пользователя по умолчанию, меняя его приглашение bash со своего компьютера с ex. "[root @ directory ~] #" в "bash-4.1 $"

Теперь, если я попытаюсь изменить глобальное приглашение bash $ PS1, пользователь с измененным каталогом, имеющий bash-4.1 $, не сможет увидеть пользовательское приглашение.

Что это за поведение?

0
Я полагаю, что вы ошибаетесь в том, что на самом деле каталог, названный в / etc / passwd. Это домашний каталог пользователя; это не «каталог по умолчанию», за исключением соглашения и расширения, потому что это каталог, который «предположительно» доступен для записи пользователем, и относительно приватен. (Помните, что Linux является многопользовательской системой по своему замыслу.) Если названный домашний каталог не существует или если он существует, но разрешения не предоставляют пользователю разрешения на чтение / запись / выполнение, все виды вещей сломаются , У меня сильное чувство, что вы видите, как одна из этих вещей ломается. a CVn 8 лет назад 0
@ MichaelKjörling Спасибо за ответ. На самом деле вы правы, когда я изменил каталог, что бы я ни изменил, я понял, что были проблемы с разрешениями. Так что это означает, что только потому, что была проблема с разрешением, или что-то еще, это может быть, поэтому я вижу этот странный bash-4.1? очевидно, я не буду лениться и проверю это, но так как я печатаю здесь ... Guy St-Louis 8 лет назад 0
@ GuySt-Louis Это действительно проблема с разрешением. Приглашение изменяется, потому что bash не может найти читаемый файл `.bash_profile` или тому подобное (который обычно находится в вашем домашнем каталоге в соответствии с` / etc / passwd`, из которого он может прочитать ваши настройки приглашения, поэтому он возвращается к значениям по умолчанию. Jarmund 8 лет назад 0

1 ответ на вопрос

1
Thomas Weinbrenner

You changed your home directory, but you probably left the files in the old directory.

When bash is invoked it reads and executes some files, some of them in your home directory (for example ~/.profile).

Since you changed your home directory it doesn't find them. So any configurations you find in those files (like your prompt) won't get applied to your bash.

я тоже на это посмотрю Guy St-Louis 8 лет назад 0
знаете ли вы все файлы, которые должны быть переданы для решения этой проблемы? Guy St-Louis 8 лет назад 0
Извините, я не пользователь bash и использую другую ОС. Ваша man-страница bash должна иметь список файлов, которые она использует (возможно, ближе к концу man-страницы). Также как внутри этих файлов - возможно, эти файлы вызывают другие файлы. Thomas Weinbrenner 8 лет назад 0