Чтобы внести пользователя в группу при помощи usermod, необходимо перечислить все группы, в которых он уже есть, что неудобно и чревато ошибками. Вариант действия: сделать два отдельных ключа для команды, чтобы можно было безопасно (без прямого редактирования /etc/group или использования дополнительных программ типа groupkit) изменять членство пользователя в группе, не затрагивая при этом остальных групп, не перечисленных в команде. Например, вот так: usermod -Ga group user -- добавить user в группу group usermod -Gd group user -- удалить user из группы group
Если бы вы предложили приемлемый синтаксис для usermod(8), то я бы подумал над реализацией. Дело в том, что "usermod -Ga" - это сейчас корректная операция (добавление в список групп, состоящих из одной лишь группы "a"), из-за чего "usermod -Ga group user" становится синтаксически слишком сложной.
Ничего приличного в голову не приходит, Вы правы. Как вариант, можно расширить функциональность groupmod -- там с параметрами намного проще. В FreeBSD, например, можно пользоваться pw(8), где и присутствуют usermod, groupmod -- аналоги linux-версий. Там можно использовать pw groupmod <group> -m <user>: -m newmembers Similar to -M, this option allows the addition of existing users to a group without replacing the existing list of members. Login names or user ids may be used, and dupli- cate users are silently eliminated.
В groupmod(8) из pwdutils это сделано так: -A, --add-user user Add the user account to the specified group. -R, --remove-user user Remove the user account from the specified group.
Томожу. gpasswd -a user group gpasswd -d user group Пакет shadow-groups.