Почему я меняю пользователей при входе в систему как root с терминала (fedora)? И почему мои изменения в .bashrc & .bash_profile не отображаются, когда я это делаю?

338
Dash Conroy

Итак, когда я вхожу в систему как root в моем терминале, используя sudo, sudo -iили suя получаю:
[dash@localhost IN => ~]$ su
Password
[root@localhost IN => /home/dash]$(обратите внимание, $вместо этого #, это может быть ошибкой, которую я сделал при редактировании .bashrc& .bashprofile) (даже если последняя часть моего .bashrcесть \$)

Теперь, когда я редактирую .bashrc& .bash_profile(как root), я вижу изменения только так долго, как я root. Когда я закрываю терминал и снова открываю его, изменения исчезают. Если я войду в систему как root, однако, изменения появятся снова. Возможно ли, что есть 2 .bashrcс и 2 .bash_profileс? Если так, значит ли это, что я изменил их только для пользователя root?

На другом компьютере я изменил .bashrcи .bash_profileкак обычный пользователь (не root). Изменения появились только тогда, когда я НЕ был root. Я слышал, что один из этих двух файлов предназначен для обычного терминала, а другой - для оболочек. Если да, то почему изменения появились только тогда, когда я не был пользователем root, хотя я поместил один и тот же код в оба файла, а не прибегал к ним if ~/etc/.bashrc...? (при условии, что корень является оболочкой)

0
Эти файлы хранятся в домашней папке, которая уникальна для каждого пользователя. `~ / .bashrc` при входе в систему как root не совпадает с файлом ~ ~ .bashrc` при входе в систему как другой пользователь. `~` = домашняя папка пользователя. Appleoddity 6 лет назад 1

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

0
Debian_yadav

Прежде всего следует отметить, что .bashrcдля каждого пользователя есть отдельный файл, включая root.

В первом случае, когда вы использовали команду, suвы становитесь пользователем root, чей текущий каталог /home/dash. Если вы это сделаете, echo $HOMEвы обнаружите, что это так, /rootи если вы редактируете .bashrcфайл, то редактирование этого файла в /rootкаталоге означает, что вы редактируете .bashrcфайл для пользователя root. Таким образом, эти изменения появятся только когда вы войдете как root, а не как обычный пользователь.

Во втором случае, когда вы отредактировали файл как обычный пользователь, изменения будут видны обычному пользователю только после того, как вы изменили файлы для этого пользователя.

Есть ли способ получить root-права, не будучи root в терминале? То есть оставаться в системе как пользователь, но иметь повышенные привилегии? Dash Conroy 6 лет назад 0
Кроме того, не должны ли изменения, сделанные в файлах, остаться, даже если вы являетесь пользователем root в терминале, если вы не вышли из компьютера? Потому что я слышал, что один файл предназначен для того, когда вы являетесь тем же пользователем в терминале, что и на компьютере, а другой - для того, когда вы находитесь в SSH или вошли в систему как другие пользователи. Dash Conroy 6 лет назад 0
@DashConroy вы можете использовать `sudo` для выполнения команд с привилегией` root`, оставаясь в системе как пользователь Debian_yadav 6 лет назад 0
Ладно, это хорошо, но это означает, что я должен вводить свой пароль при каждой команде. Есть ли способ обойти это? Dash Conroy 6 лет назад 0
@DashConroy отредактируйте файл sudoers с помощью команды `visudo`, чтобы сделать sudo без пароля, но это не рекомендуется. Второе решение - увеличить ограничение по времени для sudo. Google это, и вы найдете. Debian_yadav 6 лет назад 0
Хорошо, большое спасибо за вашу помощь! Dash Conroy 6 лет назад 0

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