Каким-то образом мне удалось добавить пользователя Tom в корневую группу в Ubuntu, чтобы каждый раз не использовать sudo (плохое решение). Теперь я хочу удалить его и не могу.
Я пробовал использовать
usermod -G {groups} Tom
Мой файл / etc / sudoers следующий:
Defaults env_reset
root ALL=(ALL) ALL
%sudo ALL=(ALL) ALL
%admin ALL=(ALL) ALL
Указание всех групп, кроме root, и никаких изменений не производится. Любая идея? Спасибо
Изменить: этот ответ был сильно отредактирован с исходной версии. Оригинал был распространен на пару обновлений, так что, надеюсь, они представляют собранные в логическое резюме)
укороченная версия: Глядя на предоставленный вами вывод, я не думаю, что вы поместили Тома в корневую группу, я думаю, что вы изменили основную группу пользователей root на Тома.
Длинная версия:
Вывод, который вы предоставили, на самом деле был информацией о пользователях и группах для пользователя root, а не для пользователя Tom, однако он очень полезен, поскольку выявляет проблему для вашей системы;
# id
uid=0(root) gid=1001(Tom)
grupos=0(root),1001(Tom),1002(subversion),117(nagios),1004(reweb)
Этот вывод показывает, что здесь проблема то есть вы изменили основную группу пользователей root на Tom
что, вероятно, не то, что вы имели в виду uid=0(root) gid=1001(Tom)
; <--- это плохо. и, вероятно, вызывает проблемы.
Следствием этого является то, что вокруг может быть множество файлов, принадлежащих группе Том, и они появятся в таких местах, как / var / log.
rw------- 1 root Tom 332203 Feb 24 21:17 messages
Это связано с тем, что root создает множество файлов для служб, работающих от имени root, и будет создавать новые файлы с основной группой пользователя root. который сейчас Том. Вы можете исправить проблему с корневой основной группой с помощью следующей команды;
# usermod -g root root
тем не мение эта основная групповая проблема могла иметь некоторые странные последствия, такие как оставление файлов повсюду в неожиданных местах с группой Том потому что любые файлы, созданные root, будут иметь права группы Tom.
Исправление разрешений для файлов, созданных с помощью Tom group это довольно легко, если вы можете их найти
Из-за проблемы с корневой основной группой, упомянутой выше, вам следует исправить эти разрешения, построив find / -group Tom
введите команду, чтобы увидеть, где эти файлы существуют.
# find / -group Tom
/var/somepath/somefile.txtx
/var/somepath/somefile.txtx2
и исправить эти файлы с помощью чего-нибудь вроде;
chown :root /var/somepath/somefile.txtx2
если вы не заботитесь о сбросе пользовательских файлов Tom в root, когда они находятся за пределами каталога / home / Tom, вы можете просто вернуть все испорченные разрешения группы обратно в root, вот так;
find / \( -type d -regex "/home/Tom" -prune \) -o -group Tom -print -exec chown :root {} \;
но я бы посмотрел эту команду перед ее запуском, на случай, если она испортит вашу систему ....
Учитывая то, что вы сказали, следующие команды должны исправить как root, так и Tom до значений по умолчанию в отношении основных групп;
убедитесь, что root имеет основной корень группы;
#usermod -g root root
убедитесь, что у Тома есть основная группа Том
# usermod -g Tom Tom
убедитесь, что Том не входит в корневую группу
# gpasswd -d Tom root
Removing user Tom from group root
убедитесь, что root не входит в группу Tom
# gpasswd -d root Tom
gpasswd: unknown member root
Если вы хотите, чтобы "Том" не получил любой права администратора, вы можете дополнительно проверить, что «Том» не входит в группы sudo или admin;
# gpasswd -d Tom sudo
# gpasswd -d Tom admin
Вы должны предпочесть использовать vigr
команда для редактирования /etc/group
. Он запустит ваш редактор для копии файла; когда ваш редактор закроется, он проверит синтаксис и заменит только /etc/group
если новый файл проверяется.
Соответствующий vipw
команда для редактирования /etc/passwd
слишком.
Попробуйте удалить его вручную, отредактировав / etc / group
В каждой группе есть список пользователей, разделенных запятыми.
Не уверен, что это соответствует передовой практике, но это работает.