Ubuntuを他の人が使用しているコンピューターにインストールしました。アカウントの名前を彼女の名前に変更しましたが、フルネームのみが変更され、ユーザー名は変更されません。これは、右上(fast-user-switch-applet
)。 Unixユーザーアカウントの名前を変更するコマンドはありますか?
新しい名前で新しいユーザーアカウントを作成し、「古い」家のすべてを新しいアカウントの家にコピーすることを考えました。それで十分でしょうか?しかし、ファイルには古いアカウントの権限の所有者がいると思いますか?だから私はchown -R newuser ~
?
これを行うためのより簡単な/推奨される方法はありますか?
試す
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ページを参照してください。
man usermod
ユーザーの名前を変更することは可能ですが、 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
にすることは混乱を招きます)、次の操作を行う必要があります。それらの世話をします。グローバルな置き換えはほとんどのアプリケーションで機能しますが、約束はしません。可能であれば、古いホームディレクトリ名を、名前を変更したディレクトリへのシンボリックリンクとして保持します。
以下は、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つのコマンドは、古いホームディレクトリの名前からシンボリックリンクを作成します(/ home/OLD)新しい名前(/ home/NEW)。
上記はすべてエレガントな方法ですが、新しいユーザーを作成し、最初のホームコンテンツからすべてのホームコンテンツをコピーしないでください。それだけです。もちろん、それがサービス(アプリケーション)アカウントに関するものであれば、おそらくそれはベストプラクティスではありません。