Переименовать/изменить имя пользователя cygwin
При первом запуске оболочки Cygwin вы вошли в систему как пользователь, находящийся в Windows. Как вы изменяете только имя пользователя этого пользователя, оставляя существующую связь cygwin пользователя Cygwin с пользователем Windows? (т.е. без создания новой учетной записи Windows)
Почему? Я просто перешел с виртуальной машины на Cygwin и хотел бы использовать все мои скрипты и настройки оболочки, которые предполагают конкретное имя пользователя (думаю, что .ssh/config,.subversion и т.д.) Без изменений.
Ответы
Ответ 1
Мое первоначальное имя пользователя было root
(под Windows, по иронии судьбы), и я хотел, чтобы он был someuser
. Я решил, что хочу, чтобы мой домашний каталог был /home/someuser
, и был доступен для чтения из Windows.
Это то, что я сделал:
cd /home
mv root someuser
ln -s someuser root
sed -e 's/^root/someuser/' -e 's/\/home\/root/\/home\/user/' -i /etc/passwd
И все это, просто перезапустите оболочку.
Я сделал символическую ссылку в случае, если Cygwin по какой-то причине обновит /etc/passwd
и восстановит имя пользователя до root
и его домашний каталог до /home/root
, так что еще можно войти в систему.
(Только изменить имя пользователя: sed -e 's/^root/someuser/' -i /etc/passwd
)
Ответ 2
Для пользователей, начинающих с чистой установки Cygwin, может быть создан новый /etc/passwd
файл (он не существует по умолчанию в текущих версиях Cygwin), используя
mkpasswd -l >/etc/passwd
, который создаст запись для каждого пользователя
(добавьте -b
, чтобы опустить встроенных пользователей или просто -c
, чтобы создать запись для текущего пользователя, см. https://cygwin.com/cygwin-ug-net/mkpasswd.html).
Затем просто откройте /etc/passwd
переименуйте учетную запись там (первый столбец).
См. https://cygwin.com/cygwin-ug-net/ntsec.html для описания того, как Cygwin обрабатывает сопоставление между "Cygwin" и пользователем Windows.
О, и есть также mkgroup
, который можно использовать аналогично, см. https://cygwin.com/cygwin-ug-net/mkgroup.html.
Вы увидите, что создание официально не рекомендуется, но по моему опыту он не вызвал никаких проблем, может быть, это могло бы быть, если бы вы сделали довольно продвинутые вещи, связанные с правами пользователя/группы, или если вы не сохранили его, когда вы меняете пользователей Windows.
Ответ 3
Это то, что я сделал, это работало на Windows 10, которая сочетает в себе элементы двух других ответов:
- Убедитесь, что ваш Cygwin/etc/passwd не существует
- CD/дом
- М.В. старое имя новое имя
- ln -s новое имя старое имя
- "mkpasswd -l>/etc/passwd" (это вставит много учетных записей в ваш новый /etc/passwd)
- отредактируйте /etc/passwd и найдите запись старого имени, а также измените "oldname" на "newname" в трех местах в этой единственной записи -l
- убить всех снарядов Cygwin
- вызвать новую оболочку cygwin
Ответ 4
В отличие от других ответов, вот что у меня сработало (в Windows 10):
rm /etc/passwd
mkpasswd -c > /etc/passwd
ln -s /home/oldname /home/newname
- Отредактируйте /etc/passwd и замените старое имя новым