Как предоставить пользователю user01 доступ к сбросу пароля только для пользователя 02 в CentOS 7?

Для вывода содержимого всех обычных файлов в текущем каталоге, имя которых содержит символ a:

find. ! -name. -prune -name '*a*' -type f -exec cat {} +

Хотя с несколькими findреализациями (, включая GNU на вашей Ubuntu ), это исключит файлы, имена которых содержат последовательности байтов, которые не образуют допустимые символы в текущей локали.

В некоторых реализациях findвместо стандартного ! -name. -pruneможно использовать -depth 1. Некоторые другие (, такие как GNU find), имеют -mindepth 1 -maxdepth 1(, хотя -maxdepth 1здесь достаточно, поскольку глубина 0 равна ., что исключается как -type f, так и-name '*a*').

Проблема недопустимых символов может быть устранена с помощью zshи :

.
cat./*a*(D.)

Это также имело бы преимущество, сообщая об ошибке, если нет соответствующего файла, и сортируя список файлов, чтобы вывод был менее случайным.

Если вы также хотите включить символические ссылки на обычные файлы,добавьте опцию -Lк findили -в квалификаторе zsh glob.

Если вы хотите исключить скрытые файлы, добавьте ! -name '.*'к findили удалите Dиз квалификатора glob zsh.

Обратите внимание, что catобъединяет эти файлы. Если a1содержит fooбез завершающего символа новой строки (, чего не должно было бы происходить, если бы a1был правильным текстовым файлом ), а a2содержал bar, вывод будет foobar.

Чтобы включить имена файлов, вы можете использовать grep '^' /dev/nullвместо cat, что будет добавлять к каждой строке имя файла. Или grep -n '^' /dev/null, чтобы также включить номера строк.

С реализацией GNU head(, найденной в вашей Ubuntu ), вы можете использовать head -vc-0, который добавит

===>./file_with_a <===

заголовок и пустая строка между файлами.

0
11.09.2020, 22:04
1 ответ

Ваша запись sudoers дает user01 полные права sudo , что означает, что вам все равно нужно запускать каждую команду через sudo. Если вы хотите только предоставить user01 права на изменение/сброс пароля user02 , добавьте его в свой /etc/sudoersфайл (черезvisudo):

user01  ALL=(ALL:ALL)   NOPASSWD: /usr/bin/passwd user02

Затем пусть user01 запустит sudo passwd user02.

1
18.03.2021, 23:05

Теги

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