Python: проверка подлинности NFS - PullRequest
0 голосов
/ 20 марта 2011

Folks, Я считаю, что у меня есть два вопроса: один специфический для Python, а другой - NFS.

Суть в том, что моя программа получает «username», «uid», IP-адрес NFS-сервера и exported_path в качестве входных данных от пользователя. Теперь он должен проверить, что экспортированный путь NFS доступен для чтения / записи для этого пользователя / uid.

Моя программа работает от имени пользователя root на локальной машине. Прямой подход заключается в том, чтобы «использовать» пользователя с заданными именем пользователя и uid, смонтировать экспортированный путь NFS (запускать с правами root для монтирования) на некоторой временной точке монтирования и затем выполнить «su username -c touch». / mnt_pt / 1008 * временный файл *. Если ввод имени пользователя и идентификатора пользователя был правильным (и сервер NFS был настроен правильно), это прикосновение к временному файлу приведет к созданию tempfile в удаленном каталоге NFS. Это цель.

Теперь два вопроса: (i) Есть ли более простой способ сделать это, чем создание нового пользователя unix, монтирование и касание файла для проверки разрешений NFS?

(ii) Если это то, что нужно сделать, то мне интересно, есть ли какие-нибудь модули / пакеты python, которые помогут мне выполнить команды, связанные с 'useradd', 'userdel'? В настоящее время я намереваюсь использовать соответствующие двоичные файлы (/ usr / sbin / useradd и т. Д.), А затем вызвать подпроцесс. Открыть, чтобы выполнить команду и получить вывод.

Спасибо за понимание.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2012

Существует набор python для тестирования функциональности сервера NFS.

мерзавец: //git.linux-nfs.org/projects/bfields/pynfs.git

Хотя это для NFSv4, вы можете просто принять его и для v3.

0 голосов
/ 20 марта 2011

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

ii) Возможно, вы захотите проверить модуль python pwd , если хотите проверить наличие пользователей или тому подобное, но вам, вероятно, придется использовать сами программы useradd / userdel, чтобы сделать грязную работа.

Возможно, вы захотите использовать sudo для своей программы, так что все это не должно запускаться с правами root, это кажется довольно рискованным предложением.

...