История изменений
Исправление intelfx, (текущая версия) :
Потому что директория mpd (/home/ekzotech/.config/mpd
) со всеми вложенными файлами принадлежит группе users, а не группе ekzotech.
В Unix права доступа к любому файлу или директории выглядят как три секции по три бита. Также указывается пользователь, «владеющий» файлом, и группа, «владеющая» файлом. Биты соответствуют правам на чтение, запись и выполнение. Первая секция — это права пользователя, «владеющего» файлом. Вторая секция — это права всех пользователей, которые состоят в группе, «владеющей» файлом. Третья секция — это права остальных.
На примере файла mpd.log:
-rwxrwxr-x 1 ekzotech users 88185383 дек 26 22:41 mpd.log
Эта строка говорит, что 1) владелец (пользователь ekzotech) имеет право читать файл, писать в него и выполнять его (кстати, последнее лишнее); 2) любой пользователь, состоящий в группе users, имеет те же права; 3) остальные права записи не имеют.
Ну вот и смотри. При запуске mpd «из консоли» он запускался от имени пользователя ekzotech, ну и всё было хорошо. При запуске mpd через systemd, согласно директиве User=mpd
, процесс стартовал от имени пользователя mpd. (Директива user в конфиге самого mpd роли не играла, поскольку смена пользователя текущего процесса — привилегированная операция.) А поскольку пользователь mpd исходно не состоял в группе users, к нему применялись права «others», т. е. запрет записи.
Исходная версия intelfx, :
Потому что директория mpd (/home/ekzotech/.config/mpd
) со всеми вложенными файлами принадлежит группе users, а не группе ekzotech.
В Unix права доступа к любому файлу или директории выглядят как три секции по три бита. Также указывается пользователь, «владеющий» файлом, и группа, «владеющая» файлом. Биты соответствуют правам на чтение, запись и выполнение. Первая секция — это права пользователя, «владеющего» файлом. Вторая секция — это права всех пользователей, которые состоят в группе, «владеющей» файлом. Третья секция — это права остальных.
На примере файла mpd.log:
-rwxrwxr-x 1 ekzotech users 88185383 дек 26 22:41 mpd.log
Эта строка говорит, что 1) владелец (пользователь ekzotech) имеет право читать файл, писать в него и выполнять его (кстати, последнее лишнее); 2) любой пользователь, состоящий в группе users, имеет те же права; 3) остальные права записи не имеют.
Ну вот и смотри. При запуске mpd «из консоли» он запускался от имени пользователя ekzotech, ну и всё было хорошо. При запуске mpd через systemd, согласно директиве User=mpd
, процесс стартовал от имени пользователя mpd. Директива user в конфиге самого mpd роли не играла, поскольку смена пользователя текущего процесса — привилегированная операция.