1. Почему у вас нет пароля root
Пока ты мочь создайте пароль для учетной записи суперпользователя, позволяющий вам входить в систему как root с помощью su
, стоит отметить, что это не обычный способ работы с Ubuntu (или, все чаще, с другими дистрибутивами). Ubuntu выбрала нет чтобы указать логин и пароль root по умолчанию по какой-то причине. Вместо этого при установке Ubuntu по умолчанию будет использоваться sudo
чтобы предоставить привилегии суперпользователя. При установке Ubuntu по умолчанию пользователю, установившему ОС, по умолчанию предоставляется разрешение "sudo".
Любой, у кого есть полное разрешение "sudo", может выполнить что-то "как суперпользователь", предварительно отложив sudo
к их командованию. Например, для запуска apt-get dist-upgrade
как суперпользователь, вы могли бы использовать:
sudo apt-get dist-upgrade
Вы увидите это использование sudo практически везде, где читаете учебник по Ubuntu в Интернете. Это альтернатива тому, чтобы делать это.
suapt-get dist-upgradeexit
С помощью sudo вы заранее выбираете, какие пользователи имеют доступ к sudo. Им нет необходимости запоминать пароль root, так как они используют свой собственный пароль. Если у вас несколько пользователей, вы можете отозвать доступ суперпользователя, просто удалив его разрешение sudo, без необходимости менять пароль root и уведомлять всех о новом пароле. Вы даже можете выбрать, какие команды пользователю разрешено выполнять с помощью sudo, а какие команды запрещены для этого пользователя. И, наконец, если есть нарушение безопасности, это может в некоторых случаях оставить лучший контрольный журнал, показывающий, какая учетная запись пользователя была скомпрометирована.
Sudo упрощает выполнение одной команды с правами суперпользователя. С su
, вы постоянно переходите в оболочку суперпользователя, из которой необходимо выйти с помощью exit
или logout
. Это может привести к тому, что люди останутся в оболочке суперпользователя дольше, чем необходимо, просто потому, что это удобнее, чем выходить из системы и входить в нее позже.
С помощью sudo у вас все еще есть возможность открыть постоянную (интерактивную) оболочку суперпользователя с помощью команды:
sudo su
... и это все равно можно сделать без какого-либо пароля root, потому что sudo
предоставляет привилегии суперпользователя для su
команда.
И точно так же, вместо su -
для оболочки входа в систему вы можете использовать sudo su -
или его короткий путь sudo -i
.
Однако при этом вам просто нужно знать, что вы действуете как суперпользователь для каждой команды. Это хороший принцип безопасности - не оставаться суперпользователем дольше, чем необходимо, просто чтобы уменьшить вероятность случайного нанесения некоторого ущерба системе (без этого вы можете повредить только файлы, принадлежащие вашему пользователю).
Просто чтобы уточнить, вы мочь, если вы решите, дайте пользователю root пароль, разрешающий вход в систему от имени root, как описано в ответе @ Oli, если вы специально хотите сделать это таким образом. Я просто хотел сообщить вам о соглашении Ubuntu о предпочтении sudo
вместо этого и сообщу вам, что есть альтернатива.
2. Проблемы с вашей командой chmod 777 -R
В вашем вопросе также есть вторая часть: ваши проблемы с командой sudo chmod 777 -R foobs
.
Во-первых, следующее предупреждение указывает на потенциально серьезную проблему безопасности на вашем компьютере:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
Это означает, что на каком-то этапе вы установили /var/lib/sudo
чтобы быть доступным для записи во всем мире. Я предполагаю, что вы сделали это на каком-то этапе, используя команду типа sudo chmod 777 -R /
. К сожалению, сделав это, вы, вероятно, в значительной степени нарушили все права доступа к файлам в вашей системе. Маловероятно, что это будет единственный важный системный файл, права доступа к которому были изменены на доступные для записи во всем мире. По сути, теперь у вас есть легко взламываемая система, и единственный простой способ вернуть ее - это переустановить.
Во-вторых, команда, которую вы использовали:
sudo chmod 777 -R foobs
При работе с файлами в вашем домашнем каталоге, в данном случае в ~/Desktop
, вам не нужно использовать sudo
. Все файлы, которые вы создаете в своем домашнем каталоге, в любом случае должны быть изменены вами (а если нет, то происходит что-то забавное).
Кроме того, вы должны быть полностью осведомлены о последствиях массового изменения прав доступа к файлам, например, делать это рекурсивно или для огромного количества файлов. В этом случае вы меняете тщательно настроенные права доступа к файлам, чтобы они были доступны для записи во всем мире. Любой другой пользователь или любое глючное серверное программное обеспечение на компьютере может иметь легкий доступ для перезаписи всех этих файлов и каталогов.
Почти наверняка, что chmod 777 -R [dir]
это нет подходящее решение для любой проблемы, которую вы пытались решить (и, как я упоминал выше, есть доказательства того, что вы сделали это и с системными файлами в / var / lib, и я предполагаю, что во многих других местах).
Несколько основных эмпирических правил:
Если вы просто возитесь со своими собственными файлами в домашнем каталоге, на рабочем столе и т.д., Вам никогда не нужно использовать sudo
или права суперпользователя. Если вы это сделаете, это предупредительный знак того, что вы делаете что-то не так.
Вы никогда не должны вручную изменять системные файлы, принадлежащие пакетам. Исключение: если вы не делаете это специально способами, задокументированными этими пакетами, например, путем изменения их конфигурации в /etc
. Это относится также к изменению прав доступа к файлам. Если учебное пособие или попытка устранить проблему требуют sudo
или права суперпользователя, и это не просто изменение конфигурации в /etc/, это предупреждающий знак о том, что вы делаете что-то не так.