Я установил Ubuntu с помощью графического интерфейса, давая себе пароль и все. Я не запутанно запомнил процесс. Однако меня беспокоит то, что я не знаю следующий пароль:
$ su
Password: <the only password I've ever created on this machine>
su: Authentication failure
Я просто не знаю, что делать. У меня нет проблем, но я просто хочу знать, что здесь происходит. Я также могу заблокировать себя из каталогов:
starkers@ubuntu:~/Desktop$ mkdir foobs
starkers@ubuntu:~/Desktop$ sudo chmod 777 -R foobs
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
[sudo] password for starkers: <the only password I've ever created on this machine>
starkers@ubuntu:~/Desktop$ cd foobs
bash: cd: foobs: Permission denied
Я просто немного смущен. Как я могу запереть себя таким образом? Я думаю, что sudo
это ключевая команда здесь. Но я делаю foobs
файл настолько открытым, насколько это возможно, через chmod
, так почему он блокирует меня?
chmod -R 777 whatever
, если только вы не хотите создать огромный риск для безопасности.666
?chmod
изменить только те файлы, которые вы намеревались./var/lib/sudo
она доступна для записи. Этого не должно быть, и вы должны попытаться выяснить, почему это произошло.Ответы:
По умолчанию
root
учетная запись superuser ( ) отключена и не имеет пароля. Вы можете создать его, запустив:После этого вы сможете войти в систему как root, запустив
su
этот пароль.Что касается
chmod
, правильная команда будет:Вы также можете использовать:
войти в систему как root, используя свой пароль (без создания пароля root, как описано выше).
источник
sudo su
. Это также дает постоянные права su в терминале.sudo su
, поскольку это будет ввернуть в окружающую среду, и вещи сломаются. вместо этого используйтеsudo -i
.1. Почему у вас нет пароля root
Хотя вы можете создать пароль для учетной записи суперпользователя, позволяющий войти в систему как пользователь root
su
, стоит отметить, что это не обычный способ работы с Ubuntu (или все чаще и с другими дистрибутивами). Ubuntu по какой-то причине решил не давать логин и пароль root по умолчанию. Вместо этого при установке Ubuntu по умолчанию будет использоватьсяsudo
привилегия суперпользователя. При установке Ubuntu по умолчанию человеку, который установил ОС, по умолчанию предоставляется разрешение «sudo».Любой, имеющий полное разрешение «sudo», может выполнить что-то «как суперпользователь», предварительно ожидая
sudo
команды. Например, чтобы работатьapt-get dist-upgrade
от имени суперпользователя, вы можете использовать:Такое использование sudo вы увидите практически везде, где читаете учебник по Ubuntu в Интернете. Это альтернатива этому.
С помощью sudo вы заранее выбираете, какие пользователи имеют доступ к sudo. Им не нужно запоминать пароль root, так как они используют свой собственный пароль. Если у вас несколько пользователей, вы можете отозвать права суперпользователя, просто удалив их разрешение sudo, без необходимости изменять пароль root и уведомлять всех о новом пароле. Вы даже можете выбрать, какие команды пользователю разрешено выполнять с помощью sudo, а какие команды запрещены для этого пользователя. И, наконец, в случае нарушения безопасности в некоторых случаях можно оставить лучший контрольный журнал, показывающий, какая учетная запись пользователя была взломана.
Sudo упрощает выполнение одной команды с привилегиями суперпользователя. С помощью
su
вы навсегда перейдете в оболочку суперпользователя, которую необходимо закрыть с помощьюexit
илиlogout
. Это может привести к тому, что люди будут оставаться в оболочке суперпользователя дольше, чем необходимо, только потому, что это удобнее, чем выход из системы и повторный вход позже.С помощью sudo у вас все еще есть возможность открыть постоянную (интерактивную) оболочку суперпользователя с помощью команды:
... и это все еще можно сделать без какого-либо пароля root, потому что
sudo
дает привилегии суперпользователя дляsu
команды.И аналогично, вместо
su -
оболочки входа в систему вы можете использоватьsudo su -
или ее ярлыкsudo -i
.Однако при этом вам просто нужно знать, что вы действуете как суперпользователь для каждой команды. Это хороший принцип безопасности - не оставаться суперпользователем дольше, чем это необходимо, просто чтобы уменьшить вероятность случайного повреждения системы (без него вы можете повредить только файлы, которыми владеет ваш пользователь).
Просто чтобы уточнить, вы можете , если вы решите, дать пользователю root пароль, позволяющий входить в систему как root, как описано в ответе @ Oli, если вы специально хотите сделать что-то подобное. Я просто хотел сообщить вам о соглашении Ubuntu о предпочтениях
sudo
вместо этого и дать вам знать, что есть альтернатива.2. Проблемы с вашей командой chmod 777 -R
Ваш вопрос также имеет вторую часть: ваши проблемы с командой
sudo chmod 777 -R foobs
.Во-первых, следующее предупреждение указывает на потенциально серьезную проблему безопасности на вашем компьютере:
Это означает, что на каком-то этапе вы настроены
/var/lib/sudo
на написание всего мира. Я полагаю, что вы сделали это на каком-то этапе с помощью команды вродеsudo chmod 777 -R /
. К сожалению, сделав это, вы, вероятно, в значительной степени нарушили все права доступа к файлам в вашей системе. Маловероятно, что это будет единственный важный системный файл, права доступа которого были изменены, чтобы его можно было переписать. По сути, теперь у вас есть легко взломанная система, и единственный простой способ вернуть ее - это переустановить.Во-вторых, команда, которую вы использовали:
При манипулировании файлами в вашем домашнем каталоге, в этом случае
~/Desktop
, вы не должны использоватьsudo
. Все файлы, которые вы создаете в своем домашнем каталоге, должны быть изменены вами в любом случае (а если нет, то происходит что-то смешное).Кроме того, вам необходимо полностью осознавать последствия массового изменения прав доступа к файлам, например, делать это рекурсивно или для огромного количества файлов. В этом случае вы меняете тщательно настроенные права доступа к файлам, чтобы они были доступны для записи. Любой другой пользователь или любое ошибочное серверное программное обеспечение на компьютере может иметь легкий доступ для перезаписи всех этих файлов и каталогов.
Почти наверняка
chmod 777 -R [dir]
это не подходящее решение для любой проблемы, которую вы пытались решить (и, как я уже упоминал выше, есть доказательства того, что вы сделали это и с системными файлами в / var / lib, и я предполагаю, что многие другие места).Пара основных правил:
Если вы просто возитесь с вашими собственными файлами в домашнем каталоге, на рабочем столе и т. Д., Вам никогда не нужно использовать
sudo
права суперпользователя. Если вы это сделаете, это предупреждающий знак, что вы делаете что-то не так.Вы никогда не должны вручную изменять системные файлы, принадлежащие пакетам. Исключение: если вы не делаете это специально способами, задокументированными этими пакетами, такими как изменение их конфигурации в
/etc
. Это относится и к изменению прав доступа к файлам. Если учебник или попытка исправить проблему требуютsudo
или прав суперпользователя, и это не просто изменение конфигурации в / etc /, это предупреждающий знак того, что вы делаете что-то не так.источник
sudo -i
болееsudo su
.sudo -i
(илиsudo su -
) не всегда лучше, но просто разные - они запускают оболочку входа в систему, которая имитирует среду входа в систему пользователя root, которая выполняет, например,.profile
файл или.login
файл пользователя root. Это лучше, если вы хотите, чтобы среда в оболочке была больше похожа на корневую оболочку входа в систему, чем на интерактивную оболочку с привилегиями суперпользователя. Это, вероятно , лучше использовать для входа на основе оболочек при использовании оболочки, но это тоо: точка ответа заключается в том, что Ubuntu в основном предназначен для использованияsudo
для выполнения команд с привилегиями суперпользователя.