printf '%s\n' *_*_*.h
Будет печатать имена файлов, содержащие как минимум 2 символа подчеркивания, не Начнем с .
и заканчиваются на .h
по одному в строке. Однако, если такого файла нет, он напечатает * _ * _ *. H
.
Предполагая, что среда Unix/Linux поддерживает реализацию списка контроля доступа, вы можете применить такой список контроля доступа:
sudo setfacl -m u:mauro:rw /var/logs
This utility (setfacl) sets Access Control Lists (ACLs) of files and directories, i.e. sets what permission a user(s)/group(s) can have on a particular file or directory.
Refer to man-page of setfacl(1)
Кроме того, setfacl
имеет рекурсивную опцию (-R )точно так же, какchmod
:
Вы можете использовать заглавные -x X
разрешения, что означает:
execute only if the file is a directory or already has
execute permission for some user (X)
Таким образом, новая команда будет выглядеть как:
setfacl -R -m u:mauro:rwX /var/logs
Создайте файл журнала как root,
sudo touch /var/log/mylogfile.log
Сделать его владельцем правильного пользователя:
sudo chown user:group /var/log/mylogfile.log
Если вы выполняете ротацию файлов журналов, убедитесь, что служба ротации(logrotate
или что-то другое, что вы используете ), создает или оставляет пустой файл с правильным владельцем при каждой ротации файла журнала.
Чтобы позволить одному пользователю записывать несколько файлов журналов, создайте каталог /var/log/mylogs
, принадлежащий данному пользователю, а затем создайте файлы журналов в этом каталоге.
syslogd
здесь твой друг. см.https://stackoverflow.com/a/36762675/537980
syslogd
имеет разрешение на запись в этот каталог. Он предназначен для логирования. Он не будет давать никаких других разрешений (, только ведение журнала ). См. ссылку выше для получения дополнительной информации (Я не эксперт. Я только знаю, что он существует, и это то, что вам нужно ).