⇤ ← Revision 1 as of 2007-05-06 13:48:28
Size: 11146
Comment:
|
Size: 12965
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 15: | Line 15: |
* Несмотря на то, что при вводе пароль не отображается на экране (даже в виде звездочек (*****)), он все-равно вводится ! | * Несмотря на то, что при вводе пароль не отображается на экране (даже в виде звездочек), он все-равно вводится! |
Line 19: | Line 19: |
''Пример #1'' | ''Пример #1'' - смена пользователя и группы для файлов в домашней папке пользователя |
Line 23: | Line 23: |
''Пример #2'' | ''Пример #2'' - перезапуск сетевых служб |
Line 27: | Line 27: |
* Для запуска графических программ используйте {{{gksudo}}} или {{{kdesu}}}, иначе попытка залогинивания может провалиться. Если это происходит и при залогинивании вылазит ошибка: "Unable to read ICE authority file", войдите в безопасный терминал и выполните следующую команду, подставив своё имя пользователя: | * Для запуска графических программ используйте {{{gksudo}}} или {{{kdesu}}}, иначе попытка входа может провалиться. Если это происходит и при входе вылазит ошибка: "Unable to read ICE authority file", войдите в безопасный терминал и выполните следующую команду, подставив своё имя пользователя: |
Line 31: | Line 31: |
* To start a ''root shell'' (i.e. a command window where you can run root commands), starting root's environment and login scripts, use: | * Для запуска режима суперпользователя в терминале (''root shell'', т.е. командная строка, где вы можете выполнять команды под пользователем root), запустите терминал и выполните команду: |
Line 33: | Line 33: |
sudo -i (equivalent to sudo su -) | sudo -i (эквивалент команды "sudo su -") |
Line 35: | Line 35: |
* To start a ''root shell'', but keep the current shell's environment, use: | * Для запуска режима суперпользователя, оставив текущие переменные окружения, введите: |
Line 37: | Line 37: |
sudo -s (equivalent to sudo su) | sudo -s (эквивалент команды "sudo su") |
Line 39: | Line 39: |
* To login as another user (on the command line, use something like gdmflexiserver for a graphical login) | * Вход под другим пользователем (для графического входа, используйте что-то типа gdmflexiserver): |
Line 44: | Line 44: |
== Allowing other users to run sudo == | == Разрешение другим пользователям использовать sudo == |
Line 46: | Line 46: |
To add a new user to sudo, open the '''Users and Groups''' tool from {{{System --> Administration}}} menu. Then click on the user and then on properties. Choose the '''User Privileges''' tab. In the tab, find '''Executing system administration tasks''' and check that. | Чтобы разрешить пользователю использовать sudo, откройте '''Система → Администрирование → Пользователи и группы'''. Затем выберите пользователя и нажмите на кнопке '''Свойства'''. В появившемся окне зайдите на вкладку '''Привилегии пользователя''' и поставьте галочку '''Администрировать систему'''. |
Line 48: | Line 48: |
/!\ In the terminal this would be: {{{sudo adduser $user admin}}}, where you replace $user with the name of the user. | /!\ Аналог этой же процедуры в терминале: {{{sudo adduser $user admin}}}, где $user - имя пользователя. |
Line 50: | Line 50: |
== Benefits of using sudo == | == Преимущества использования sudo == |
Line 52: | Line 52: |
The benefits of leaving '''root''' disabled by default include the following: | Причины, по которым пользователь '''root''' отключен по умолчанию, заключаются в следующем: |
Line 54: | Line 54: |
* The installer has to ask fewer questions * Users don't have to remember an extra password, which they are likely to forget * It avoids the "I can do ''anything''" interactive login by default -you will be prompted for a password before major changes can happen, which should make you think about the consequences of what you are doing. * Sudo adds a log entry of the command(s) run (In {{{/var/log/auth.log}}}). If you mess up, you can always go back and see what commands were run. It is also nice for auditing. * Every cracker trying to ''brute-force'' their way into your box will know it has an account named ''root'' and will try that first. What they don't know is what the usernames of your other users are. * Allows easy transfer for admin rights, in a short term or long term period, by adding and removing users from groups, while not compromising the ''root'' account. * sudo can be setup with a much more fine-grained security policy * The authentication automatically expires after a short time (which can be set to as little as desired or 0); so if you walk away from the terminal after running commands as root using sudo, you will not be leaving a root terminal open indefinitely. |
* Программа установки задаёт меньше вопросов. * Пользователям не нужно запоминать дополнительный пароль, который они могут забыть. * Перед тем как произойдёт выполнение команды, вас попросят ввести пароль. Это даст время подумать о возможных последствиях. * sudo добавляет в лог выполненные команды ({{{/var/log/auth.log}}}). * Все попытки взломщиков, пытающихся подобрать пароль к '''root''', будут обречены на провал. * sudo позволяет легко предоставлять права администратора на долгий или короткий период другим пользователям, просто добавляя и удаляя их из группы, при этом не трогая корневую учетную запись. * sudo можно настроить с более fine-grained политикой безопасности. * Аутентификация автоматически истекает по окончании определенного промежутка времени. |
Line 63: | Line 63: |
== Downsides of using sudo == | == Минусы использования sudo == |
Line 65: | Line 65: |
Although for desktops the benefits of using sudo are great, there are possible issues which need to be noted: | Хотя выгода для использования sudo на персональных компьютерах велика, есть некоторые моменты, которые надо отметить: |
Line 68: | Line 68: |
* In a lot of office environments the ONLY local user on a system is root. All other users are imported using NSS techniques such as nss-ldap. To setup a workstation, or fix it, in the case of a network failure where nss-ldap is broken, root is required. 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. |
Line 70: | Line 70: |
== Misconceptions == | == Заблуждения == |
Line 74: | Line 74: |
The basic security model is the same, and therefore these two systems share their primary weaknesses. Any user who uses `su` '''or''' `sudo` must be considered to be a privileged user. If that user's account is compromised by 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. |
Line 88: | Line 88: |
== Going back to a traditional root account == | == Возврат к традиционной учетной записи root == |
Line 90: | Line 90: |
<!> '''This is not recommended!''' | <!> '''Не рекомендуется это делать!''' |
Line 99: | Line 99: |
If the root account is enabled and you wish to disable it, open a terminal and issue the following command: | Если root включен, и вы хотите отключить его, откройте терминал и введите следующую команду: |
Line 108: | Line 108: |
This is a trick from the [http://www.ubuntuforums.org/showthread.php?t=24008 forums]. | Этот трюк взят из [http://www.ubuntuforums.org/showthread.php?t=24008 форумов]. |
Line 110: | Line 110: |
Create a [:HowToAddaLauncher:launcher] with the following command: | Создайте кнопку [:HowToAddaLauncher:запуска] со следующей командой: |
Line 114: | Line 114: |
When you drag and drop any file on this launcher (it's useful to put it on the desktop or on a panel), it will be opened as root with its own associated application. This is helpful especially when you're editing config files owned by root, since they will be opened as read only by default with gedit, etc. ---- CategorySecurity |
Теперь при перетаскивании любого файла на эту кнопку, будет запущено ассоциированное с этим файлом приложение с привилегиями суперпользователя. Это особенно удобно при редактировании конфигурационных файлов. |
СодержаниеBRTableOfContents |
В 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.
Заблуждения
Isn't sudo less secure than su?
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.
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.
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.
- You have to enter your password.
Возврат к традиционной учетной записи root
Не рекомендуется это делать!
Consider using the below command instead:
sudo -i
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 включен, и вы хотите отключить его, откройте терминал и введите следующую команду:
sudo passwd -l root
Drag & Drop Sudo
Этот трюк взят из [http://www.ubuntuforums.org/showthread.php?t=24008 форумов].
Создайте кнопку [:HowToAddaLauncher:запуска] со следующей командой:
gksudo "gnome-open %u"
Теперь при перетаскивании любого файла на эту кнопку, будет запущено ассоциированное с этим файлом приложение с привилегиями суперпользователя. Это особенно удобно при редактировании конфигурационных файлов.