Как изменить имя пользователя пользователя без GUI

Проблема с этой командой заключается в том, что когда я использую ^ ac $, команда интерпретирует ее как начинающуюся с 'ac' вместо того, чтобы начинать с 'a'.

Не совсем. Поскольку вы использовали якорь $, вы ищете строки, которые заканчиваются сразу после строки ac, поэтому сопоставляются только строки, содержащие ровно один ac и больше символов.

Чтобы разрешить любые символы между этими буквами, используйте регулярное выражение для любого количества любых символов: .* (или если вы хотите разрешить только один символ, как в abc в примере, используйте . без $ anchor как *.)

Кстати, вы можете просто оставить параметр -E для этого регулярного выражения, так как он не содержит никакого синтаксиса, который бы отличался в этих двух вариантах.

Итак, результат:

grep '^a.*c$' newfile
0
задан 25 February 2012 в 12:05

1 ответ

Сначала откройте терминал, станьте root

sudo -i

Затем используйте следующие команды:

измените «старый» на старое имя пользователя, а «новый» на новый желаемое имя.

usermod -d /home/new -m old

sed -i -e 's_old_new_g' /etc/passwd

sed -i -e 's_old_new_g' /etc/group

sed -i -e 's_old_new_g' /etc/shadow

Первая команда перемещает ваш домашний каталог, см. man usermod

-d, --home HOME_DIR Новый каталог входа пользователя. Если задана опция -m, содержимое текущего домашнего каталога будет перемещено в новый домашний каталог, который создается, если он еще не существует.

Команда sed изменяет имя в /etc/{passwd,group,shadow}

Система в противном случае идентифицирует пользователей по номеру, а не по имени, поэтому ваше владение файлами и разрешения будут в порядке

[d9 ] Чтобы увидеть свой цифровой идентификатор, запустите команду

id
3
ответ дан 25 May 2018 в 13:57
  • 1
    Я относительно новичок в этом, но я до сих пор не могу поверить, что забыл команду usermod. Благодарю. – Arthur 25 February 2012 в 21:21

Другие вопросы по тегам:

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