1. Чому у вас немає пароля root
Хоча ви можете створити пароль для облікового запису суперпользователя, що дозволяє вам увійти як root з допомогою su
, варто згадати, що це не звичайний спосіб робити з Ubuntu (або все частіше й іншими дистрибутивами). Ubuntu вирішив не наводити кореневих логін та пароль за замовчуванням з причини. Натомість установка Ubuntu за замовчуванням використовуватиметься sudo
для надання пільг суперпользователя. В установці Ubuntu за замовчуванням особі, яка встановила ОС, надається дозвіл "sudo" за замовчуванням.
Будь-хто з повним дозволом "судо" може виконати щось "як суперпользователь", попередньо очікуючи sudo
на їх командування. Наприклад, для запуску apt-get dist-upgrade
в якості суперпользователя ви можете використовувати:
sudo apt-get dist-upgrade
Ви побачите це використання судо майже де завгодно, коли ви прочитаєте навчальний посібник про Ubuntu в Інтернеті. Це альтернатива зробити це.
su
apt-get dist-upgrade
exit
За допомогою sudo ви заздалегідь вибираєте, які користувачі мають доступ до sudo. Не потрібно запам’ятовувати кореневий пароль, оскільки вони використовують власний пароль. Якщо у вас є декілька користувачів, ви можете відкликати доступ суперпользователя, просто видаливши їх дозвіл sudo, не потребуючи зміни кореневого пароля та повідомляти всіх про новий пароль. Ви навіть можете вибрати, які команди користувачеві дозволено виконувати за допомогою sudo, а які команди заборонені для цього користувача. І нарешті, якщо є порушення безпеки, в деяких випадках він може залишати кращий аудиторський слід, який показує, який обліковий запис користувача був порушений.
Судо полегшує виконання однієї команди з привілеями суперрусера. Завдяки цьому su
ви назавжди потрапляєте на оболонку суперрузера, яку потрібно вийти за допомогою exit
або logout
. Це може призвести до того, що люди перебувають у оболонці суперрусера довше, ніж потрібно, лише тому, що це зручніше, ніж виходити з системи та знову пізніше.
З судо у вас все ще є можливість відкрити постійну (інтерактивну) оболонку суперрузера з командою:
sudo su
... і це все ще можна зробити без будь-якого кореневого пароля, оскільки sudo
надає пільги суперпользователя su
команді.
І так само замість su -
оболонки для входу можна використовувати sudo su -
або її ярлик sudo -i
.
Однак, виконуючи це, вам просто потрібно усвідомлювати, що ви виступаєте як супер-користувач для кожної команди. Це хороший принцип безпеки - не залишатися суперпользователем довше, ніж потрібно, аби лише зменшити можливість випадкового заподіяння певної шкоди системі (без цього ви можете лише пошкодити файли, якими володіє ваш користувач).
Для уточнення ви можете , якщо вирішите, надати користувачеві 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
, якщо ви не хочете викликати величезний ризик для безпеки.