Чи можливо перейменувати обліковий запис користувача Unix?


48

Я встановив Ubuntu на комп’ютер, яким зараз користується хтось інший. Я перейменував обліковий запис з її ім’ям, але воно змінює лише повне ім'я, а не ім'я користувача, яке все ще відображається вгорі праворуч (у fast-user-switch-applet). Чи є команда перейменувати обліковий запис користувача Unix?

Я думав створити новий обліковий запис користувача з новим іменем, а потім скопіювати все в "старий" будинок до дому нового акаунта. Чи вистачило б це? Але тоді я думаю, що ці файли матимуть власника дозволів старого облікового запису? Так що мені робити chown -R newuser ~?

Чи є простіший / рекомендований спосіб зробити це?

Відповіді:


52

Спробуйте

usermod --move-home --login <new-login-name> --home <new-home-dir> <old-login-name>

--move-homeОпція переміщує вміст старої домашньої директорії до нових даних по --homeопції , яка створюється , якщо він вже не існує.

Якщо ви хочете, щоб основна група користувачів відповідала new-login-name, додайте --gid <new-login-name>до команди вище, але група повинна бути попередньо існуючою.

Додаткову інформацію див. На сторінці чоловіка:

man usermod

Дякую! Я не знав про цю команду. :) Однак, це єдиний обліковий запис на цьому комп’ютері, і чоловік говорить про це: «Ви повинні переконатися, що названий користувач не виконує жодних процесів, коли ця команда виконується, якщо користувач чисельний ідентифікатор користувача, ім'я користувача або домашній каталог користувачів змінюється. usermod перевіряє це в Linux, але перевіряє, чи користувач увійшов у відповідності з utmp для інших архітектур. »Ви б запропонували використовувати для цього живий компакт-диск або створити тимчасовий обліковий запис, який я видалю, коли це буде зроблено?
Yann Dìnendal

2
Оскільки ви використовуєте Ubuntu і не можете ввійти в систему як корінь, я створив би інший обліковий запис з назвою "адміністратор", який ви використовуєте лише для цього типу завдань. Тимчасовий обліковий запис буде працювати так само добре, але ви можете також зберегти його, оскільки ви можете робити подібні речі в майбутньому.
gvkv

3
Майте на увазі, що він usermod --homeповинен містити повний шлях, наприклад, /home/user.nameінакше новий домашній каталог буде створений всередині поточного робочого каталогу.
гонорар

Це не змінить групу!
Хеанц

22

Хоча можливо перейменувати користувача та usermodвиконати якусь роботу , це, швидше за все, спричинить проблеми. Ось список місць, де може відображатися ім’я користувача; Я не стверджую, що цей список є вичерпним.

  • Введення користувачем у /etc/passwdвідповідні файли (наприклад /etc/shadow, /etc/master.passwd).
  • Групові записи в /etc/group/etc/gshadow).
  • Можливо, записи в /etc/sudoers.
  • Системна поштова скринька, як правило, /var/mail/$USERабо /var/spool/mail/$USER.
  • Кронтаб, як правило, /var/spool/cron/crontabs/$USER
  • У atробочих місцях ( /var/spool/cron/atjobs/*)

Домашній каталог, швидше за все, з’явиться ще в багатьох місцях. Багато програм записують абсолютні шляхи в різні крапки. Якщо ви вирішите також перейменувати домашній каталог (хоча aliceдомашній каталог користувача не вимагає /home/alice, оскільки це /home/bobбуде заплутано), вам потрібно буде подбати про них. Глобальна заміна буде працювати для більшості програм, але я не обіцяю. Якщо можливо, збережіть стару назву домашнього каталогу як символічне посилання на перейменований каталог.


4

Ось підсумок команд, які я використовував у системі Debian:

groupadd NEW
usermod -l NEW -m -d /home/NEW -g NEW OLD
chfn -f "New Fullname" NEW
cd /home
ln -s NEW OLD

Останні дві команди створюють символічне посилання від імені старого домашнього каталогу ( / home / OLD ) до імені нового ( / home / NEW ).


Для чого це groupadd?
Yann Dìnendal

2
Замість цього groupaddя думаю, що, можливо, бажано groupmod -n NEW OLDуникати зміни геда. Принаймні, на Ubuntu група з тим самим іменем, що і користувач, налаштована за замовчуванням, тому можна також змінити це ім'я.
jamadagni

1

все вище - це елегантні методи, але чому б просто не створити нового користувача, скопіювати весь його домашній вміст з першого, і це все? Звичайно, якщо мова йде про службовий (додатковий) рахунок, можливо, це не найкраща практика


3
Здається, що це може бути краще розміститись як коментар, а не повний пост відповідей, який майже нічого не додає, крім згадування про рішення, про яке вже згадувалося в ОП. Вам слід розглянути можливість додавання деякої інформації щодо того, чому ви вважаєте, що це рішення є кращим або навіть прийнятним.
HalosGhost
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.