Как стать автором
Обновить

Восстанавливаем права доступа под Mac OS X — EL Capitan

Время на прочтение2 мин
Количество просмотров34K
При переходе на El Capitan ряд пользователей столкнулся с проблемами прав доступа — неработающее sudo, некорректная timezone, etc…

Корнем зла является урезанный доступ к /private/etc.

Для начала, вам, стоит проверить свой. Откройте Terminal (это можно сделать через Spotlight) и введите ls -la /private.

$ ls -la /private
total 0
drwxr-xr-x@   6 root  wheel   204 Oct  1 10:20 .
drwxr-xr-x   33 root  wheel  1190 Nov  4 15:56 ..
drwxr-xr-x  106 root  wheel  3604 Nov 13 18:04 etc
drwxr-xr-x    2 root  wheel    68 Aug 23 02:28 tftpboot
drwxrwxrwt   14 root  wheel   476 Nov 16 10:55 tmp
drwxr-xr-x   25 root  wheel   850 Nov  4 17:02 var
$ 

Вот так «drwxr-xr-x» и должны выглядеть права на etc. Если они выглядят больше похожими на «drwx-----», то вам к нам.


Казалось бы — всего-то дел — восстановить права доступа: Spotlight -> DiskUtility -> FirstAid… а где же теперь Repair Permission?

Как оказалось, эта опция больше недоступна через GUI.

Однако как подсказывает нам Google (например — osxdaily.com/2015/11/04/verify-repair-permissions-mac-os-x ), это всё ещё можно сделать через командную строку:
sudo /usr/libexec/repair_packages --repair --standard-pkgs /

Таким образом, всё что нам нужно чтобы восстановить работоспособность sudo это… работающее sudo! Несколько иронично, не так ли?

Тем не менее — выход есть.

Для того, чтобы починить права необходимо:

1. залогиниться пользователем с правами администратора
2. получить доступ к пользователю root
3. изменить права доступа на папку /private/etc

1. залогиниться пользователем с правами администратора
С первым пунктом я вам ничем не помогу. Если ваша учетная запись уже имеет права администратора — используйте её. Если нет — найдите своего администратора.

2. получить доступ к пользователю root

Для того, чтобы получить доступ к root запустите приложение «Directory Utility». Я бы рекомендовал открывать его через Spotlight.

После запуска программы кликните на замок и введите пароль своего пользователя чтобы «Directory Utility» позволил вам внести изменения.

Зайдите в меню Edit. Если у вас есть пункт «Enable Root User» начните с него. Если же вместо этого пункта вы видите «Disable Root User», то сразу же выбирайте «Change Root Password...»

Введите пароль и повторите его для контроля. Приличные люди не используют для root тот же пароль, что и для своего обычного пользователя.

3. изменить права доступа на папку /private/etc

Запустите Terminal (это, опять таки, можно сделать через Spotlight).
Введите команду su.

При вводе этой команды система запросит у вас пароль. Надо вести пароль root пользователя. Именно тот, который вы установили на втором шаге, а не ваш обычный пароль.

$ su
Password:

Если вы ввели его верно, то у вас появится приглашение командной строки с решеткой на конце. Что-то вроде:

$ su
Password:
bash-3.2#

Итак, мы всего в одном шаге от успеха. Осталось изменить права доступа и проверить результат. Для изменения прав используйте команду «chmod aug+rx /private/etc». Для проверки результата — ls -la /private

$ su
Password:
bash-3.2# chmod aug+rx /private/etc
bash-3.2# ls -la /private
total 0
drwxr-xr-x@   6 root  wheel   204 Oct  1 10:20 .
drwxr-xr-x   33 root  wheel  1190 Nov  4 15:56 ..
drwxr-xr-x  106 root  wheel  3604 Nov 13 18:04 etc
drwxr-xr-x    2 root  wheel    68 Aug 23 02:28 tftpboot
drwxrwxrwt   14 root  wheel   476 Nov 16 11:18 tmp
drwxr-xr-x   25 root  wheel   850 Nov  4 17:02 var
bash-3.2# 

Наслаждайтесь!

P.S.: Для пользователей, которые испытывали проблемы с timezone, я бы посоветовал еще раз зайти в настройки через SystemPrefernces и отключить/подключить автоматическую настройку.
Теги:
Хабы:
Всего голосов 22: ↑12 и ↓10+2
Комментарии13

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань