При переходе на 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-----», то вам к нам.

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

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 и отключить/подключить автоматическую настройку.

Комментарии (12)


  1. maxru
    16.11.2015 15:46
    -2

    Подозреваю, что подобное явление у linux-юзеров проблем не вызовет вообще :)


    1. voooz
      16.11.2015 17:05
      -4

      У osx юзеров тоже таких проблем нет (у тех кто не стал ставить EL Capitan)


      1. maxru
        16.11.2015 17:26
        -1

        Я имею в виду mac-юзеров, которые в linux тоже могут.


  1. evg_krsk
    16.11.2015 16:24
    -4

    У любителей яблок в багтрекер не принято в таких случаях ходить?


    1. maxru
      16.11.2015 16:42
      +2

      Какой такой багтрекер? о_О


      1. dmitiybuldakov
        16.11.2015 18:00

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


  1. sl_bug
    16.11.2015 17:01
    +1

    Зачем это здесь? Проблемы с правами были только при работе с homebrew, но это быстро лечится.


    1. dmitiybuldakov
      16.11.2015 17:52

      Не только. Ребята недавно пообновлялись из стора и словили такое. Причем, у меня-то какраз права не посыпались. Хотя я обновлялся на второй день.


  1. M_Muzafarov
    16.11.2015 17:22
    -1

    Это что такое надо было сделать, чтобы sudo перестал работать?

    А первая помощь для диска в этом случае тоже не помогла? В single-user режиме.

    За способ с включением рута спасибо, но для статьи как-то несолидно.


    1. dmitiybuldakov
      16.11.2015 17:58
      +1

      Надо было чтобы програма установки доступ на /private/etc выдала только для рута, а права для других пользователей выдать забыла. В результате sudo не в состоянии получить доступ к файлу sudoers

      Видимо такое происходит в режиме полной утановки, хотя точнее я не отследил (ну как-то не до этого было).

      Дисковая утилита не помогла.

      Может и не солидно, но зато полезно. В инете ребята гуглили, но не нашли как починить, все больше отмазки, по поводу того что новая политика безопасности капитана, де не позволяет пользоваться судо.


  1. SilverTH
    16.11.2015 19:42

    Rootless вообще не должен etc трогать. Если совсем все плохо можно через Single User Mode зайти (зажать Cmd+S при включении, или флаг -s если используете Clover).


  1. Mnemonik
    16.11.2015 21:45

    Че-то какая-то прохладная история — переставил ОС буквально две недели назад (пересобрал fusion drive, поставил более вместительный ssd), ничего не восстанавливал, никаких time machine backup-ов не поднимал, просто поставил все начисто, и у меня права вполне нормальные.