質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Bash on Ubuntu on Windows

Bash on Ubuntu on Windowsは、Windows Subsystem for Linux(WSL)の非推奨の名称。Windows10およびWindows Server上でLinuxのバイナリ実行ファイルをネイティブ実行するための互換レイヤーです。

Q&A

1回答

372閲覧

uid変更後 既存パスワードが使えなくなってしまった。

ruma

総合スコア0

Bash on Ubuntu on Windows

Bash on Ubuntu on Windowsは、Windows Subsystem for Linux(WSL)の非推奨の名称。Windows10およびWindows Server上でLinuxのバイナリ実行ファイルをネイティブ実行するための互換レイヤーです。

0グッド

0クリップ

投稿2023/09/01 13:35

編集2023/09/02 00:22

実現したいこと

ホームディレクトリを変更したい。
(cd ~/Desktopを実行できるようにしたい。)
uidをもとに戻したい。
ここに実現したいことを箇条書きで書いてください。

  • ▲▲機能を動作するようにする

前提

環境はWSLになります。
ここに質問の内容を詳しく書いてください。
(例)
TypeScriptで●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ Sorry, try again. ### 該当のソースコード sudo vim /etc/passwd ```ここに言語名を入力 ソースコード

試したこと

1ホームディレクトリ変更前

cd ~/Desktopの実行時にNo such file or directoryとエラーが出てしまいました。

-bash: cd: /home/kuriy/Desktop: No such file or directory
echo $HOME の出力内容。
/home/kuriy

そのためpwdコマンドを実行して確認しましたところ、ホームディレクトリが存在しない場所になっていました。

pwdの出力内容
home/kuriy

2ホームディレクトリ変更コマンド

sudo vim /etc/passwd
上記コマンドを実行して修正を試みました。

何をどう変えたかを具体的に全部。
http://itano-net.co.jp/wsl2%E3%80%80%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E5%A4%89%E6%9B%B4/
上記記事を参考にrumaと記載されてる2か所をkuriyに変更しました。
変更前
ruma❌1000:/......ruma/bin/bash
変更後
kuriy❌1000:/......kuriy/bin/bash
(....は中間の内容が曖昧なため省力しました。)

3ホームディレクトリ変更後

その後idコマンドを実行したらuidのみ名前が変更されていました。

udi=の数字はそのままで、括弧内のユーザ名が変わっていたと言うことですか?
何から何に?
uid=1000(ruma) gid=1000(ruma) groups=1000(ruma)
上記内容から下記内容になりました。
uid=1000(kuriy) gid=1000(ruma) groups=1000(ruma)

cd ~/Desktopは相変わらず実行できないため再度

前回と全く同じエラーメッセージですか?違うならエラーメッセージ全文。
エラー内容は全く同じです。

sudo vim /etc/passwd
を実行しました。
するとパスワードが違うと出てしまい、元に戻すこともできなくなってしまいました。

pwdの出力内容
/

具体的なメッセージ全文。

補足情報(FW/ツールのバージョンなど)

初心者で理解が追いつていないため質問がおかしい可能性がありますが何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2023/09/01 13:57

具体的なことがほとんど何も書かれてないので、なんともならない状況です。 回答はここに書くのでなく、質問文を編集しましょう。 > cd ~/Desktopの実行時にNo such file or directoryとエラーが出てしまいました。 エラーメッセージ全文。 echo $HOME の出力内容。 > そのためpwdコマンドを実行して確認しましたところ、ホームディレクトリが存在しない場所になっていました。 pwdの出力内容 > sudo vim /etc/passwd > 上記コマンドを実行して修正を試みました。 何をどう変えたかを具体的に全部。 > その後idコマンドを実行したらuidのみ名前が変更されていました。 udi=の数字はそのままで、括弧内のユーザ名が変わっていたと言うことですか? 何から何に? > cd ~/Desktopは相変わらず実行できないため再度 前回と全く同じエラーメッセージですか?違うならエラーメッセージ全文。 > sudo vim /etc/passwd > を実行しました。 > するとパスワードが違うと出てしまい、元に戻すこともできなくなってしまいました。 具体的なメッセージ全文。
ruma

2023/09/01 15:17

コメントありがとうございます。内容編集しましたのでご確認いただけますでしょうか。お手数をおかけしますがよろしくお願いいたします。
bsdfan

2023/09/01 22:25

Bash on Ubuntu on Windows のタグをつけられてますが、環境はWSLでしょうか?
winterboum

2023/09/01 22:54

3つの状態があります。 1. ホームディレクトリを変更しようとする前 2. ホームディレクトリを変更する操作をしたあと 3. 元に戻そうとして操作したあと(つまり現在) 1 → 2 のときに何をしたのか、日本語での説明ではなく 実際に打ち込んだcommand 2 → 3 のときに何をしたのか、日本語での説明ではなく 実際に打ち込んだcommand を載せて下さい 一番重要なのは 1→2の操作です。
ruma

2023/09/01 23:59

環境はWSLです。数字を振りました。お願いいたします。
winterboum

2023/09/02 00:06

1. ホームディレクトリを変更しようとする前 とは cd ~/Desktop でエラーにならなかった時のことです。 2. ホームディレクトリを変更する操作をしたあと とは cd ~/Desktop でエラーが出るようになった時のことでs つまり、なにをしたらエラーになったのか、です >上記記事を参考にrumaと記載されてる2か所をkuriyに変更しました。 変更前後の行を載せて下さい
ruma

2023/09/02 00:18

説明不足で申し訳ありません。 cd ~/Desktop はホームディレクトリ変更前から同じエラーを出しています。 よろしくお願いいたします。
winterboum

2023/09/02 00:20

「cd ~/Desktop でエラーを起こさなかったときはない」 ということですか? では cd ~ は今エラーになると思いますが、それがエラーにならなかったときはあります?
ruma

2023/09/02 00:24

返信ありがとうございます。 その通りです。ubuntuで実行時はエラーにならなかった時はありません。 コマンドプロンプトでcd Desktop実行は問題なく動きました。 よろしくお願いいたします。
winterboum

2023/09/02 00:28

> その通りです。ubuntuで実行時はエラーにならなかった時はありません。 と > コマンドプロンプトでcd Desktop実行は問題なく動きました。 が矛盾するのですが。 ん? Windows での話? だとすると、Wondows と ubuntu では 違うところをみているから、だけの話。 なので、 cd ~ がエラーにならなかったときはあるのか? 今は ? の答えは?
winterboum

2023/09/02 00:29

> sudo vim /etc/passwd > を実行しました。 では何を変えたか、がわからないので、考えようがない。 変更前後を書かないと
ruma

2023/09/02 00:34

返信ありがとうございます。変更前はmkdir aaaaをした後にcd aaaaでカレントディレクトリを移動することはできました。 上記コマンドも今はエラーになってしまいできません。
bsdfan

2023/09/02 00:47 編集

修正するには /etc/passwd を編集する必要があるのですが、そのためには root の権限がいります。ところが、アカウント名まで変更してしまったため、sudo の権限が消えてしまっている状態です。 Windows から wsl -u root を実行すると、root になった状態で wsl を起動できるはずなので、それで /etc/passwd をもとに戻しましょう。 で、なぜホームディレクトリを変更しようとしたのでしょうか?wsl でも、~/Desktop で Windows側の Desktop を見れるようにしたいとかですか? 今後も別の問題が発生する可能性があるので、ホームの変更はあまりお勧めできません。
ruma

2023/09/02 01:49

Windows から wsl -u root を実行すると、root になった状態で wsl を起動できるはずなので、それで /etc/passwd をもとに戻しましょう。 >wsl -u rootはコマンドプロンプトで実行という認識で合っていますでしょうか? で、なぜホームディレクトリを変更しようとしたのでしょうか?wsl でも、~/Desktop で Windows側の Desktop を見れるようにしたいとかですか? >dockerの学習中にubunntuを使用していたのですがpwdコマンドを実行したらhome/rumaとなっていてrumaというフォルダが見当たらずホームディレクトリがおかしいのでは?と思いホームディレクトリ変更方法を調べて実行して今に至ります。 経緯説明が今になってしまい申し訳ありません。
bsdfan

2023/09/02 03:29

コマンドプロンプトからの実行でいいですよ。 WSLのインストール時にユーザー名をrumaにされたのでは?それで(wsl側に)/home/ruma が作られたはずです。/home/ruma がないというのは、Winsows側で見たときでしょうか? WindowsとWSLでは異なるディレクトリ構成になっています。 https://zenn.dev/takai404/articles/fd29f9f4a4f5ca
otn

2023/09/02 06:00

WSLだったんですね。 /etc/passwdのユーザー名部分書き換え以外には何も変更してないのであれば、bsdfanさんのお書きのようにして元に戻せば、元の状態に戻ると思いますが、他にもシステム修正点がいろいろあるなら、WSL環境を削除してゼロからやり直すのが良いと思います。 また、/etc/passwd修正で参考にされたページは、あなたの抱えている問題とは関係ないと思います。 ユーザー名として、rumaとkuriyと2つ出て来ますが、何故2つあり、どう使い分ける意図で、質問文中にお書きのコマンド投入はどちらのユーザーでのことかなど分からないことだらけです。
ruma

2023/09/02 13:41

返信ありがとうございます。 wsl -u rootをコマンドプロンプトで実行すると下記エラーが出ました。 Processing fstab with mount -a failed. <3>WSL (20) ERROR: CreateProcessEntryCommon:349: getpwnam(root) failed 2 ユーザーが見つかりません。 Error code: Wsl/WSL_E_USER_NOT_FOUND root権限が消えてしまった?のでしょうか? ディレクトリ構成が違うのは知りませんでした。 教えて頂きありがとうございます。
bsdfan

2023/09/03 01:51

簡単に治せなさそうなので、環境を作り直すのがいいのではないでしょうか。必要なファイルはWindows側にコピーしておいて、作り直してから戻せばいいかと思います。
guest

回答1

0

そうか、
画像だと潰れてて読めないので見てなかったのですが、おそらく
アカウント名 と home directory名を同時に変更してますね。
ですから 存在しない dirとなってます。
2つ方法があります。

  1. /etc/passwd を編集して、home directoy 名を戻す
  2. directory に /home/変更前のアカウント名 というのがあるかと、それを /home/kuriy に治す。

投稿2023/09/02 00:18

winterboum

総合スコア23645

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruma

2023/09/02 00:28

sudo vim /etc/passwdを実行しpasswordを入力するとSorry, try againと出てしまいます。 そのため戻す作業が行えませんでした。
winterboum

2023/09/02 00:38

passwd 欄を変えてしまったのかな。 root アカウントで入れます?入れたらrootで直しましょう でなければ復旧不可能。 高度な技を使えば可能かも、ですが /etc/passwd のどの領域が何を意味するか、を知らない様ですから、無理かと。
ruma

2023/09/02 00:45

返信ありがとうございます。sudo passwd rootを実行し入ろうとしましたがパスワードが変わっていてしまい入れませんでした。 /etc/passwd のどの領域が何を意味するかは分かっておりません。 よろしくお願いいたします。
winterboum

2023/09/02 01:19

bsdfan さんのコメントにあるように、 >Windows から wsl -u root を実行すると、root になった状態で wsl を起動できるはずなので、それで /etc/passwd をもとに戻しましょう。 それでだめだったら再構築です
ruma

2023/09/02 01:49

返信ありがとうございます。試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問