私のシステムには1人のユーザーしかいません。ユーザーIDをデフォルトの1000から変更するにはどうすればよいですか?
一般的なデスクトップインストールでログインプロセスが中断しないようにするために必要な追加の手順がある場合は、それらを回答の一部として含める必要があります。
私のシステムには1人のユーザーしかいません。ユーザーIDをデフォルトの1000から変更するにはどうすればよいですか?
一般的なデスクトップインストールでログインプロセスが中断しないようにするために必要な追加の手順がある場合は、それらを回答の一部として含める必要があります。
回答:
問題は、前述のように、ユーザーがセッションにログインしているときにユーザーのUIDを変更できないことです。続行するには、別のユーザーアカウントを使用する必要があります。
ただし、新しいユーザーアカウントを作成し、管理者に昇格させ、ログアウトし、新しい管理者アカウントにログインし、プライマリアカウントのUIDを変更し、ログアウトし、プライマリアカウントにログインしてから新しい管理者ユーザーを削除する必要はありませんUIDを変更するだけです。;)
リカバリモードで起動できます(コンピュータの起動時に表示されるオプション、またはBIOSメッセージの完了直後にShiftキーを押すオプションですESC。OEM-Ubuntuを実行しているDellマシンで使用します)。これにより、ルートセッションにログインします。通常のユーザーアカウントではなく、root でログインすると、UIDを変更できます。
リカバリモードはコマンドラインインターフェイスでのみ機能するため、ルートセッションにログインすると、次のことが必要になります。
使用BubbaJの命令が読み書きモードでルートファイルシステムを再マウントするには:mount -o remount,rw /
。
Luis Alvaradoのコマンドを使用しますusermod -u NEW_UID your_username
。
reboot
)して、通常モードで起動できるようにします。usermod -u NEW_UID your_username
およびを実行した後find / -uid 1000 -exec chown -h 5000 '{}' \+
、リブートすると、推測セッションのみのGUIログインになります。
usermod: user user_name is currently used by process 1118
@アレクサンドルP.
あなたにはそれを変更することができ/etc/passwd
、/etc/group
および/etc/shadow
またはあなたは、上記の好適possibiltiesのいずれかを使用します。しかし、最も重要なのは、ユーザーに属するすべてのファイルの所有権を変更する必要があることです。
たとえば、古いユーザー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を持つユーザーがいる場合、グループIDを持つグループ1001
もありjim
ます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
sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME> sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>
コンソールに移動して次のように入力usermod --help
すると、次のパラメーターのいずれかが表示されます。
-u、-uid UIDユーザーアカウントの新しいUID
したがって、ユーザーcyrexのUIDを変更する場合は、次のようにします。
usermod -u 1000 cyrex
これにより、cyrexのuidが以前の値から1000に変更されます
あなたが視覚的にそれをしたい場合は、これをしてください:
に行く
システム->管理->ユーザーとグループ
リストから自分を選択し、[詳細設定]をクリックします
UIDはそのウィンドウの最後にあります。
最初に、少なくともしばらくの間、rootとしてログインする必要がありますので、これを可能にします。
sudo passwd root
再起動し、ctrl + alt + f1でコンソールに切り替え、rootとしてログインし、次の操作を行います(ホームディレクトリの所有権は自動的に処理されます)。
groupmod --gid NEWGID username
usermod --uid NEWUID username
あなたのホームディレクトリ以外の場所にあるファイルについては、これに:
sudo chown -R username:username /path/to/files
必要に応じて、rootのパスワードを削除してロックします。(私はそれを保持する傾向があります):
passwd -dl root