Я установил zsh
и я использую, О, Свои плагины ZSH. Все хорошо работает, но когда я становлюсь пользователем root, это изменяет на значение по умолчанию zsh тему.
Что я должен сделать для создания, О, Моей конфигурации ZSH как значения по умолчанию zsh
для всех пользователей включая root
?
Я попытался использовать chsh -s /bin/zsh root
Это дало мне zsh
но нет oh_my_zsh
Я также попробовал cp -R /home/user/.zshrc /root/.zshrc
луг для получения oh_my_zsh
для корня, но ничто не работало.
(Мне не нужно zsh
но мне нужно oh_my_zsh
для всего пользователя в системе)
Просто выполните команду установки как пользователя root (после выполнения sudo su)
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Я сделал символьные ссылки на свои zsh файлы в моем домашнем dir, который, кажется, хорошо работает:
ln -s $HOME/.oh-my-zsh /root/.oh-my-zsh
ln -s $HOME/.zshrc /root/.zshrc
Я установил oh-my-zsh с корневой учетной записью. Теперь я вхожу в систему с другой учетной записью и устанавливаю oh-my-zsh снова в корневом каталоге учетной записи. Это работает на некорневую учетную запись.
Всем, у кого возникнет такой же вопрос, я бы порекомендовал сочетание подходов Туммалы Дханви и Мортона. Я установил oh-my-zsh и как root, и как пользователь, используя следующие команды:
Пользователь:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Корень:
su
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Затем я создал символическую ссылку для файла конфигурации (запуск от имени пользователя):
sudo ln -s /root/.zshrc $HOME/.zshrc
Убедитесь, что у пользователя есть права на чтение файла:
sudo chmod 744 /root/.zshrc
Этот подход позволяет использовать общую конфигурацию, сохраняя при этом безопасность системы. Однако для редактирования .zshrc
вам потребуются привилегии root.Сначала установите zsh
или другую оболочку, скажем, oh-my-zsh
как обычный пользователь.
Если вы обычно настроили оболочку zsh и инфраструктуру oh-my-zhs, то не просто sudo su
в root и введите chsh -s $(what zsh) $(whoami )
для изменения оболочки и фреймворка
Сначала создайте системные ссылки в корне вашей домашней оболочки и конфигураций фреймворка;
ln -s $HOME/.zshrc /root/.zshrc
ln -s $HOME /.oh-my-zsh /root/.oh-my-zsh
Затем после этого продолжайте и измените оболочку chsh -s $(которая zsh) $(whoami)
НО если вы уже изменили оболочку до создания системных ссылок, вы получите возврат, вероятно, /root/.zshrc или файл уже существует.
Там вам нужно перейти к источнику /root
и удалить любой существующий файл, который они сказали, а затем выполнить команду системной ссылки, необходимую для его повторного создания, но полученного из дома.
После этого у вас будет root с той же оболочкой и фреймворком, что и в обычном пользовательском терминале
если вы уже сделали все это и это не работает из-за проблем с разрешениями, просто дайте разрешение к этим корневым файлам;
sudo chmod 744 /root/.zshrc
Я написал короткий скрипт на основе решения Lord Lulent, который хорошо работает для меня
USER=barman
USER_HOME_PATH=~$USER
sudo ln -s $HOME/.zshrc ${USER_HOME_PATH}/.zshrc
sudo ln -s $HOME/.oh-my-zsh ${USER_HOME_PATH}/.oh-my-zsh
sudo ln -s $HOME/.p10k.zsh ${USER_HOME_PATH}/.p10k.zsh
sudo chsh -s $(which zsh) $USER