Основные две возможности командной строки:
su
и введите пароль root при запросе.sudo
перед командой, и вводят Ваш пароль при запросе.Это - предпочтительный метод для большинства систем, включая Ubuntu, Linux Mint, (возможно) Debian и других. Если Вы не знаете отдельного пароля root, используйте этот метод.
Sudo требует, чтобы Вы ввели свой собственный пароль. (Цель состоит в том, чтобы ограничить повреждение при отъезде клавиатуры необслуживаемой и разблокированной, и также гарантировать, чтобы Вы действительно хотели выполнить ту команду, и это не было, например, опечатка.) Это часто настраивается для не выяснения снова в течение нескольких минут, таким образом, можно выполнить несколько sudo
команды по очереди.
Пример:
sudo service apache restart
Если необходимо выполнить несколько команд как корень, префикс каждый из них с sudo
. Иногда, более удобно выполнить интерактивную оболочку как корень. Можно использовать sudo -i
для этого:
$ sudo -i
# command 1
# command 2
...
# exit
Вместо sudo -i
, можно использовать sudo -s
. Различие - это -i
повторно инициализирует среду к нормальным значениям по умолчанию, тогда как -s
использует Ваши конфигурационные файлы для лучше или для худшего.
Для получения дополнительной информации посмотрите sudo веб-сайт или тип man sudo
в Вашей системе. Sudo очень настраивается; например, это может быть настроено, чтобы позволить определенному пользователю только выполнить определенные команды как корень. Читайте sudoers
страница справочника для получения дополнительной информации; использовать sudo visudo
отредактировать sudoers файл.
su
команда существует в большинстве подобных Unix систем. Это позволяет Вам выполнить команду как другому пользователю, если Вы знаете что пароль пользователя. Когда выполнено без пользователя указал, su
примет значение по умолчанию в корневую учетную запись.
Пример:
su -c 'service apache restart'
Команда для выполнения должна быть передана с помощью -c
опция. Обратите внимание необходимость в кавычках так, чтобы команда не была проанализирована оболочкой, но передана неповрежденная корневой оболочке это su
выполнения.
Для выполнения нескольких команд как корня более удобно запустить интерактивную оболочку.
$ su
# command 1
# command 2
...
# exit
В некоторых системах необходимо быть в группе номер 0 (названный wheel
) использовать su
. (Точка должна ограничить повреждение, если пароль root случайно пропущен кому-то.)
Если существует набор пароля root, и Вы обладаете им, можно просто ввести root
при приглашении ко входу в систему и вводят пароль root. Будьте очень осторожны, и постарайтесь не запускать сложные приложения как корень, поскольку они могли бы сделать что-то, что Вы не предназначали. Вход в систему непосредственно как корень главным образом полезен в чрезвычайных ситуациях, таков как отказы диска или когда Вы заблокировали себя из своей учетной записи.
Однопользовательский режим или уровень выполнения 1, также дает Вам полномочия пользователя root. Это предназначается, прежде всего, для ситуаций с экстренным техобслуживанием, где начальная загрузка на многопользовательский уровень выполнения не возможна. Можно загрузиться в однопользовательский режим путем передачи single
или emergency
на командной строке ядра. Обратите внимание, что начальная загрузка в однопользовательский режим не является тем же как начальной загрузкой системы обычно и входом в систему как корень. Скорее система только запустит сервисы, определенные для уровня выполнения 1. Как правило, это - самое маленькое количество сервисов, требуемых иметь применимую систему.
Можно также добраться до однопользовательского режима при помощи команды telinit: telinit 1
; однако, эта команда требует, чтобы Вы уже получили права пользователя root с помощью некоторого другого метода, для выполнения.
Во многих системах, загружающихся в однопользовательский режим, предоставит пользовательский доступ к корневой оболочке, не запрашивая пароль. В частности, systemd
- основанные системы предложат Вам пароль root при начальной загрузке этого пути.
Calife позволяет Вам команды выполнения как другой пользователь путем ввода собственного пароля, если авторизовано. Это подобно намного более широко распространенному sudo (см. выше). Calife более легок, чем sudo, но также и менее настраивается.
Op позволяет Вам команды выполнения как другой пользователь, включая корень. Это не полноценный инструмент для выполнения произвольных команд: Вы вводите op
сопровождаемый мнемосхемой, настроенной системным администратором для выполнения определенной команды.
Супер позволяет Вам команды выполнения как другой пользователь, включая корень. Команда, должно быть, была позволена системным администратором.
См. также Википедию.
Просто снабдите префиксом свою желаемую команду команду pkexec
. Знайте, что, в то время как это работает в большинстве случаев, это не работает универсально.
Посмотрите man pkexec
для получения дополнительной информации.
kdesu
и kdesudo
графические фронтенды к su
и sudo
соответственно. Они позволяют Вам запускать программы X Window как корень без преград. Они - часть KDE. Ввести
kdesu -c 'command --option argument'
и введите пароль root или тип
kdesudo -c 'command --option argument'
и введите свой пароль (если авторизовано для выполнения sudo
). Если Вы проверяете, “сохраняют пароль” опцией в KdeSu, необходимо будет только ввести пароль root однажды на сессию входа в систему.
Ktsuss
Ktsuss (“сохраняют su простое, глупое”) является графической версией su.
Beesu
Beesu является графическим фронтендом к команде su, которая заменила Gksu в основанных на Red Hat операционных системах. Это было разработано главным образом для RHEL и Fedora.
gksu
и gksudo
gksu
и gksudo
графические фронтенды к su
и sudo
соответственно. Они позволяют Вам запускать программы X Window как корень без преград. Они - часть Gnome. Ввести
gksu command --option argument
и введите пароль root или тип
gksudo command --option argument
и введите свой пароль (если авторизовано для выполнения sudo
).
gksu
и gksudo
являются устаревшими. Они были заменены PolicyKit в GNOME, и много дистрибутивов (таких как Ubuntu) больше не устанавливают их по умолчанию. Вы не должны зависеть от них являющийся доступным или работающий правильно.
Используйте один из методов в "выполнении команды оболочки как корневой раздел". Вы не должны будете гарантировать этому ни одного DISPLAY
переменная среды, ни XAUTHORITY
среда сбрасывается во время перехода к корню. Это может потребовать дополнительной конфигурации тех методов, которая выходит за рамки этого вопроса.
В целом, это - плохая идея, главным образом потому что графические приложения считают и запишут конфигурационные файлы как корень, и когда Вы попытаетесь использовать те приложения снова как Ваш обычный пользователь, те приложения не будут иметь разрешения прочитать их собственные конфигурации.
Посмотрите, Как я редактирую файл как корень?
Lennart Poettering недавно сделал некоторое рытье в поведение при блокировании файловой системы Linux, которое не красит особенно розовое изображение для блокировки по NFS (особенно продолжение, с которым он связывается в нижней части сообщения).
Я вполне уверен, что Вы смотрите на проблемы прежней версии. Вспомните, что руководство Perl5 было выпущено в 1994 и что это было просто редактирование руководства Perl4 с 1991. В те дни можно было, вероятно, сказать о часто названной Файловой системе Кошмара, что "это не, как хорошо танцы переноса, который поражает, но что это танцует вообще".
NFS2 в эпоху 1991 года был медленно сканирования из Sun в другие платформы и был относительно сыр. Модель обеспечения безопасности чрезвычайно не существовала (корень на клиентской машине мог читать, полное содержание NFS монтируется), и блокирующий - через nfs.lockd - была эта сторона экспериментальных. Вы были бы глупы ожидать, что семантика скопления будет работать правильно если вообще между двумя различными предположительно совместимыми реализациями. Коаксильный кабель был доминирующим Ethernet PHY, в то время, когда который у многих пользователей сети никогда не было неудовольствия использования (что Вы подразумеваете, что забыли ставить 50 нагрузочных резисторов?), если это дает Вам лучшую власть на состоянии интранет затем.
У Larry Wall и команды были все основания сделать пессимистические предположения о правильности блокировок NFS в то время, и это - вид безопасного программирования, которое будущие жокеи кода, ненавидят для удаления, потому что настолько трудно доказать отсутствие дефекта путем удаления старого кода, который повторно введен в совместимости с унаследованной системой, о которой Вы даже не слышали.
С тех пор NFS значительно улучшился, и lockd мигрировал вовремя на функцию ядра Linux 2.6. Для набора 2003 + системы, захвату файла NFS можно, вероятно, доверять, особенно, если протестировано хорошо в рамках Вашего приложения через многие платформы, на которых это может работать.
Все вышеупомянутое было заперто из памяти и могло, вероятно, быть доказано посредством исследования (например, http://nfs.sourceforge.net/), но доказательство - как они говорят - находится в блокировке, и если Вы не протестировали его, это считается поврежденным.
Другой, прямо от Linux-NFS FAQ: nfs.sf.net
Я пытаюсь использовать скопление ()/BSD блокировки для блокировки файлов, используемых на нескольких клиентах, но файлы становятся поврежденными. Каким образом? Скопление A. ()/BSD блокирует действие только локально на Linux клиенты NFS до 2.6.12. Используйте fcntl () / блокировки POSIX, чтобы гарантировать, что блокировки файла видимы другим клиентам.
Вот некоторые способы сериализировать доступ к файлу NFS.
Используйте fcntl () / POSIX, блокирующий API. Этот тип блокировки обеспечивает блокировку диапазона байта через несколько клиентов по протоколу NLM, или по NFSv4. Используйте отдельный lockfile и создайте жесткие ссылки на него. См. описание в разделе O_EXCL создавания (2) страница справочника. Стоит отметить, что до рано 2,6 ядра, O_EXCL создает, не были атомарными на Linux клиенты NFS. Не используйте O_EXCL, создает, и ожидайте атомарное поведение среди нескольких клиента NFS, если Вы не выполняете ядро, более новое, чем 2.6.5.
Это - известная проблема, что Perl использует скопление ()/BSD блокирующий по умолчанию. Это может повредить программы, портированные от других операционных систем, таких как Солярис, которые ожидают, что блокировки flock/BSD будут работать как блокировки POSIX.
На Linux, с помощью захвата файла вместо жесткой ссылки обладает дополнительным преимуществом установки контрольных точек кэша клиента с сервером. Когда блокировка файла будет получена, клиент сбросит кэш страницы для того файла так, чтобы любые последующие чтения получили новые данные из сервера. Когда блокировка файла выпущена, любые изменения в файле на том клиенте сбрасываются назад к серверу, прежде чем блокировка будет выпущена так, чтобы другие клиенты, ожидающие для блокировки тот файл, видели изменения.
Клиент NFS в 2.6.12 оказывает поддержку для скопления ()/BSD, соединяет файлы NFS путем эмуляции блокировок BSD-стиля с точки зрения блокировок диапазона байта POSIX. Другие клиенты NFS, которые используют тот же механизм эмуляции или то использование fcntl () / блокировки POSIX, будут затем видеть те же блокировки, которые видит клиент NFS Linux.
В локальных файловых системах Linux блокировки POSIX и блокировки BSD невидимы друг для друга. Таким образом, из-за этой эмуляции, приложения, работающие на сервере NFS Linux, будут все еще видеть файлы, заблокированные клиентами NFS, как заблокированными с fcntl () / блокировка POSIX, использует ли приложение на клиенте BSD-стиль или блокировку стиля POSIX. Если серверное приложение будет использовать скопление () блокировки BSD, то оно не будет видеть блокировки, которые используют клиенты NFS.
flock
не имеет, не делает и не заблокирует через nfs, монтируется.
– Daniel Farrell
25.10.2017, 03:34
Сейчас это устарело. NFS4 поддерживает блокировку внутри протокола(демон lockd или механизм обратного вызова RPC не требуются )и метод Perl flock()
отлично работает -мы используем его в производстве.
Очень старые версии ядра реализовывалиflock
(системный вызов )как операцию «нет» -в NFS, и другие вещи, такие как блокировка диапазона байтов, не поддерживались должным образом. Отсюда и истерика.