su Admin в Mac OS X не работает должным образом

4472
Justin Mrkva

Я пытаюсь установить PostgreSQL на Mac OS 10.6.4, и мне нужно пройти аутентификацию от имени администратора. В командной строке у меня есть:

su
Пароль администратора :
shell-init: ошибка при получении текущего каталога: getcwd: невозможно получить доступ к родительским каталогам: разрешение запрещено

Мой пользователь - это стандартная (не администраторская) учетная запись, Admin - учетная запись администратора, а каталог, в котором я работаю, когда выполняю команду su, находится в папке «Загрузки». Если я сделаю 'su-Admin', то это сработает, но я не смогу получить доступ к необходимым файлам! Однако 'su Admin' должен работать, потому что он оставляет среду неизменной.

Как мне это сделать?

0

2 ответа на вопрос

1
Scott

Имеет ли пользователь Admin по крайней мере права на чтение и внесение в список (выполнение) доступа к вашему каталогу загрузок и домашнему каталогу? Помните, что в Mac OS X учетные записи администратора не являются пользователем root (который по умолчанию отключен ) и, следовательно, ограничены правами доступа к файлам, как и другие простые пользователи.

Однако учетные записи администраторов являются sudoers, что позволяет им принимать на себя многие полномочия root, но это должно быть явно запрошено в каждом конкретном случае - обычно с sudo. Если ваша su Adminоболочка все еще работает после сообщения об ошибке, попробуйте сделать sudo ls- она ​​должна работать так, как если бы она работала как пользователь root. Просто lsне будет, если у администратора нет доступа к этому каталогу.

Ответ заключается в том, чтобы предоставить администратору доступ к любым каталогам в вашей домашней папке, к которым вы хотите иметь доступ. Либо сделайте это в Finder с Get Info, либо используйте chmod.

Я использовал sudo ls, и это сработало. Тем не менее, я попытался выполнить установку, используя 'sudo' перед каждой командой, но она все равно не удалась (не удалось найти текущий рабочий каталог ни для одного из сценариев). Я просто сделал это из учетной записи администратора. Justin Mrkva 13 лет назад 0
-2
Jay

Включить root . Затем:

su root 

                      

Результаты в "Су: Извините" Justin Mrkva 13 лет назад 0
@ jfm429, вам, возможно, придется сначала включить root. Я обновил свой ответ ссылкой на Snow Leopard. Какую версию OSX вы используете? Jay 13 лет назад 0
Я действительно не хочу включать root. Это совершенно другая тема, но мне нужно иметь возможность использовать PostgreSQL для приложения, но не заставлять пользователей прыгать через обручи, чтобы использовать его. Я, вероятно, собираюсь использовать SQLite для локальной базы данных, а затем иметь возможность синхронизации с PostgreSQL ... Justin Mrkva 13 лет назад 1
@ jfm429, вы можете использовать root для правильной установки БД и установки разрешений, а затем отключить root. Jay 13 лет назад 0
Это побеждает точку; опять же, это должен быть процесс, доступный конечному пользователю. Пока что проблема, с которой я столкнулся в PostgreSQL, заключается в том, что ее просто невероятно сложно установить. Единственный установочный пакет требует редактирования настроек ядра, которые приложения никогда не должны изменять. Justin Mrkva 13 лет назад 0
У меня никогда не было проблем с установкой PostgreSQL. Любой пользователь должен иметь возможность установить его у себя дома / без проблем и без учетной записи администратора или root. Jay 13 лет назад 0
У вас есть список команд, необходимых для этого, включая настройку? Я пытался, но в итоге получил кучу ошибок; Я не могу вспомнить, какие из них. Justin Mrkva 13 лет назад 0
@ jfm429, я думаю ./configure && make сработал для меня. Я думаю, что есть бинарные дистрибутивы для OSX, которые тоже должны работать. Если вы получаете ошибки, вы можете опубликовать новый вопрос. Jay 13 лет назад 0