1. Почему у вас нет пароля root
Хотя вы можете создать пароль для учетной записи суперпользователя, позволяющий войти в систему как пользователь root su
, стоит отметить, что это не обычный способ работы с Ubuntu (или все чаще и с другими дистрибутивами). Ubuntu по какой-то причине решил не давать логин и пароль root по умолчанию. Вместо этого при установке Ubuntu по умолчанию будет использоваться sudo
привилегия суперпользователя. При установке Ubuntu по умолчанию человеку, который установил ОС, по умолчанию предоставляется разрешение «sudo».
Любой, имеющий полное разрешение «sudo», может выполнить что-то «как суперпользователь», предварительно ожидая sudo
команды. Например, чтобы работать apt-get dist-upgrade
от имени суперпользователя, вы можете использовать:
sudo apt-get dist-upgrade
Такое использование sudo вы увидите практически везде, где читаете учебник по Ubuntu в Интернете. Это альтернатива этому.
su
apt-get dist-upgrade
exit
С помощью 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 /, это предупреждающий знак того, что вы делаете что-то не так.
chmod -R 777 whatever
, если только вы не хотите создать огромный риск для безопасности.