現在、他のユーザーが使用しているコンピュータにUbuntuをインストールしました。私は彼女の名前にちなんでアカウント名を変更しましたが、ユーザー名は変更されず、フルネームのみが変更されました。ユーザー名はまだ右上(中央fast-user-switch-applet
)に表示されます。 Unixユーザーアカウントの名前を変更するコマンドはありますか?
新しい名前で新しいユーザーアカウントを作成し、「古い」ホームディレクトリのすべての内容を新しいアカウントのホームディレクトリにコピーする方法を考えました。十分ですか?しかし、そのファイルが古いアカウントの権限所有者を持つことになると思いましたか?だから私は何をすべきですかchown -R newuser ~
?
これを行うより簡単で推奨される方法はありますか?
答え1
努力する
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
答え2
ユーザーの名前を変更できますが、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
)。グローバル交換はほとんどのアプリケーションで機能しますが、約束することはできません。可能であれば、古いホームディレクトリ名を名前変更したディレクトリへのシンボリックリンクとして保持します。
答え3
以下は、Debian システムで使用されるコマンドの概要です。
groupadd NEW
usermod -l NEW -m -d /home/NEW -g NEW OLD
chfn -f "New Fullname" NEW
cd /home
ln -s NEW OLD
最後の2つのコマンドは、前のホームディレクトリの名前からシンボリックリンクを作成します(/家/古い)を新しい名前(/ホーム/鳥)。
答え4
上記の方法はすべて素晴らしいアプローチです。しかし、新しいユーザーを作成して最初のユーザーのすべてのホームページコンテンツをコピーしたら、それは終わりですか?もちろん、サービス(アプリケーション)アカウントに関するものであれば、これはベストプラクティスではないかもしれません。