私のシステムには1人のユーザーしかいません。ユーザーIDをデフォルトの1000から変更するにはどうすればよいですか?
一般的なデスクトップインストールでログインプロセスが中断しないようにするために必要な追加の手順がある場合は、それらを回答の一部として含める必要があります。
問題は、前述したように、セッションにログインしているユーザーのUIDを変更できないことです。続行するには、別のユーザーアカウントを使用する必要があります。
ただし、新しいユーザーアカウントを作成し、管理者に昇格させ、ログアウトし、新しい管理者アカウントにログインし、プライマリアカウントのUIDを変更し、ログアウトし、プライマリアカウントにログインしてから新しい管理者ユーザーを削除する必要はありませんUIDを変更するだけです。 ;)
回復モード に起動できます(これは、コンピューターの起動時に表示されるオプション、またはBIOSメッセージの完了直後にShiftキーを押し続けるオプションです。使用 ESC OEM-Ubuntuを実行しているDellマシン上)。これにより、ルートセッションにログインします。ルートにログインしている通常のユーザーアカウントではないの場合、UIDを変更できます。
リカバリモードはコマンドラインインターフェイスでのみ機能するため、ルートセッションにログインすると、次のことが必要になります。
BubbaJの指示を使用して、ルートファイルシステムを読み書きモードで再マウントします :mount -o remount,rw /
。
Luis Alvaradoのコマンド :usermod -u NEW_UID your_username
を使用します。
reboot
)、通常モードで起動できるようにします。/etc/passwd
、/etc/group
、および/etc/shadow
で変更するか、上記の推奨される方法のいずれかを使用できます。しかし、最も重要なのは、ユーザーに属するすべてのファイルの所有権を変更する必要があることです。
たとえば、古いユーザーIDが1000で、新しいユーザーIDが5000の場合:
find / -uid 1000 -exec chown -h 5000 {} +
グループIDについても同じです(変更した場合も同様)。
find / -gid 1000 -exec chgrp -h 5000 {} +
@AlexandrePに基づく完全なソリューション。および@ddeimeke +公式ドキュメント。再起動は必要ありません。
Debian/Ubuntuのポリシーでは、ユーザーjim
にユーザーID 1001
がある場合、グループjim
にグループID 1001
もあります。このソリューションは、これらのグループIDも更新します。
Sudo passwd root
Rootとしてログインし、指定されたユーザー名と古い/新しいUIDでこれを実行します。
# put the information we need in variables
username=...
old_uid=`id -u $username` # looks up current (old) uid
new_uid=...
# update the user ID and group ID for $username
usermod -u $new_uid $username
groupmod -g $new_uid $username
# update the file ownerships
# NB: you cannot combine the next two chowns, or files where
# only the uid xor the gid matches won't be updated
chown -Rhc --from=$old_uid $new_uid / # change the user IDs
chown -Rhc --from=:$old_uid :$new_uid / # change the group IDs
$username
としてログインしますSudo passwd -dl root
コンソールに移動してusermod --help
と入力すると、次のようなパラメーターのいずれかが表示されます。
-u、-uid UIDユーザーアカウントの新しいUID
したがって、ユーザーcyrexのUIDを変更する場合は、次のようにします。
usermod -u 1000 cyrex
これにより、cyrexのuidが以前の値から1000に変更されます
あなたが視覚的にそれをしたい場合は、これをしてください:
に行く
システム->管理->ユーザーとグループ
リストから自分を選択し、[詳細設定]をクリックします
UIDはそのウィンドウの最後にあります。
KDEの場合:[ユーザーの詳細設定の変更]メニュー:
別のユーザーからの変更は、デフォルトのユーザーである1000では機能しません。
あなたは手動でそれをしなければなりません-私の経験
ddeimeke's の指示に従い、次の変更を加えました。
Sudo su
しました/etc/shadow
には触れませんでした他の回答で、リカバリのために起動するか、root
としてログインする必要があると述べています。私はUbuntu 14を新しくインストールしたので、root
としてログインしなくても機能するかどうかをテストしました。また、SSHを介してEC2インスタンスでこれを実行していました。
最初に、少なくともしばらくの間、rootとしてログインする必要がありますので、これを可能にします。
Sudo passwd root
再起動し、ctrl + alt + f1でコンソールに切り替え、rootとしてログインし、次の操作を行います(ホームディレクトリの所有権は自動的に処理されます)。
groupmod --gid NEWGID username
usermod --uid NEWUID username
あなたのホームディレクトリ以外の場所にあるファイルについては、これに:
Sudo chown -R username:username /path/to/files
必要に応じて、ルートのパスワードを削除してロックします。 (私はそれを保持する傾向があります):
passwd -dl root