アカウントを新しく作成したアカウントに切り替えようとすると、黒い画面が表示され、正しいパスワードを入力するとメインのログイン画面に戻ります。
以前の既存のアカウントにログインすると、次のようになります。
"System Program Problem Detected"
Details:
Executable path /usr/bin/Xorg
Package: xserver-xorg-core 2:1.11.4-0ubuntu10.1
Details: Crash
... (tons more, but no way to copy paste or save)
Suをしようとしたとき
su -l penner
私は得る:
No directory, logging in with HOME=/
ホームディレクトリを手動で作成しましたが、このエラーは消えますが、それでもログインできません。ユーザーの作成で何か問題が発生したようです。どうすれば修正できますか?
useradd
でユーザーアカウントを作成した場合は、そのすべてを手動で設定する必要があります。そのため、コマンドラインからユーザーアカウントを作成する場合、代わりにUbuntu(およびDebian、およびその他のDebianベースのシステム)で adduser
を使用することをお勧めします。 userdel
または deluser
でユーザーを削除し、adduser
で再作成したい場合があります。そうでなければ...
ユーザーアカウントを保持して問題を修正する場合は、以下を確認する必要があります。
これらはまったく同じでなければなりません。 su -l penner
で表示されるエラーメッセージは、それらが同じではないことを示しています。
ユーザーアカウントが実際に構成されているホームディレクトリを確認するには、次のコマンドを実行します(詳細については man 5 passwd
および man grep
を参照)。
grep penner /etc/passwd
次のような行が表示されます。
penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash
つまり、6番目の:
- separatedフィールド(5番目の:
の後)にはホームディレクトリが含まれます。 /home/penner
でない場合は、そうである必要があります。ユーザー用に作成したディレクトリが/home/penner
でない場合も、そうである必要があります。 2つのディレクトリが同じで、どちらも/home/penner
でない場合、理論的には動作する可能性がありますが、多くのソフトウェアは、root
以外のユーザーのホームディレクトリはすべて/home/penner
であると想定しているため、両方を/home/username
にする必要があります。
次のコマンドを実行すると、penner
のホームディレクトリを/home/penner
に変更できます。
Sudo usermod -d /home/penner penner
man usermod
を参照してください。名前が両方とも/home/penner
の場合(または一度)、ユーザーが自分のホームディレクトリにアクセスできることも確認する必要があります。実行:
ls -ld /home/penner
次のようなものが表示されるはずです(ただし、日付と時刻は異なります)。
drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner
drwxr-xr-x
の代わりに、d
ではなく-
で始まるものがある場合は、ディレクトリではなくファイルを作成しました。ファイルを削除し、代わりにディレクトリを作成します。
最初のpenner
の代わりに何か他のものがある場合、ユーザーは自分のホームディレクトリを所有していないので、それを所有させます。
Sudo chown penner /home/penner
man chown
を参照してください。drwxr-xr-x
の代わりにd
の後の次の3文字にダッシュがある場合、ユーザーはそこに完全にアクセスできません。次のように修正します。
Sudo chmod u+rwx /home/penner
man chmod
を参照してください。(penner
は、ホームディレクトリを所有している場合、このコマンドを実行できます。したがって、必要に応じて、Sudo -u penner u+rwx /home/penner
として実行できます)
drwxr-xr-x
の代わりに、最後の6文字に-
sの代わりにw
sがある場合、penner
以外のユーザーは、penner
のホームディレクトリへの書き込みアクセス権を持っている可能性があります。これは危険です(あなたが本当にあなたが何をしているかを知っていて、この方法でそれを望み、問題にならないように設定していない限り)。修正するには:
Sudo chmod -R go-w /home/penner
他の変更が必要になる場合があります。 Ubuntuのデフォルトでは(つまり、adduser
またはグラフィカルツールを使用してユーザーアカウントを作成した場合)
ホームディレクトリには、所有するユーザーだけでなく、すべてのユーザーに対する読み取りおよび書き込み権限があります。 ユーザーは、ホームディレクトリ全体またはその中の任意のファイルとサブディレクトリに対して、これを変更できます。ただし、このデフォルトが必要で、drwxr-xr-x
に2番目と3番目のr
とx
がない場合は、次を実行します。
Sudo chmod 755 /home/penner
(penner
は、ホームディレクトリを所有している場合、このコマンドを実行できます。したがって、必要に応じて、Sudo -u penner chmod 755 /home/penner
として実行できます)
各ユーザーには、ユーザーと同じ名前の独自のグループがあり、これがユーザーのプライマリグループです。彼らのホームディレクトリはこのグループが所有しています。これが、drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner
の2番目のpenner
の意味です。自分が何をしているのかわかっている場合は、このデフォルトを壊してもかまいません。ただし、別のことをするつもりがない場合は、penner
がこのように設定されていることを確認する必要があります。ユーザーまたはユーザーのホームディレクトリのグループ所有者のプライマリグループIDがセキュリティ上の問題につながる可能性があるためです。
groups penner
を実行します。 (詳細については man groups
を参照してください。)次のようなものが表示されるはずです。
penner : penner adm dialout cdrom plugdev lpadmin sambashare
それほど似ていなくても心配しないでください。私はすぐにそれを取得します。代わりに、:
の後の最初のWordを見てください。それがユーザーのプライマリグループの名前です。 penner
にしたい場合は、それを確認してください。そうでない場合は、変更します。
Sudo usermod -g penner penner
グループpenner
が存在しないというエラーが表示された場合は、このコマンドで作成する必要があります(その後、上記のコマンドを再度実行します)。
Sudo addgroup penner
man addgroup
を参照してください。 (必要に応じて、代わりに groupadd
コマンドを使用してグループを作成できます。)groups penner
を実行したときに、私のpenner : penner adm dialout cdrom plugdev lpadmin sambashare
よりもかなり短いグループのリストを取得した可能性があります。デスクトップユーザーの場合、adm
、dialout
、cdrom
、plugdev
、lpadmin
、およびsambashare
は、デスクトップユーザーが通常持つべき機能を提供します。したがって、特に理由がない限り、penner
はこれらのグループに含まれている必要があります。ただし、これらはnotプライマリグループであるため、設定が異なります。 penner
がこれらのグループのいずれにも含まれておらず、penner
をすべてのグループに含める場合は、次のコマンドを実行します。
Sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
興味のある方のために、これらのグループの意味は次のとおりです。
adm
users 表示可能/var/log
内のほとんどのシステムログファイル。dialout
users 使用可能 ダイヤルアップモデム。plugdev
users マウントおよび使用可能 外部ストレージデバイス。lpadmin
users セットアップと管理が可能 プリンター。sambashare
users can can ファイル( Samba を介して)ネットワーク上の他のコンピューターと。(出典: Privileges 、Ubuntuドキュメントwiki内)
penner
を管理者にしたくない場合は、おそらく他に何もする必要はありません。 penner
がgroups penner
を持つ管理者であるかどうかを確認できます。 admin
もSudo
もリストされていない場合、penner
は管理者ではありません。
penner
を管理者にしたい場合は、これらのグループのいずれかにpenner
を追加します。 (両方が存在する場合は、両方にpenner
を追加することもできます。)これら2つのコマンドを別々に実行することで、どちらかが成功すると、penner
を管理者に設定できます。
Sudo usermod -a -G admin penner
Sudo usermod -a -G Sudo penner
admin
グループに属していたためです。 Ubuntu 12.04 LTS以降、管理者はSudo
グループに属します。ただし、12.04 LTSシステムが以前のリリースからアップグレードされた場合(およびこれは、Ubuntu 11.10以前からアップグレードされた12.10など、それ以降のUbuntuリリースに適用されるはずです)、後方互換性のために、管理者は両方のメンバーですSudo
およびadmin
。一般に、これらのグループのいずれかが管理能力を付与しない場合、それは単に存在しないため、上記の2つのコマンドを(別々に、Sudo usermod -a -G admin,Sudo penner
としてではなく)実行することは、一般的にpenner
を管理者にする安全で効果的な方法です。これは主に、ユーザーのホームディレクトリを作成せずにユーザーを作成するときに発生します。これは、ユーザーを作成するときにこのコマンドを使用することで解決できます
useradd -m the_username
-mフラグは、ユーザーのホームディレクトリを作成するものです。ユーザーを作成したら、そのユーザーのホームディレクトリが存在するかどうかを確認してください。
ls /home
そのユーザー名がリストに表示されている場合、最後に行うことは、そのユーザーにパスワードを割り当てることです
passwd the_username
そのユーザー名とパスワードでログインできるようになりました