При переходе на El Capitan ряд пользователей столкнулся с проблемами прав доступа — неработающее sudo, некорректная timezone, etc…
Корнем зла является урезанный доступ к /private/etc.
Для начала, вам, стоит проверить свой. Откройте Terminal (это можно сделать через Spotlight) и введите ls -la /private.
Вот так «drwxr-xr-x» и должны выглядеть права на etc. Если они выглядят больше похожими на «drwx-----», то вам к нам.
Казалось бы — всего-то дел — восстановить права доступа: Spotlight -> DiskUtility -> FirstAid… а где же теперь Repair Permission?
Как оказалось, эта опция больше недоступна через GUI.
Однако как подсказывает нам Google (например — osxdaily.com/2015/11/04/verify-repair-permissions-mac-os-x ), это всё ещё можно сделать через командную строку:
Таким образом, всё что нам нужно чтобы восстановить работоспособность 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 пользователя. Именно тот, который вы установили на втором шаге, а не ваш обычный пароль.
Если вы ввели его верно, то у вас появится приглашение командной строки с решеткой на конце. Что-то вроде:
Итак, мы всего в одном шаге от успеха. Осталось изменить права доступа и проверить результат. Для изменения прав используйте команду «chmod aug+rx /private/etc». Для проверки результата — ls -la /private
Наслаждайтесь!
P.S.: Для пользователей, которые испытывали проблемы с timezone, я бы посоветовал еще раз зайти в настройки через SystemPrefernces и отключить/подключить автоматическую настройку.
Корнем зла является урезанный доступ к /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 и отключить/подключить автоматическую настройку.