Я автоматизирую систему для создания пользователей в Python и запуска сценария Python через пользователя. Вот код, который я запускаю вместе с ошибкой. Корень создает пользователя, а затем запускает файл как root. Папка, копируемая из skel, выглядит следующим образом / etc / skel / newFolder. Переменная username - это 'newUser'
os.system('sudo adduser --disabled-password --gecos "" ' + username)
path = '/home/'+username+'/newFolder'
path.replace("'", r"\'")
print(subprocess.run("test -e '{}'".format(path), shell=True))
subprocess.run("sudo python3 '{}'".format(path), shell=True)
print(os.path.isfile(path))
Ошибка
Adding user 'newUser' ...
Adding new group 'newUser' (1000) ...
Adding new user 'newUser' (1000) with group `newUser' ...
Creating home directory `/home/newUser' ...
Copying files from '/etc/skel' ...
CompletedProcess(args="test -e '/home/newUser/newFolder'", returncode=1)
python3: can't open file '/home/newUser/newFolder/pythonFile.py': [Errno 2] No such file or directory
Код возврата 1 означает, что тест показал, что этот 'newFolder', скопированный из skel, не существует. И, конечно, python3 не может найти файл python. Если я иду через терминал и ищу этот каталог, он существует. Очень расстраивает, пожалуйста, помогите.
Вся ошибка, которую я получал, была из-за ошибки капитализации в пути к файлу. ВЫ ШУТИТЕ ПРАВО. Проблема решена.