Як додати користувача до файлу Sudoers у Mac OS X
Зміст:
Досвідченим користувачам може знадобитися додати обліковий запис користувача до файлу sudoers, який дозволить цьому користувачеві виконувати певні команди з привілеями root.
Щоб суттєво спростити те, що це означає, ці нові привілейовані облікові записи користувачів зможуть виконувати команди, не отримуючи помилок відмови в дозволі або додаючи префікс sudo до команди терміналу. Це може бути корисним (або необхідним) у деяких складних ситуаціях, але створює загрозу безпеці для інших, тому це не те, що потрібно змінювати випадково.
Загалом, більшості користувачів краще використовувати обліковий запис адміністратора, використовувати sudo на основі кожної команди або ввімкнути користувача root. Незважаючи на це, безпосереднє модифікування sudoers має багато ситуацій використання для досвідчених людей із глибокими знаннями командного рядка, і саме для тих складніших ситуацій ми зосередимося на налаштуванні файлу sudoers, як описано тут.
Файл sudoers знаходиться в /etc/sudoers, але, на відміну від /etc/hosts і багатьох інших файлів конфігурації системи, ви не хочете вказувати на файл загального текстового редактора, щоб змінити його. Замість цього ви захочете використати спеціальну команду під назвою «visudo», яка підтверджує правильний синтаксис перед збереженням документа.
Важливо: Налаштування sudoers не призначене для більшості користувачів Mac OS X. Лише досвідчені користувачі, які мають для цього вагомі причини, повинні змінювати файл sudoers. Якщо ви не знаєте, що ви робите і чому ви це робите, не редагуйте файл sudoers і не додавайте користувачів до файлу sudoers.Це може становити загрозу безпеці, або ви можете щось зламати.
Додати користувача до Sudoers у Mac OS X
Для додавання користувачів до sudoers потрібне використання vi, що може бути досить заплутаним, якщо ви до цього не звикли. Для тих, хто не знайомий, ми окреслимо точні послідовності клавіш для редагування, вставки та збереження файлу у vi, уважно дотримуйтесь інструкцій.
- Запустіть термінал і введіть таку команду:
- Використовуйте клавіші зі стрілками, щоб перейти до розділу «Специфікація привілеїв користувача», він має виглядати так:
- Поставте курсор на наступний порожній рядок під записом %admin, а потім натисніть клавішу «A», щоб вставити текст, а потім введіть наступне в новому рядку, замінивши «ім’я користувача» коротким словом «користувачі» ім’я облікового запису, якому ви хочете надати повноваження (натисніть вкладку між ім’ям користувача та ALL):
- Тепер натисніть клавішу «ESC» (вихід), щоб припинити редагування файлу
- Натисніть клавішу : (двокрапка), а потім введіть «wq», а потім клавішу Return, щоб зберегти зміни та вийти з vi
sudo visudo
Специфікація привілеїв користувача root ALL=(ALL) ALL %admin ALL=(ALL) ALL
ім’я користувача ALL=(ALL) ALL
Приблизно так це має виглядати, на прикладі знімка екрана показано додане ім’я користувача «osxdaily»:
Все має бути готово, ви можете перейти до файлу sudoers, щоб переконатися, що файл було змінено:
cat /etc/sudoers
Використовуйте cat з grep, щоб швидко знайти ім’я користувача, якщо ви не хочете сканувати весь файл:
cat /etc/sudoers | grep ім'я користувача
Тепер, коли «ім’я користувача» додано до файлу sudoers, все готово.
Вирішення помилки «/etc/sudoers зайнято, повторіть спробу пізніше»
Якщо ви намагаєтеся змінити sudoers і отримуєте помилку «visudo: /etc/sudoers busy, try again later», це зазвичай означає, що файл уже відкрито іншим користувачем або нещасного випадку або через неправильне закриття visudo. Якщо ви користуєтеся багатокористувацьким комп’ютером, обов’язково порадьтеся з іншими користувачами, перш ніж робити щось далі, але, як правило, це не повинно траплятися часто на однокористувацькому комп’ютері. Важливо розрізняти ці два, оскільки якщо ви зіпсуєте файл sudoers, вас чекає цілий світ розчарувань, проблем і можливого відновлення ОС (або файлу sudoers) із резервних копій, вирішення яких виходить за рамки цієї статті. .
На комп’ютерах Mac для одного користувача ця помилка «sudoers busy» може виникнути після виходу з програми Terminal без виходу з vi, або якщо термінал або Mac OS X аварійно завершили роботу, або якщо файл зараз відкрито в іншій сесії. Рішення для останніх описаних випадків одноразової машини досить просте, і ви можете вирішити цю помилку, видаливши тимчасовий файл sudoers, який служить блокуванням:
sudo rm /etc/sudoers.tmp
Ви захочете зробити це, лише якщо ви впевнені, що інший користувач (або ви самі) активно не змінює файл локально чи віддалено. Оскільки налаштування sudoers загалом досить просунуте, ми припускаємо, що ви знаєте, що тут робите, але якщо ви не можете відстежити, що або чому відкрито sudoers, ви можете спробувати використати dtrace або opensnoop для моніторингу використання файлу.