Правильний спосіб зміни імені користувача в Ubuntu або будь-якому Linux


26

Я використовую Ubuntu 12.04 і здійснив певну налаштування. Я також зроблю це новим iso, яке налаштовано на ubuntu.

Я хочу запитати, як я можу змінити своє ім’я користувача. У моїй поточній домашній папці багато конфігурації. Тому я не хочу псуватися зі зміною імені користувача.

То чи є найкраща практика чи робочий процес для цього?


Ваш домашній каталог часто створюється за допомогою вашого імені користувача, але ви можете змінити ім’я користувача, не змінюючи домашній каталог, змінивши перші елементи записів у / etc / passwd та / etc / shadow. Переконайтеся, що ви можете увійти як корінь (а не лише судо з вашого входу користувача), якщо ви помилитесь.
Антон

що робити, якщо я хочу змінити назву домашнього каталогу? а що саме означають перші елементи елемента?
CorpusCallosum

Відповіді:


28

Дійсно правильний шлях? Скажіть, ви хочете змінити "peter" користувача на "paul".

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

Це змінює ім'я, групу, домашній каталог та власність та групу цього каталогу на нові разом із усіма файлами. У вас виявляється користувач, який не відрізняється від того, що він був створений як "paul".

Іншим способом було б редагування перших полів записів peter у файлах /etc/passwdі /etc/shadow. Потім змініть кожен вигляд "peter" на "paul" /etc/group. Потім перейменуйте домашній каталог з /home/peterна /home/paul. А потім chown -R paul /home/peterотримати права власності та групування каталогу та всіх файлів та файлів під ним, щоб мати нові.


3
Якщо ви редагували / etc / {passwd, тінь, групу}, немає необхідності - користувач inode зберігає власника та групи чисельно
Graham Nicholls

5

Я рекомендую не намагатися змінити ім’я користувача. Це , як правило , кований з проблемами , коли ім'я користувача статичний посиланнями в файлах конфігурація у вигляді домашньої директорії користувача, /home/<username>. Вони майже ніколи не пишуться загальним способом, тому зазвичай краще просто створити нове ім’я користувача, а потім перемістити файли та дані користувача до нового облікового запису.


1
Дякуємо за коментар Я створив нового користувача та змінив userid / group та домашній каталог відносно старого. здається, все працює круто. Як ви вважаєте, цей метод також може спричинити проблеми?
CorpusCallosum

3

Спробуйте команду usermod .

exec sudo su
usermod --login newname oldname

Просто робіть "судо все, що ви збиралися робити". Якщо зробити sudo su, не буде правильно записувати команди.
Кіт Тумблі

3

Ви можете змінити його; див. Як змінити своє ім’я користувача? на AskUbuntu. Ці інструкції працювали для мене добре. Щоб зберегти конфігурацію, просто зробіть посилання на ваш старий домашній каталог, як описано у відповідях на це питання.


3

Використовуйте usermod, щоб змінити ім'я користувача та домашній каталог . Змінення peter користувача на paul:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

змінити домашній каталог і перенести все туди (створене за потреби)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

Змініть ім’я групи , але не використовуйте usermod, оскільки це вимагає, щоб ви спершу створили іншу групу (наприклад, GID 1001), і хоча вона оновить GID для всього в каталозі $ HOME, вам доведеться шукати та змінювати файли та каталоги в інших місцях зі старою власністю групи. Замість цього просто змініть назву групи вручну.

nano /etc/group

і змінити

peter:x:1000:

до

paul:x:1000:

Вам доведеться змінити назви файлів, які використовуються cron, at та іншими службами, які використовують ім'я користувача замість UID. Використовуйте

find /var -name "*peter*"

щоб знайти ці файли.

Вам також доведеться змінити конфігураційні файли, які використовуються деякими службами, наприклад, програмами обробки пошти.

Нарешті, сценарії, що використовують "/ home / peter /", потребують редагування. Змініть випадки "/ home / peter /" на "$ HOME".

Не надто багато роботи над зміною ідентичності користувачів, потрібно просто бути ретельним.


Оновлений, оскільки це той самий підхід, який я використовую (з тих же причин, що стосуються збереження GID). До речі, ви можете об'єднати дві usermodкоманди в одну, і ви також не забудьте редагувати /etc/gshadowразом з /etc/group; Їх можна змінити за допомогою GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- або ще краще за допомогою sudo groupmod -n newname oldname. Молодці, щоб виділити деякі інші добу, такі як необхідність вручну змінити ім'я crontab користувача (якщо вони є).
Ентоні Г - справедливість для Моніки

Швидке доповнення до цього ... ви не можете ввійти в систему під час цього. Створіть нового користувача temp, що входить до групи sudoers, увійдіть із цим, внесіть зміни, вийдіть із нового temp acound, увійдіть до перейменованого та видаліть обліковий запис temp.
Янус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.