Повторите попытки выполнения команды до тех пор, пока состояние не будет не конкретным, сохранить данные

Каждая учетная запись в системе Unix/Linux имеет числовой идентификатор, "идентификатор пользователя" или UID. По традиции, UID 0 (ноль) называется "root", и ему предоставляются особые привилегии (как правило, разрешение на доступ ко всему в системе).

Вы можете просто войти в систему как пользователь root напрямую, если у вас есть пароль root. Однако, как правило, считается, что это плохая практика.

Во-первых, часто бывает так, что Unix/Linux дает вам много возможностей для того, чтобы выстрелить себе в ногу без всякой безопасности - существует множество опечаток и случайностей, от которых проще всего избавиться путем полной переустановки и/или восстановления из резервной копии. Таким образом, необходимость переключиться на root, когда это необходимо, поможет вам случайно не сделать того, чего вы не хотели.

Это также помогает ограничить распространение вредоносных программ. Если ваш веб-браузер работает под UID 0 - "как root", как мы говорим, - то ошибка в программировании может быть использована удаленными веб-сайтами для получения полного контроля над вашим компьютером. Использование учетной записи "обычного" пользователя ограничивает этот ущерб.

Оба эти принципа следуют общей лучшей практике, называемой "принципом наименьших привилегий", которой, честно говоря, хорошо следовать при проектировании систем в целом. Более подробно о причинах не всегда работать от имени root вы можете прочитать в разделе Беспокойство по поводу того, что вход в систему от имени root переоценен?

Теперь остается вопрос о том, как вы можете получить доступ к защищенным вещам в качестве пользователя, не являющегося root. Есть два основных способа - su и sudo. Первый требует пароль root, а второй, в обычной конфигурации, требует ваш пароль. Часто бывает так, что вы используете sudo для выполнения одной команды "от имени root", а не для переключения на учетную запись root на весь сеанс. (Вы также можете сделать это с помощью su -c, что часто встречается в документации). Длительное обсуждение относительных достоинств этих способов см. в Какой способ получения привилегий root самый безопасный: sudo, su или login?. (И, для полноты картины, есть и другие механизмы, которые не являются sudo, но работают аналогично, например PackageKit, обычно используемый для приложений с графическим интерфейсом.)

Вы спрашиваете, являются ли термины "root", "суперпользователь" и "администратор" одинаковыми. "Root" и "суперпользователь", по сути, одно и то же. Если быть точным, можно сказать следующее: "Учетная запись root является суперпользователем, потому что она имеет UID 0."

"Администратор" может означать то же самое, но в Fedora мы* используем его несколько иначе. Не каждый пользователь в системе имеет право получить привилегии root через sudo. В Fedora в настройках по умолчанию это могут сделать члены группы wheel. И в программе установки, и в документации, и в других местах мы называем это "учетной записью администратора". Та, которая не является root, но имеет право доступа к привилегиям root.

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

* Я работаю на Fedora.

0
08.01.2019, 15:05
1 ответ
until [ "$SIG" != "2" ]; do
   command param1 param2
   SIG=$?
done

Это будет запускать команду каждый раз, пока она не вернет число, отличное от 2.

1
28.01.2020, 02:23

Теги

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