Как дать пользователям или группе в linux разрешение sudo с ограниченным разрешением на определенные файлы

Вы можете сделать это следующим образом:

awk 'NR==FNR{a[$1$2]=$3;next}
{k=$1$2;print k,a[k],$3;delete a[k]}
END{for(k in a)print k,a[k]}' test1 test2

test1 и test2 — это два файла, которые необходимо объединить

Вот пример:

[xxxx@xxxx test]$ awk 'NR==FNR{a[$1$2]=$3;next}
                  {k=$1$2;print k,a[k],$3;delete a[k]}
                  END{for(k in a)print k,a[k]}' test1 test2

job_id | execution_time execution_time
--------+--------------------
12347 |  00:01:43.634521
12345 | 00:04:42.454282 00:02:34.321451
12346 | 00:03:26.360487
1
05.08.2016, 01:22
2 ответа

Да, программа sudo позволяет ограничивать действия пользователя. Политика находится в файле / etc / sudoers . Если вы хотите разрешить только определенные операции, напишите сценарий, который реализует только их, и ограничьте их запуском только в качестве команды. Чтобы быть уверенным, что безопасность - это именно то, что вам нужно, вам, вероятно, необходимо изучить справочные страницы sudo и sudoers .

0
28.01.2020, 01:13

Нет, вы не можете этого сделать. Если вы дадите кому-то права root, он сможет делать все, включая чтение и запись каждого файла. Даже если существовал способ каким-либо образом исключить /root/database.yml , root все равно мог изменить конфигурацию sudo, заменить двоичный файл sudo, получить доступ к диску напрямую и т. Д.

Если вы этого не сделаете доверяйте коллегам-администраторам, не храните никаких секретов на машине.

Если вы хотите сохранить конфиденциальный файл и иметь администраторов, которые не могут прочитать этот файл, тогда файл должен храниться на другом компьютере, а не на том компьютере, на котором эти люди являются администраторами. Разумеется, разные машины могут быть виртуальными машинами или контейнерами, они не обязательно должны быть отдельными физическими машинами.

Итак, поместите все службы, которыми вы хотите, чтобы ваши коллеги-администраторы управляли, в виртуальной машине или контейнере, и сделайте их корневыми в виртуальной машине / контейнере. Храните конфиденциальный файл /root/database.yml на хосте и не давайте никаких прав root на хосте.

0
28.01.2020, 01:13

Теги

Похожие вопросы