Привет.
Создаю скрипт и файл в папке /opt/1/ с правами 777:
sudo mkdir -p /opt/1/
sudo chmod -R 777 /opt/1/
echo 'hey' >/opt/1/1.txt
chmod 777 /opt/1/1.txt
vodka@vodka-PC:~$ ll /opt/1/1.txt
-rwxrwxrwx 1 vodka vodka 4 мая 1 17:30 /opt/1/1.txt*
Сам скрипт:
vodka@vodka-PC:~$ cat /opt/1/2.py
#!/usr/bin/python3
my_file=open("/opt/1/1.txt", 'w')
my_file.write('i am not OK')
my_file.close
Создаю сервис и делаю так, чтобы от запускался от пользователя и группы, которых на самом деле не существует (elena\temnikova) с опцией DynamicUser=true:
[Unit]
Description=Hey
[Service]
Type=oneshot
ExecStart=/opt/1/2.py
User=elena
Group=temnikova
StandardOutput=journal
StandardError=journal
DynamicUser=true
[Install]
WantedBy=multi-user.target
Запускаю и получаю ошибку о том, что скрипт не может писать в файл, у которого права 777 (/opt/1/1.txt):
vodka@vodka-PC:~$ sudo systemctl daemon-reload
vodka@vodka-PC:~$ sudo systemctl start elena
мая 01 17:41:04 vodka-PC systemd[1]: Starting Hey...
мая 01 17:41:04 vodka-PC 2.py[25861]: Traceback (most recent call last):
мая 01 17:41:04 vodka-PC 2.py[25861]: File "/opt/1/2.py", line 2, in <module>
мая 01 17:41:04 vodka-PC 2.py[25861]: my_file=open("/opt/1/1.txt", 'w')
мая 01 17:41:04 vodka-PC 2.py[25861]: OSError: [Errno 30] Read-only file system: '/opt/1/1.txt'
мая 01 17:41:04 vodka-PC 2.py[25861]: Error in sys.excepthook:
мая 01 17:41:04 vodka-PC 2.py[25861]: Traceback (most recent call last):
мая 01 17:41:04 vodka-PC 2.py[25861]: File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 145, in apport_excepthook
мая 01 17:41:04 vodka-PC 2.py[25861]: os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f:
мая 01 17:41:04 vodka-PC 2.py[25861]: OSError: [Errno 30] Read-only file system: '/var/crash/_opt_1_2.py.64592.crash'
мая 01 17:41:04 vodka-PC 2.py[25861]: Original exception was:
мая 01 17:41:04 vodka-PC 2.py[25861]: Traceback (most recent call last):
мая 01 17:41:04 vodka-PC 2.py[25861]: File "/opt/1/2.py", line 2, in <module>
мая 01 17:41:04 vodka-PC 2.py[25861]: my_file=open("/opt/1/1.txt", 'w')
мая 01 17:41:04 vodka-PC 2.py[25861]: OSError: [Errno 30] Read-only file system: '/opt/1/1.txt'
мая 01 17:41:04 vodka-PC systemd[1]: elena.service: Main process exited, code=exited, status=1/FAILURE
мая 01 17:41:04 vodka-PC systemd[1]: elena.service: Failed with result 'exit-code'.
мая 01 17:41:04 vodka-PC systemd[1]: Failed to start Hey.
Кто-нибудь может подсказать, что я делаю не так? Спасибо!