初歩的な質問なのですが、UNIXでこれまで使用してきたアカウント名を
別のものに変更したいのですがどうすればいいのでしょうか?
その場合どういった注意点が必要でしょうか?当然メールのアカウント名
も変更になりますが、過去のメールボックスも移行できるでしょうか?
ご存知のかた教えてください。

A 回答 (2件)

No.1 の続きです。

一つ忘れてました。

通常、ホームディレクトリの名前はユーザ名になっていることが多いので(例:/home/oldname)、これも、/etc/passwd のエントリと共に、新しい名前に変更しなければなりませんね。

あと、やっかいなのが、ユーザのシェルスクリプト等の中で /home/oldname/bin/program のようにプログラムが引用されている場合です。~oldname/bin/program でも同じことです。
これは、すべてのユーザのすべてのファイルをチェックして変更するしかありませんが、ユーザ名の変更をアナウンスするだけで、あとは各ユーザがやってくれれば良いのですが、普通はなかなかそこまで動いてくれないので、大変な手間になります。

私の場合は、すべてのディレクトリを辿りながら oldname があるかどうかをチェックし、必要に応じて newname に変更するようなツールを自作して持っているので、これで対応しています。
(find と grep の組み合わせでもチェックできないことはありませんが、これだと、各ファイルの最終アクセス日時が変わってしまうので、わざわざツールを作りました。)

いずれにしても、一筋縄ではいかない作業だと思って、慎重に実行して下さい。
    • good
    • 0

UNIX のアカウント名の変更は、一見簡単そうですが、実は結構大変な作業です。


お使いの環境(UNIX の種類・バージョン等)が書かれていないので、手元の環境を例にした一般的な説明になってしまいますが…
基本的な手順は、以下のようになります。

(1) /etc/passwd の該当エントリを編集し、アカウント名(第1フィールド)を新しいものに変更します。

(2) /etc/group をチェックし、旧アカウント名があれば、新アカウント名に変更します。

(3) シャドウパスワードを使用しているシステムでは、/etc/shadow,/etc/gshadow も同様に変更します。

(4) /etc/aliases に旧アカウント名があれば、新アカウントに変更して newaliases します。

(5) NIS を使用している場合は、今までの変更をすべての NIS サーバに反映させます。

(6) メールボックス(通常 /var/spool/mail または /var/mail)の中に、旧アカウント名のファイル(=過去のメール)があれば、ファイル名を新アカウントに変更します。

(7) そのユーザが cron を使用している場合、crontab ファイルが旧アカウントで作成されているので、それを新アカウントに変更します。
  (/var/spool/cron 等にあります。)

このあたりまでやれば基本的にはOKのはずですが、稼働しているアプリケーションがアカウント名でユーザを管理していれば、それらもすべて新アカウントに変更する必要がありますので、慎重に作業して下さい。
    • good
    • 0

このQ&Aに関連する最新のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ