「ユーザーネームの変更」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「[[zh-CN:」を「[[zh-hans:」に置換)
タグ: 新規リダイレクト
 
1行目: 1行目:
  +
#REDIRECT [[ユーザーとグループ#ユーザーのログイン名やホームディレクトリを変更する]]
[[Category:セキュリティ]]
 
[[en:Change username]]
 
[[es:Change username]]
 
[[zh-hans:Change username]]
 
{{Related articles start}}
 
{{Related|ユーザーとグループ}}
 
{{Related articles end}}
 
Arch (やその他の Linux フレーバー) でユーザーネームを変更するのは正しくやれば簡単かつ安全に変更できます。必要であればユーザーと関連するグループの名前も変更することができます。以下の手順に従えばユーザーの UID/GID は変更されないのでセットアップ済みのファイルのパーミッションが壊れることはありません。
 
 
==手順==
 
{{Warning|Make certain that you are not logged in as the user whose name you are about to change! Open a new tty ({{ic|Ctrl}}+{{ic|Alt}}+{{ic|F1}}) and log in as root or as another user and su to root. usermod should prevent you from doing this by mistake.}}
 
 
===ユーザーのログイン名を変更===
 
次のコマンドでユーザーのログイン名が変更されます。
 
# usermod -l newname oldname
 
 
===本名を変更===
 
次のコマンドでユーザーの本名が変更されます。
 
# usermod -c "New Real Name" username
 
 
===ユーザーの $HOME を変更===
 
''username'' のホームディレクトリだけを変更します。手動で新しいディレクトリを作成する必要はありません。移動は完全に自動的に行われます。
 
# usermod -d /my/new/home username
 
 
===ユーザーの $HOME を移動して中身を移動===
 
''username'' のホームディレクトリの中身を {{ic|/my/new/home}} に移動してユーザーのホームディレクトリをその新しいディレクトリに設定します。これも、自動的な移動です。
 
# usermod -m -d /my/new/home username
 
 
===昔の $HOME から新しい $HOME にリンクを作成===
 
''username'' の旧ホームディレクトリから新しいディレクトリにリンクを作成します。こうすることでパスがハードコードされているファイルもプログラムから見つけられるようになります。
 
{{Warning|Make sure there is no trailing / on {{ic|/my/old/home}}}}
 
# ln -s /my/new/home/ /my/old/home
 
 
===グループ名を変更===
 
ユーザーのグループも変更したい場合:
 
# groupmod -n newname oldname
 
 
{{Note|This will change a group name but not the numerical GID of the group.}}
 
 
詳細は usermod や groupmod の man ページを見て下さい。
 
 
===手動で /etc/passwd を扱う===
 
可能な限り、ユーザー名やホームディレクトリを変更するときは上記のコマンドを使って下さい。ただし実際に何をやっているのか知りたい場合は、手動で行うこともできます。
 
 
====/etc/passwd ファイルフォーマット====
 
このファイルの各行は特定のフォーマットに従っています。7つのフィールドがあり、それぞれコロン (":") で区切られています。
 
<pre>
 
<login name>:<password>:<numerical UID>:<numerical GID>:<Real name/comments>:<home directory>:<user command interpreter>
 
</pre>
 
 
{{Warning|It is unsafe to set the <password> field in {{ic|/etc/passwd}}. Passwords should be changed (by root) with the '''passwd''' command!}}
 
* <login name>: このフィールドは空にできません。標準的な *NIX 命名規則が適用されます。
 
* <password>: 暗号化されたパスワードが入りますが、小文字の "x" (クォートは不要) で {{ic|/etc/shadow}} にパスワードを保存するのが推奨されます。
 
* ユーザーとグループの名前には数字の UID と GID が付きます (User ID と Group ID)。Arch では、(root の次の) 1番目のログイン名はデフォルトで UID 1000 となっています。その次のユーザーの UID/GID エントリは 1000 よりも高い値でなくてはなりません。GID は特定のユーザーのプライマリグループと一致している必要があります。GID の数値は {{ic|/etc/group}} に載っています。
 
* <Real name/comments>: '''finger''' などのサービスによって使われます。このフィールドはオプションで、空でもかまいません。
 
* <home directory>: ログインコマンドによって {{Ic|$HOME}} 環境変数を設定するのに使われます。特別なユーザーを使用するサービスであれば "/" を使っても問題ありませんが、通常ユーザーでは推奨されません。
 
* <user command interpreter>: ユーザーのデフォルトシェルのパスです。通常は [[Bash]] ですが、他のコマンドラインインタプリタを使うこともできます。users のデフォルト設定は "/bin/bash" (クォートなし) です。他の CLI を使う場合、ここにパスを設定してください。このフィールドはオプションです。
 
 
例 (ユーザー):
 
jack:x:1001:100:Jack Smith,some comment here,,:/home/jack:/bin/bash
 
 
上記の行を解説すると: ユーザー jack (パスワードは {{ic|/etc/shadow}} に保存) は UID 1001 でプライマリグループは 100 (users)。Jack Smith がフルネームでありアカウントに関連するコメントが存在。ホームディレクトリは {{ic|/home/jack}} で Bash を使用。
 
 
==トラブルシューティング==
 
*[[sudo]] を使用する場合 {{ic|/etc/sudoers}} を更新して新しいユーザー名を反映させてください (root で visudo コマンドを使用)。
 
*{{ic|~/.bashrc}} の PATH の記述を変更している場合、新しいユーザー名を反映させてください。
 
*同じく、{{ic|/etc/rc.local}} などの設定ファイルでも古いユーザーのホームディレクトリにあるスクリプトやマウントポイントを指定している場合は修正します。
 
*個人用の [[cron#Crontab のフォーマット|crontab]] は {{ic|/var/spool/cron}} のユーザーファイルを古い名前から新しい名前に変更して、{{ic|crontab -e}} を開いて相対パスを変更してファイルのパーミッションも調整します。
 
* [[Wine]] の個人用フォルダ・ファイルコンテンツ {{ic|~/.wine/drive_c/users}}, {{ic|~/.local/share/applications/wine/Programs}} は手動で名前を変更・編集する必要があります。
 
*Firefox における[[Firefox#スペルチェック用の辞書|スペルチェックの有効化]]は再度行って下さい。そうしないとユーザーの名前を変更後、スペルチェックが実行されません。
 
*[http://enigmail.mozdev.org/home/index.php Enigmail] など特定の Thunderbird アドオンは再インストールが必要です。
 
*ホームディレクトリの絶対パス ({{ic|/home/oldname}}) を使っているファイル (デスクトップショートカット, シェルスクリプトなど) は新しいホームを使うように修正する必要があります。シェルスクリプトではこういう問題が起こらないように、ホームディレクトリを指定するときは {{Ic|~}} や {{Ic|$HOME}} 変数を使いましょう。
 
*また {{ic|/etc}} の設定ファイルで絶対パスを使っている場合は忘れずに編集してください (Samba や CUPS など)。どのファイルを編集すればいいかわからないときは grep コマンドを使います: {{ic|# grep -r {old_user} *}}。
 

2022年10月13日 (木) 16:29時点における最新版