Лучшие практики использования sudo su

Я использовал терминал некоторое время, а иногда (на самом деле, много раз раз), я использую команду, например:

cp /etc/test ~/testFolder/

, и я получаю эту ошибку :

cp: cannot open `/etc/test` for reading: Permission denied

В тот момент я помню, что я забыл команду sudo перед ней, поэтому я нажимаю стрелку вверх и затем CTRL + A чтобы перейти к началу строки и вставить туда sudo:

sudo cp /etc/test ~/testFolder/

Есть еще худшие сценарии, когда вы используете vim для редактирования файла, вы забываете команду sudo и не делаете Когда вы запускаете программу, вы не видите предупреждение, вы редактируете весь файл и, в конце концов, не можете его сохранить!

Когда вы понимаете, что делаете это так много раз, это становится раздражающим, особенно если вы похожи на меня и привыкли набирать команды без sudo. Есть способ решить эту проблему, когда вы запускаете терминал, просто наберите sudo su, чтобы использовать команды от имени пользователя root, но некоторые говорят, что с большей вероятностью будут совершать ошибки, о которых вы будете сожалеть вечно.

У меня вопрос: как лучше всего выполнять команды от имени root? Использовать sudo и пропускать его каждый раз или автоматически использовать sudo bash и иметь риск разрушения всей системы?

2
задан 17 October 2012 в 22:56

3 ответа

Лучше всего использовать root только тогда, когда вам это нужно. Используя sudo su, вы действительно предоставляете дьяволу доступ к царству. Поначалу это меня раздражало, но помня об использовании sudo перед командой спасла меня от огромных ошибок. У меня был опыт, когда использование sudo su разрушило все в рабочей среде.

Время рассказа

Мы использовали сервер CentOS для запуска приложения. Сервер был старым и был превращен в виртуальную машину, потому что его оборудование было мертвым / умирающим. У нас произошла рейдовая коррупция и была повреждена виртуальная машина. Наши резервные копии тоже были повреждены, поэтому единственной надеждой на восстановление данных было смонтировать ВМ и попытаться вытащить все это. Я использовал sudo su и приступил к работе. Я восстановил около 10%, когда случайно запустил неправильную команду, она стерла базу данных, и мы потеряли приложение и все данные. Я никогда больше не бегал sudo su и не буду. Урок усвоен трудным путем .

0
ответ дан 17 October 2012 в 22:56

Relax. Во-первых, rm -rf * или что-либо подобное запуску обычного пользователя в вашем домашнем каталоге одинаково катастрофично. Система может быть легко восстановлена, но важны ваши данные. Примерно за пятнадцать лет, когда я использую Linux, у меня не было серьезных катастроф, которых можно было бы избежать, не используя root.

(Ну, если вы системный администратор, особенно на рабочем сервере, то это другой вопрос. Просто стисните зубы и сделайте это правильно; см. Ужасную историю @ jmartin2279 в другом ответе на этот вопрос) .

Во-вторых, если у вас другое приглашение (по умолчанию корневое приглашение заканчивается хешем #, но вы можете сделать его цветным), это напомнит вам, что вы не работаете как обычный пользователь.

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

Наконец, сойти с моего газона , в прежние дни у нас не было вонючих su или sudo, мы запоминали пароли из двадцати случайных символов каждый месяц, и нам понравилось (а иногда у нас было полчаса чата по одной командной строке перед нажатием «enter»)

Однако vim всегда предупреждает вас, что вы редактируете файл только для чтения ("/etc/passwd" [readonly] в статусе линия). Кроме того, если вы не можете записать в файл, вы всегда можете :w /tmp/whatever.

0
ответ дан 17 October 2012 в 22:56

В те дни, до того как я использовал систему sudo (читай: древнюю Red Hat), я использовал несколько техник, чтобы напомнить мне, когда я работал от имени пользователя root: красный запрос, «root» в строке заголовка и т. Д. В эти дни я бегу sudo и не имею быстрых изменений. У меня никогда не было проблем с работой от имени root, которые можно было бы решить, добавив sudo к команде.

У меня есть ярлык для редактирования файлов. У меня есть скрипт bash, подобный следующему в ~/bin/vi~/bin - первая запись в моем $ PATH):

#!/bin/bash
if [[ ! -w "$1" ]]; then
  exec sudo vim "$@"
else
  exec vim "$@"
fi

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

0
ответ дан 17 October 2012 в 22:56

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

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