web-dev-qa-db-ja.com

自分のユーザーIDを変更するにはどうすればよいですか?

私のシステムには1人のユーザーしかいません。ユーザーIDをデフォルトの1000から変更するにはどうすればよいですか?

一般的なデスクトップインストールでログインプロセスが中断しないようにするために必要な追加の手順がある場合は、それらを回答の一部として含める必要があります。

48
ændrük

問題は、前述したように、セッションにログインしているユーザーのUIDを変更できないことです。続行するには、別のユーザーアカウントを使用する必要があります。

ただし、新しいユーザーアカウントを作成し、管理者に昇格させ、ログアウトし、新しい管理者アカウントにログインし、プライマリアカウントのUIDを変更し、ログアウトし、プライマリアカウントにログインしてから新しい管理者ユーザーを削除する必要はありませんUIDを変更するだけです。 ;)

回復モード に起動できます(これは、コンピューターの起動時に表示されるオプション、またはBIOSメッセージの完了直後にShiftキーを押し続けるオプションです。使用 ESC OEM-Ubuntuを実行しているDellマシン上)。これにより、ルートセッションにログインします。ルートにログインしている通常のユーザーアカウントではないの場合、UIDを変更できます。

リカバリモードはコマンドラインインターフェイスでのみ機能するため、ルートセッションにログインすると、次のことが必要になります。

  1. BubbaJの指示を使用して、ルートファイルシステムを読み書きモードで再マウントしますmount -o remount,rw /

  2. Luis Alvaradoのコマンドusermod -u NEW_UID your_usernameを使用します。

  3. ddeimekeの指示 に従ってファイルのアクセス許可を更新します。
  4. 次に、コンピューターを再起動して(reboot)、通常モードで起動できるようにします。
27
Alexandre P.

/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 {} +
54
ddeimeke

@AlexandrePに基づく完全なソリューション。および@ddeimeke +公式ドキュメント。再起動は必要ありません。

Debian/Ubuntuのポリシーでは、ユーザーjimにユーザーID 1001がある場合、グループjimにグループID 1001もあります。このソリューションは、これらのグループIDも更新します。

  1. ルートアカウントを有効にする

    Sudo passwd root
    
  2. ユーザーがログインしている場合は、ログアウトします(仮想端末でも)
  3. VT1に移動します。 Ctrl-Alt-F1
  4. 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
    
  5. ログアウト
  6. $usernameとしてログインします
  7. ルートアカウントを無効にする

    Sudo passwd -dl root
    
24
l0b0

コンソールに移動してusermod --helpと入力すると、次のようなパラメーターのいずれかが表示されます。

-u、-uid UIDユーザーアカウントの新しいUID

したがって、ユーザーcyrexのUIDを変更する場合は、次のようにします。

usermod -u 1000 cyrex

これにより、cyrexのuidが以前の値から1000に変更されます

あなたが視覚的にそれをしたい場合は、これをしてください:

に行く

システム->管理->ユーザーとグループ

リストから自分を選択し、[詳細設定]をクリックします

UIDはそのウィンドウの最後にあります。

7
Luis Alvarado
  • ジャンプシステム>>管理>>ユーザーとグループ

alt text

  • 詳細設定をクリックして、詳細に移動します。下のタブをクリックすると、ユーザーIDが表示されます。
  • 変更して[OK]をクリックします。
    alt text
2
karthick87

KDEの場合:[ユーザーの詳細設定の変更]メニュー:

別のユーザーからの変更は、デフォルトのユーザーである1000では機能しません。

あなたは手動でそれをしなければなりません-私の経験

0
skidzo

ddeimeke's の指示に従い、次の変更を加えました。

  1. ログアウトせず、代わりにSudo suしました
  2. /etc/shadowには触れませんでした

他の回答で、リカバリのために起動するか、rootとしてログインする必要があると述べています。私はUbuntu 14を新しくインストールしたので、rootとしてログインしなくても機能するかどうかをテストしました。また、SSHを介してEC2インスタンスでこれを実行していました。

0
KalenGi

最初に、少なくともしばらくの間、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
0
qed