Ребята, я полагаю, что у меня есть два вопроса: один специфичен для python, а другой - для NFS.
Суть в том, что моя программа получает «имя пользователя», «uid», IP-адрес сервера NFS и exported_path в качестве входных данных от пользователя. Теперь он должен убедиться, что экспортированный путь NFS доступен для чтения/записи этим пользователем/uid.
Моя программа работает как root на локальной машине. Прямой подход состоит в том, чтобы «useradd» пользователя с заданным именем пользователя и uid, смонтировать экспортированный путь NFS (запустить как root для монтирования) на некоторую временную точку монтирования, а затем выполнить «su username -c коснитесь /mnt_pt/tempfile'. ЕСЛИ имя пользователя и идентификатор пользователя введены правильно (и сервер NFS настроен правильно), это касание временного файла приведет к успешному созданию tempfile в удаленном каталоге NFS. Это цель.
Теперь два вопроса: (i) Есть ли более простой способ сделать это, чем создать нового пользователя unix, смонтировать и коснуться файла для проверки разрешений NFS?
(ii) Если это то, что нужно сделать, то мне интересно, есть ли какие-либо модули/пакеты python, которые помогут мне выполнить команды, связанные с «useradd», «userdel»? В настоящее время я намерен использовать соответствующие двоичные файлы (/usr/sbin/useradd и т. д.), а затем вызвать subprocess.Popen для выполнения команды и получения вывода.
Спасибо за любое понимание.
useradd
иsu
, если вы уже работаете как root. Почему бы просто не сделатьsetuid
илиseteuid
? - person Gabe   schedule 20.03.2011