Создание каталогов и файлов в /Library на os-x 10.8

Создание каталогов и файлов в /Library на os-x 10.8

Я хочу установить файлы в /Library/Python/2.7/site-packages на OS-X 10.8. Я вошел в систему как администратор, но все равно получаю ошибку «Отказано в доступе». Та же ошибка, когда я пытаюсь создать там каталог из терминала. У меня, по-видимому, нет разрешения на запись в корневую область. Как это исправить?

решение1

Вход в MacOSX как «администратор» дает вам разрешение на выполнение определенных привилегированных команд, но не делает вас пользователем root (ID пользователя 0 — суперпользователь). Каталог Python и почти все в /Library принадлежат и доступны для записи только пользователю root: Например:

mymac:Python kentalt$ ls -l
total 0
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.3
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.5
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.6
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.7
mymac:Python kentalt$ touch foo
touch: foo: Permission denied

Администратор может использовать sudo (выполнить команду от имени пользователя root) с переданными правами администратора:

mymac:Python kentalt$ sudo touch foo
Password:
mymac: Python kentalt$ ls -l
total 0
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.3
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.5
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.6
drwxr-xr-x  3 root  wheel  102 Jun 20  2012 2.7
-rw-r--r--  1 root  wheel    0 Jan 10 08:57 foo

Обратите внимание, что вам придется использовать sudo с каждой такой командой (если вы выполните несколько таких команд за короткий промежуток времени, она не будет запрашивать ваш пароль каждый раз):

mymac:Python kentalt$ rm foo
override rw-r--r--  root/wheel for foo? y
rm: foo: Permission denied
mymac:Python kentalt$ sudo rm foo
mymac:Python kentalt$ ls
2.3 2.5 2.6 2.7

Вы также можете изменить права доступа к каталогу, чтобы разрешить группе или всем писать в него, вместо того, чтобы выполнять все обслуживание как root — будьте осторожны, что изменение прав доступа может сломать некоторые программы или может быть отменено при обновлениях системы, хотя Python, вероятно, подойдет. Или добавьте символическую ссылку для site-packages в другое место в доступном для записи пользователем пространстве, чтобы вы четко отделяли свои обновления от поддерживаемых системой файлов.

Вы можете использовать "sudo bash" для запуска сеанса оболочки как root. Это очень, очень опасно, потому что root может делать практически все, и ему может даже не потребоваться проверка работоспособности перед удалением всей вашей системы, например, "rm -rf . /*" (опечатка, которую каждый старый администратор unix делал по крайней мере один раз).

Связанный контент