У меня есть основной пользователь, например. dave
с корневым каталогом /home/dave
. И это имеет много конфигураций для различных программ, как которые это может запустить vim
, bash
и т.д., Когда я вхожу в систему как root
пользователь, все мои конфигурации не используются, так как корень имеет отдельный корневой каталог: /root
.
Я не планирую иметь любых других пользователей на своей машине. Делает изменение root
пользовательский корневой каталог к dave
у каждого есть какие-либо недостатки?
Да, многие.
$HOME
обновит содержание /home/dave
, вероятно, заставляя измененные файлы закончиться принадлежавший корню, который в свою очередь сделает их невозможными для Вас изменить, не будучи корнем (который может повредить некоторые программы (vim
и так как большинство оболочек будет главными примерами, история команд закончится только применимая корнем)./home/dave
может теоретически тривиально выполнить команды как корень. Следует иметь в виду, что много инструментов CLI имеют файлы запуска в $HOME
это выполняется, не просто проанализированный при запуске их. .bashrc
и .vimrc
тривиальные примеры, оба из которых позволяют кому-либо, кто может записать в них для выполнения произвольных команд с полномочиями пользователя, который выполняется bash
или vim
способом это использует их./root
не должно быть читаемым никакими другими пользователями из соображений безопасности. Главным примером является материал как SSH или ключи GPG, но существуют другие. Слияние /root
с другим корневым каталогом делает его намного тяжелее, чтобы гарантировать, чтобы эти секреты остались секретными. Обратите внимание, что это то, почему /root
существует вообще, старые системы UNIX, просто используемые /
как корневой каталог корня, который пропустил много информации другим пользователям./home/dave
это лишает возможности dave
пользователь для входа в систему также лишит возможности пользователя root входить в систему. Это делает любые изменения конфигурации очень более рискованными.Обратите внимание, что вторые и третьи точки являются потенциально серьезными проблемами безопасности, даже в системе отдельного пользователя. Всегда помните, что любое нападение, которому удается получить способность выполнить код как Вашего пользователя, может сделать что-либо, что Ваш пользователь может сделать.
Если Ваша цель состоит в том, чтобы просто совместно использовать конфигурацию через целую систему, можно избежать всех кроме последней проблемы выше при помощи конфигурационных файлов под /etc
вместо в корневых каталогах. Это значения по умолчанию в масштабе всей системы для конфигурации, так изменение их изменяет конфигурацию для всех в системе. Почти все интерактивные инструменты CLI, которые имеют некоторую форму конфигурации, которая не является по сути определенной для пользователя, имеют конфигурационные файлы под /etc
.
Я избежал бы рискованных действий и добавил бы перенаправления на команду.
Можно сделать это 2 способами:
vim
: sudo ln -s /home/dave/.viminfo /root/.viminfo
HOME=/home/dave
к каждой команде. Можно создать псевдоним в Вашем .bashrc
файл, таким образом, Вы не должны думать об этом: echo "alias vim='HOME=/home/dave vim'" | sudo tee -a /root/.bashrc
Если Ваша цель состоит в том, чтобы отредактировать файлы как root
, просто используйте sudoedit
(Я полагаю, что это эквивалентно sudo -e
).
Команда откроет Вашего редактора на временном файле, который заменит оригинал на успешном выходе. (Vim :cquit
команда может использоваться для создания выходящего “сбоя”.)
Что касается оболочки, я предложил бы оставить это скелетами. Это напомнит, что Вы не хотите быть зарегистрированными, как поддерживают очень долго. Если Вы должны, использовать /etc
каталоги или другие средства конфигурирования корня конкретно. Но не связывайте файлы.