Чтобы также сохранить статус выхода:
output=$(head < "$file"; r=$?; echo /; exit "$r")
exit_status=$?
output=${output%/}
Обратите внимание, что использование /
безопаснее, чем x
, так как некоторые наборы символов используются в некоторых локалях, где кодировка некоторых символов заканчивается кодировкой x
(, в то время как кодировка /
, как правило, не найден в других символах, так как это затруднило бы поиск пути, например ).
Я отвечу на ваши вопросы ниже:
Как удалить пользователя из определенной группы?
Вы можете использовать usermod
без опции -a
и с опцией -G
, но вам нужно будет перечислить все дополнительные группы, членом которых вы хотите, чтобы пользователь был. Я не знаю, как удалить пользователя из группы по имени.
Есть ли команда, которую я могу использовать для восстановления членства в группе?
Да, usermod
. Вы бы использовали usermod -G <comma_separated_list_of_groups> <username>
.
Влияет ли ручное редактирование /etc/{passwd,group}
на членство в группах, добавления и удаления?
Да, такие инструменты, какusermod
безопасно манипулируют этими файлами. Вы можете сделать это вручную, но если вы допустите ошибку, вы можете получить пользователя, который больше не сможет войти в систему.