8.12. Удаление групп командой groupdel

Проблема

Требуется удалить группу или группы, но при этом проследить за тем, чтобы в системе не осталось «бесхозных» файлов или пользователей.

Решение

Сначала, если потребуется, переназначьте номера групп, редактируя файл /etc/group. Просто скопируйте данные пользователей и вставьте их в другую группу. Затем удалите группу командой groupdel, после чего воспользуйтесь командами find и chgrp для поиска и передачи прав владения файлами другой группе.

Удаление группы:

# groupdel имя_группы

Удаление группы — это непростая операция, так как не существует утилит для автоматического переноса или удаления файлов и пользователей, которые входили в группу. Вам придётся вручную находить такие файлы и изменять их GID:

# find / -gid 750
/usr/src/include/lber.h
/usr/src/include/ldap.h
/usr/src/include/ldbm.h

Изменение группы для файла можно сделать по одному файлу:

# chgrp 800 /usr/src/include/lber.h

А можно выполнить замену одновременно с помощью find и chgrp:

# find / -gid 750 -exec chgrp -v 800 {} \;

Комментарий

При удалении группы важно убедиться, что все файлы, связанные с данной группой, переназначены другой группе, чтобы избежать потери доступа к важным ресурсам. Используйте команду find для поиска файлов с указанным GID и команду chgrp для изменения прав собственности на эти файлы. Не забывайте, что пользователи, которые были членами удалённой группы, также могут потерять доступ к своим файлам, если не изменить их GID.

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

См. также

groupdel(8), find(1), chgrp(1); раздел 8.6.