Як змінити домашній каталог користувача, який увійшов зараз


17

На даний момент я увійшов на сервер CentOS, і хотів би змінити домашній каталог з /home/myuserName/на/var/www/html/

Я спробував команду нижче:

> sudo usermod -d /var/www/html myuserName

Але це дає мені помилку:

usermod: user myUserName is currently logged in

2
Я не впевнений, що ви мали на увазі, HOME=/var/www/htmlзмінить для сесії ваш домашній реж.
Архемар

Це допомагає, але я хотів би назавжди змінити свій домашній каталог, а не лише для поточного сеансу.
Мохан

Відповіді:


17

коротка відповідь : ти не можеш.

довга відповідь :

HOMEdir встановлюється /etc/passwd, 6-е поле. Він читається після входу, ваша оболонка запускається з цього домашнього режиму.

Правильний спосіб змінити домашній режисер на Джо:

  • відійти від Джо.
  • використовувати usermod -d /new/home joe для зміни домашнього режиму для наступного сеансу.

Після запуску сеансу потрібно зробити дві речі:

  • редагуйте, $HOMEщоб змінити домашній dir на сеанс (повторюватись на всіх активних сесіях).
  • використовувати sudo vipwдля редагування домашнього редактора для наступної сесії

Також пам’ятайте, що у вас можуть виникнути проблеми з дозволами / правами власності /var/www/html


1
правка / etc / passwd завжди працювала для мене. Дивіться @ 7171u нижче
jeffmcneill

редагування / etc / passwd без входу / входу?
Архемар

редагування / etc / passwd для облікового запису, який увійшов у систему, а потім розпочати новий сеанс із цим самим обліковим записом, і він підкоряється новому домашньому dir. Для вже зареєстрованого облікового запису цей сеанс все ще має старе домашнє розташування в середовищі.
jeffmcneill

8

Команда usermod не працюватиме, якщо ви ввійшли з користувачем, на якому намагаєтесь внести зміни.

З сторінки керівництва на usermod написано:

Користувальницький модуль CAVEATS не дозволить вам змінити ім'я користувача, який увійшов у систему. Ви повинні переконатися, що названий користувач не виконує жодних процесів, коли ця команда виконується, якщо змінюється числовий ідентифікатор користувача. Ви повинні змінити власника файлів crontab вручну. Ви повинні змінити власника будь-якого місця вручну вручну. Ви повинні внести будь-які зміни, пов’язані з NIS на сервері NIS.

Спробуйте увійти з іншим користувачем та запустити команду ще раз.

Якщо це неможливо, ви можете вручну редагувати файл / etc / passwd (що насправді робить команда usermod). Якщо ви зробите це, переконайтеся, що ви створили резервну копію файлу, якщо ви ненароком зробите щось дурне.


7

Вам потрібно відредагувати /etc/passwdфайл, щоб змінити домашній каталог користувачів, які зараз увійшли.

Редагування /etc/passwdз sudo vipwі змінити домашній каталог користувача.

vipwнастійно рекомендується, крім vimінших редакторів, оскільки vipwвін встановить блокування для запобігання будь-яких пошкоджень даних.


2

Кілька можливих вирішень, залежно від того, що ви сподіваєтеся вирішити:

Варіант 1. Додайте HOME=/var/www/htmlдо свого .bashrc

Варіант 2. Перейменуйте, /home/myusernameа потім створіть символьне посилання на потрібний каталог.

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername

погані звички. після цього myusername-old не може бути використаний іншим користувачем
GeoMint

-2

Це можна робити лише тимчасово. Це означає, що кожного разу при вході в систему як цей користувач повинен запускати цю одну команду:

export HOME=/var/www/html

Таким чином, ви можете змусити більшість додатків думати, що ваш домашній каталог - будь-яке місце, де ви використовуєте вище.

~також почне вказувати /var/www/html.

Програми, які працювали для мене, були NPM та Maven.

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