Відповіді:
У MacOS X кореневий користувач за замовчуванням відключений, тому suпрацювати не буде. Як заявили інші, найкраще використовувати sudo.
Якщо ви повинні дозволити користувачеві кореня, см TechNote від Apple: Включення і використання «кореневого» користувача в Mac OS X .
sudo su, який тоді сенс відключення su?
su", це у запобіганні кореневого входу . Якщо заборонити вхід у систему root, ви запобігаєте купу можливих проблем із безпекою. Чи не дозволяючи кому - то , хто може sudoна suце свого роду нерозумно. В основному, suпросто змінює поточний ідентифікатор користувача та виконує команду (оболонку, якщо вона не вказана). Якщо ідентифікатор користувача вже 0 (root), наприклад, коли він виконується з sudo, йому нічого робити, тому він просто виконує оболонку. Подібний ефект можна отримати, роблячи sudo bash.
У вас є два варіанти. Перше - використовувати sudo -s- це надасть вам доступ суперпользователя, але ви все одно залишатиметесь "самим собою" (так би мовити), тому такі речі, як ~і раніше, будуть вашим домашнім каталогом. Крім того, ви можете використовувати sudo su, що дає вам оболонку як фактичного кореневого користувача вашого Mac.
sudoдля запуску команд, які потребують підвищених привілеїв, а не переходити на кореневу оболонку і працювати з цього.
sudoетос до крайності. Але що б там не було: семантика. Не використовуйте кореневі оболонки в ОС X.
Наприклад, якщо вам потрібно перемістити файли або використовувати git за допомогою CLI, тоді в цьому випадку найкращим рішенням буде використання sudo -sкоманди. Після цієї команди вам не потрібно вводити пароль знову і знову.
Я думаю, ви не можете зробити це як "звичайний" користувач ...
Якщо є інший обліковий запис користувача з правами адміністратора, ви повинні використовувати цей
restricted user$ su
Password:(the root password here)
Sorry!
restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now
sudo -uДля запуску як іншого використання використовуйте sudo -u.
Наприклад, запустити текстовий редактор, такий як nano :
sudo -u someuser nano
… Та введіть пароль свого адміністратора Mac при появі запиту. На цьому етапі викликає ваш адміністратор Mac sudo, а не someuserкористувач, щоб не вводити someuserпароль.
sudo означає запустити щось, використовуючи привілеї суперпользователя.-u означає "запустити вказану команду як зазначений користувач".someuser слід замінити на потрібне ім’я користувача.Для імітації початкового входу як конкретного користувача, включаючи виконання їх сценаріїв запуску, використовуйте -I.
sudo -u someuser -i nano
Це запускає nanoдодаток як користувач, someuserале лише після запуску сценаріїв запуску для цього користувача.
Якщо ми вирішимо не вказати команду чи додаток для запуску, ми отримаємо інтерактивну оболонку, що працює як цей користувач.
sudo -u someuser -i
sudo su someuserІнший підхід використовує suкоманду в поєднанні з sudo. suКоманда означає "Змінити користувача".
sudo su someuser
Або для включення запуску сценаріїв запуску користувача додайте дефіс.
sudo su - someuser
root користувачrootКористувача в Unix-подібної операційної системи мають абсолютну владу , щоб зробити що - небудь.
Apple вирішила вимкнути rootобліковий запис у macOS, щоб уникнути подвигів безпеки вразливості та захистити вас від стрілянини в ногу. Apple створила ідею облікових записів користувачів адміністратора, які мають багато повноважень, більше повноважень, ніж звичайний обліковий запис користувача, але не абсолютної потужності, як це rootмає. Дивіться цю ноту підтримки Apple для обговорення.
Якщо потрібно, ви можете ввімкнути rootкористувача в macOS, а потім перейти до цього користувача. Це сильно не рекомендується. Я б пішов цією стежкою лише в крайньому відчайдушному випадку.
Для обговорення цього питання в контексті postgresкористувача, який запускає систему баз даних Postgres на macOS, див. Це запитання на сестринському сайті DBA Stack Exchange .
sudo suяк і раніше працює, тому він насправді не відключений. У нього просто немає пароля.