个人工具

“UbuntuHelp:RootSudoRu”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
(新页面: {{From|https://help.ubuntu.com/community/RootSudoRu}} {{Languages|UbuntuHelp:RootSudoRu}} В Linux (да и в Unix вообще) суперпользователь (root user) имее...)
 
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/RootSudoRu}}
 
{{From|https://help.ubuntu.com/community/RootSudoRu}}
 
{{Languages|UbuntuHelp:RootSudoRu}}
 
{{Languages|UbuntuHelp:RootSudoRu}}
 
 
 
В Linux (да и в Unix вообще) суперпользователь (root user) имеет доступ ко всему.  Это аналог пользователя Администратор в Windows. Как бы вы ни настроили свою учетную запись, вы все равно не сможете заблокировать доступ суперпользователя к каким-либо ресурсам компьютера. Кроме того, суперпользователь имеет доступ ко всем командам операционной системы и всем ее устройствам. Многие начинающие пользователи активно используют учетную запись root, поскольку это очень удобно. Тем не менее существуют причины, по которым учетную запись суперпользователя не
 
В Linux (да и в Unix вообще) суперпользователь (root user) имеет доступ ко всему.  Это аналог пользователя Администратор в Windows. Как бы вы ни настроили свою учетную запись, вы все равно не сможете заблокировать доступ суперпользователя к каким-либо ресурсам компьютера. Кроме того, суперпользователь имеет доступ ко всем командам операционной системы и всем ее устройствам. Многие начинающие пользователи активно используют учетную запись root, поскольку это очень удобно. Тем не менее существуют причины, по которым учетную запись суперпользователя не
 
следует применять для повседневной работы.
 
следует применять для повседневной работы.
第8行: 第6行:
 
* Доступ на уровне суперпользователя— это, скорее, большая ответственность, нежели благодать. При обычном доступе вы работаете только с ресурсами своей учетной записи. Если же вы находитесь в системе в качестве суперпользователя, вы можете случайно сделать ошибку и удалить все — да-да, все файлы всей системы Linux!
 
* Доступ на уровне суперпользователя— это, скорее, большая ответственность, нежели благодать. При обычном доступе вы работаете только с ресурсами своей учетной записи. Если же вы находитесь в системе в качестве суперпользователя, вы можете случайно сделать ошибку и удалить все — да-да, все файлы всей системы Linux!
 
Думаете, с вами такого не случится? Даже опытные администраторы Linux рассказывают жуткие истории о том дне, когда они сделали роковую опечатку или не задумывались над тем, что они делают, работая под именем суперпользователя.
 
Думаете, с вами такого не случится? Даже опытные администраторы Linux рассказывают жуткие истории о том дне, когда они сделали роковую опечатку или не задумывались над тем, что они делают, работая под именем суперпользователя.
 
 
По умолчанию учетная запись суперпользователя отключена в Ubuntu. Это означает, что вы не сможете зайти в систему как '''root'''. Однако, инсталлятор настраивает '''sudo''' для пользователя, созданного во время установки. Команда '''sudo''' позволяет выполнять все приложения, требующие привилегий суперпользователя.
 
По умолчанию учетная запись суперпользователя отключена в Ubuntu. Это означает, что вы не сможете зайти в систему как '''root'''. Однако, инсталлятор настраивает '''sudo''' для пользователя, созданного во время установки. Команда '''sudo''' позволяет выполнять все приложения, требующие привилегий суперпользователя.
 
 
Когда '''sudo''' спрашивает пароль, вы должны ввести '''пароль ВАШЕГО пользователя''' ! То есть пароль root'a вам не нужен !
 
Когда '''sudo''' спрашивает пароль, вы должны ввести '''пароль ВАШЕГО пользователя''' ! То есть пароль root'a вам не нужен !
 
 
=== Заметки ===
 
=== Заметки ===
 
* Пароль сохраняется по умолчанию на 15 минут. По истечении этого времени, вам нужно будет ввести пароль снова.
 
* Пароль сохраняется по умолчанию на 15 минут. По истечении этого времени, вам нужно будет ввести пароль снова.
第43行: 第38行:
 
sudo -i -u username
 
sudo -i -u username
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Разрешение другим пользователям использовать sudo  ===
 
=== Разрешение другим пользователям использовать sudo  ===
 
 
Чтобы разрешить пользователю использовать sudo, откройте '''Система → Администрирование → Пользователи и группы'''. Затем выберите пользователя и нажмите на кнопке '''Свойства'''. В появившемся окне зайдите на вкладку '''Привилегии пользователя''' и поставьте галочку '''Администрировать систему'''.
 
Чтобы разрешить пользователю использовать sudo, откройте '''Система → Администрирование → Пользователи и группы'''. Затем выберите пользователя и нажмите на кнопке '''Свойства'''. В появившемся окне зайдите на вкладку '''Привилегии пользователя''' и поставьте галочку '''Администрировать систему'''.
 
 
/!\ Аналог этой же процедуры в терминале: <code><nowiki>sudo adduser $user admin</nowiki></code>, где $user - имя пользователя.
 
/!\ Аналог этой же процедуры в терминале: <code><nowiki>sudo adduser $user admin</nowiki></code>, где $user - имя пользователя.
 
 
=== Преимущества использования sudo ===
 
=== Преимущества использования sudo ===
 
 
Причины, по которым пользователь '''root''' отключен по умолчанию, заключаются в следующем:
 
Причины, по которым пользователь '''root''' отключен по умолчанию, заключаются в следующем:
 
 
* Программа установки задаёт меньше вопросов.
 
* Программа установки задаёт меньше вопросов.
 
* Пользователям не нужно запоминать дополнительный пароль, который они могут забыть.
 
* Пользователям не нужно запоминать дополнительный пароль, который они могут забыть.
第62行: 第51行:
 
* sudo можно настроить с более fine-grained политикой безопасности.
 
* sudo можно настроить с более fine-grained политикой безопасности.
 
* Аутентификация автоматически истекает по окончании определенного промежутка времени.
 
* Аутентификация автоматически истекает по окончании определенного промежутка времени.
 
 
=== Минусы использования sudo ===
 
=== Минусы использования sudo ===
 
 
Хотя выгода для использования sudo на персональных компьютерах велика, есть некоторые моменты, которые надо отметить:
 
Хотя выгода для использования sudo на персональных компьютерах велика, есть некоторые моменты, которые надо отметить:
 
 
* Redirecting the output of commands run with sudo can catch new users out. For instance consider <code><nowiki>sudo ls > /root/somefile</nowiki></code> will not work since it is the shell that tries to write to that file. You can use `ls | sudo tee -a /root/somefile` to append, or `ls | sudo tee /root/somefile` to overwrite contents. You could also pass the whole command to a shell process run under sudo to have the file written to with root permissions, such as `sudo bash -c "ls > /root/somefile"`.
 
* Redirecting the output of commands run with sudo can catch new users out. For instance consider <code><nowiki>sudo ls > /root/somefile</nowiki></code> will not work since it is the shell that tries to write to that file. You can use `ls | sudo tee -a /root/somefile` to append, or `ls | sudo tee /root/somefile` to overwrite contents. You could also pass the whole command to a shell process run under sudo to have the file written to with root permissions, such as `sudo bash -c "ls > /root/somefile"`.
* Во многих офисных системах только один локальный пользователь в системе root. Все остальные пользователи импортируются через NSS тезнологии, таких как nss-ldap. Для настройки рабочей станции в случае повреждения сети, где сломан nss-ldap, необходим root. This tends to leave the system unusable unless cracked. An extra local user, or an enabled root password is needed here.
+
* Во многих офисных системах только один локальный пользователь в системе root. Все остальные пользователи импортируются через NSS технологии, такие как nss-ldap. Для настройки рабочей станции в случае повреждения сети, при поломке nss-ldap, необходим root. This tends to leave the system unusable unless cracked. An extra local user, or an enabled root password is needed here.
 
+
 
=== Заблуждения ===
 
=== Заблуждения ===
 
+
* ''Разве sudo не менее безопасно, чет su?''
* ''Isn't sudo less secure than su?''
+
Основая модель безопасности одинакова в обоих случаях, поэтому и уязвимость будет одинаковой. Любой пользователь, использующий '''su''' или '''sudo''' рассматривается как привилегированный пользователь.  If that user's account is compromised attby an attacker, the attacker can also gain root privileges the next time the user does so. The user account is the weak link in this chain, and so must be protected with the same care as root.
 
+
The basic security model is the same, and therefore these two systems share their primary weaknesses. Любой пользователь, использующий '''su''' или '''sudo''' должен рассматриваться как привилегированный пользователь.  If that user's account is compromised attby an attacker, the attacker can also gain root privileges the next time the user does so. The user account is the weak link in this chain, and so must be protected with the same care as root.
+
 
+
 
On a more esoteric level, `sudo` provides some features which encourage different work habits, which can positively impact the security of the system.  `sudo` is commonly used to execute only a single command, while `su` is generally used to open a shell and execute multiple commands.  The `sudo` approach reduces the likelihood of a root shell being left open indefinitely, and encourages the user to minimize their use of root privileges.
 
On a more esoteric level, `sudo` provides some features which encourage different work habits, which can positively impact the security of the system.  `sudo` is commonly used to execute only a single command, while `su` is generally used to open a shell and execute multiple commands.  The `sudo` approach reduces the likelihood of a root shell being left open indefinitely, and encourages the user to minimize their use of root privileges.
 
 
* ''I won't be able to enter single-user mode!''
 
* ''I won't be able to enter single-user mode!''
 
 
The sulogin program in Ubuntu is patched to handle the default case of a locked root password.
 
The sulogin program in Ubuntu is patched to handle the default case of a locked root password.
 
+
* ''Я могу получить права администратора из консоли без ввода пароля!''
* ''I can get a root shell from the console without entering a password!''
+
Вам потребуется ввести пароль для этого.
 
+
You have to enter your password.
+
 
+
 
Console users have access to the boot loader, and can gain administrative privileges in various ways during the boot process.  For example, by specifying an alternate `init(8)` program.  Linux systems are not typically configured to be secure at the console, and additional steps (for example, setting a root password, a boot loader password and a BIOS password) are necessary in order to make them so.  Note that console users usually have physical access to the machine and so can manipulate it in other ways as well.
 
Console users have access to the boot loader, and can gain administrative privileges in various ways during the boot process.  For example, by specifying an alternate `init(8)` program.  Linux systems are not typically configured to be secure at the console, and additional steps (for example, setting a root password, a boot loader password and a BIOS password) are necessary in order to make them so.  Note that console users usually have physical access to the machine and so can manipulate it in other ways as well.
 
 
=== Возврат к традиционной учетной записи root ===
 
=== Возврат к традиционной учетной записи root ===
 
<!> '''Не рекомендуется это делать!'''
 
<!> '''Не рекомендуется это делать!'''
 
 
Consider using the below command instead:
 
Consider using the below command instead:
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo -i
 
sudo -i
 
</nowiki></pre>
 
</nowiki></pre>
 
+
Использование этой команды временно откроет консоль с правами root. Активация аккаунта root в Ubuntu не поддерживается из-за ненадобности. Всё, что вам требуется сделать с правами администратора в Ubuntu можно сделать через sudo или gksudo.
That will open up a root console temporarily. Enabling the root account in Ubuntu is neither supported nor necessary. Anything you need to do as administrator of an Ubuntu system can be done via sudo or gksudo.
+
 
+
 
Если root включен, и вы хотите отключить его, откройте терминал и введите следующую команду:
 
Если root включен, и вы хотите отключить его, откройте терминал и введите следующую команду:
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo passwd -l root
 
sudo passwd -l root
 
</nowiki></pre>
 
</nowiki></pre>
 
 
 
=== Drag & Drop Sudo ===
 
=== Drag & Drop Sudo ===
 
 
Этот трюк взят из [http://www.ubuntuforums.org/showthread.php?t=24008 форумов].
 
Этот трюк взят из [http://www.ubuntuforums.org/showthread.php?t=24008 форумов].
 
 
Создайте кнопку [[UbuntuHelp:HowToAddaLauncher|запуска]] со следующей командой:
 
Создайте кнопку [[UbuntuHelp:HowToAddaLauncher|запуска]] со следующей командой:
 
<pre><nowiki>
 
<pre><nowiki>

2009年5月12日 (二) 18:41的最新版本

В Linux (да и в Unix вообще) суперпользователь (root user) имеет доступ ко всему. Это аналог пользователя Администратор в Windows. Как бы вы ни настроили свою учетную запись, вы все равно не сможете заблокировать доступ суперпользователя к каким-либо ресурсам компьютера. Кроме того, суперпользователь имеет доступ ко всем командам операционной системы и всем ее устройствам. Многие начинающие пользователи активно используют учетную запись root, поскольку это очень удобно. Тем не менее существуют причины, по которым учетную запись суперпользователя не следует применять для повседневной работы.

  • Доступ такого уровня к ресурсам компьютера необходим далеко не всегда.
  • Доступ на уровне суперпользователя— это, скорее, большая ответственность, нежели благодать. При обычном доступе вы работаете только с ресурсами своей учетной записи. Если же вы находитесь в системе в качестве суперпользователя, вы можете случайно сделать ошибку и удалить все — да-да, все файлы всей системы Linux!

Думаете, с вами такого не случится? Даже опытные администраторы Linux рассказывают жуткие истории о том дне, когда они сделали роковую опечатку или не задумывались над тем, что они делают, работая под именем суперпользователя. По умолчанию учетная запись суперпользователя отключена в Ubuntu. Это означает, что вы не сможете зайти в систему как root. Однако, инсталлятор настраивает sudo для пользователя, созданного во время установки. Команда sudo позволяет выполнять все приложения, требующие привилегий суперпользователя. Когда sudo спрашивает пароль, вы должны ввести пароль ВАШЕГО пользователя ! То есть пароль root'a вам не нужен !

Заметки

  • Пароль сохраняется по умолчанию на 15 минут. По истечении этого времени, вам нужно будет ввести пароль снова.
  • Несмотря на то, что при вводе пароль не отображается на экране (даже в виде звездочек), он все-равно вводится!
  • Для выполнения графических конфигурационных утилит с sudo, просто запустите приложение через меню.
  • Для запуска программ через sudo, которые обычно запускаются под обычным пользователем (например gedit), нажмите Alt+F2 и введите gksudo gedit. В Kubuntu используйте вместо gksudo программу kdesu.
  • Использование sudo в командной строке:

Пример #1 - смена пользователя и группы для файлов в домашней папке пользователя

sudo chown bob:bob /home/bob/*

Пример #2 - перезапуск сетевых служб

sudo /etc/init.d/networking restart
  • Для запуска графических программ используйте gksudo или kdesu, иначе попытка входа может провалиться. Если это происходит и при входе вылазит ошибка: "Unable to read ICE authority file", войдите в безопасный терминал и выполните следующую команду, подставив своё имя пользователя:
rm /home/user/.{ICE,X}authority
  • Для запуска режима суперпользователя в терминале (root shell, т.е. командная строка, где вы можете выполнять команды под пользователем root), запустите терминал и выполните команду:
sudo -i     (эквивалент команды "sudo su -")
  • Для запуска режима суперпользователя, оставив текущие переменные окружения, введите:
sudo -s     (эквивалент команды "sudo su")
  • Вход под другим пользователем (для графического входа, используйте что-то типа gdmflexiserver):
sudo -i -u username

Разрешение другим пользователям использовать sudo

Чтобы разрешить пользователю использовать sudo, откройте Система → Администрирование → Пользователи и группы. Затем выберите пользователя и нажмите на кнопке Свойства. В появившемся окне зайдите на вкладку Привилегии пользователя и поставьте галочку Администрировать систему. /!\ Аналог этой же процедуры в терминале: sudo adduser $user admin, где $user - имя пользователя.

Преимущества использования sudo

Причины, по которым пользователь root отключен по умолчанию, заключаются в следующем:

  • Программа установки задаёт меньше вопросов.
  • Пользователям не нужно запоминать дополнительный пароль, который они могут забыть.
  • Перед тем как произойдёт выполнение команды, вас попросят ввести пароль. Это даст время подумать о возможных последствиях.
  • sudo добавляет в лог выполненные команды (/var/log/auth.log).
  • Все попытки взломщиков, пытающихся подобрать пароль к root, будут обречены на провал.
  • sudo позволяет легко предоставлять права администратора на долгий или короткий период другим пользователям, просто добавляя и удаляя их из группы, при этом не трогая корневую учетную запись.
  • sudo можно настроить с более fine-grained политикой безопасности.
  • Аутентификация автоматически истекает по окончании определенного промежутка времени.

Минусы использования sudo

Хотя выгода для использования sudo на персональных компьютерах велика, есть некоторые моменты, которые надо отметить:

  • Redirecting the output of commands run with sudo can catch new users out. For instance consider sudo ls > /root/somefile will not work since it is the shell that tries to write to that file. You can use `ls | sudo tee -a /root/somefile` to append, or `ls | sudo tee /root/somefile` to overwrite contents. You could also pass the whole command to a shell process run under sudo to have the file written to with root permissions, such as `sudo bash -c "ls > /root/somefile"`.
  • Во многих офисных системах только один локальный пользователь в системе root. Все остальные пользователи импортируются через NSS технологии, такие как nss-ldap. Для настройки рабочей станции в случае повреждения сети, при поломке nss-ldap, необходим root. This tends to leave the system unusable unless cracked. An extra local user, or an enabled root password is needed here.

Заблуждения

  • Разве sudo не менее безопасно, чет su?

Основая модель безопасности одинакова в обоих случаях, поэтому и уязвимость будет одинаковой. Любой пользователь, использующий su или sudo рассматривается как привилегированный пользователь. If that user's account is compromised attby an attacker, the attacker can also gain root privileges the next time the user does so. The user account is the weak link in this chain, and so must be protected with the same care as root. On a more esoteric level, `sudo` provides some features which encourage different work habits, which can positively impact the security of the system. `sudo` is commonly used to execute only a single command, while `su` is generally used to open a shell and execute multiple commands. The `sudo` approach reduces the likelihood of a root shell being left open indefinitely, and encourages the user to minimize their use of root privileges.

  • I won't be able to enter single-user mode!

The sulogin program in Ubuntu is patched to handle the default case of a locked root password.

  • Я могу получить права администратора из консоли без ввода пароля!

Вам потребуется ввести пароль для этого. Console users have access to the boot loader, and can gain administrative privileges in various ways during the boot process. For example, by specifying an alternate `init(8)` program. Linux systems are not typically configured to be secure at the console, and additional steps (for example, setting a root password, a boot loader password and a BIOS password) are necessary in order to make them so. Note that console users usually have physical access to the machine and so can manipulate it in other ways as well.

Возврат к традиционной учетной записи root

<!> Не рекомендуется это делать! Consider using the below command instead:

sudo -i

Использование этой команды временно откроет консоль с правами root. Активация аккаунта root в Ubuntu не поддерживается из-за ненадобности. Всё, что вам требуется сделать с правами администратора в Ubuntu можно сделать через sudo или gksudo. Если root включен, и вы хотите отключить его, откройте терминал и введите следующую команду:

sudo passwd -l root

Drag & Drop Sudo

Этот трюк взят из форумов. Создайте кнопку запуска со следующей командой:

gksudo "gnome-open %u"

Теперь при перетаскивании любого файла на эту кнопку, будет запущено ассоциированное с этим файлом приложение с привилегиями суперпользователя. Это особенно удобно при редактировании конфигурационных файлов.