panosというユーザーがいて、ホームディレクトリが/home/panos
にあるとします。次に、Tomという別のユーザーを作成します。
adduser Tom
それはユーザーを作成しますTomホームディレクトリを持っている人:/home/Tom
問題は、私が新しいユーザーを作成し、彼にhome dirとして別のユーザーのホームdirを与えたい場合です。たとえば、ユーザーJerryを作成し、彼のホームディレクトリとしてユーザーPanosのホームディレクトリとして渡します。
adduser -d /home/panos Jerry
しかし言っているエラーがあります:
adduser: warning: the home directory already exists.
Not copying any file from skel directory into it.
ただし、/etc/passwd
ファイルを確認すると、
tail -n 3 /etc/passwd
anthony:x:501:501::/home/anthony:/bin/bash
panos:x:502:502::/home/panos:/bin/bash
Jerry:x:503:503::/home/panos:/bin/bash
それはうまくいったようです。しかし、私がジェリーとしてログインしようとしたとき:
[root@LinuxAcademy ~]# su Jerry
bash-4.1$ bash: /home/panos/.bashrc: Permission denied
bash-4.1$
jerryとしてログインできないようにし、プロンプト(PS1)も変更します。
それで、どうすればこれを行うことができますか?出来ますか?
すでに存在するホームディレクトリを持つユーザーを作成しました。
adduser:警告:ホームディレクトリは既に存在します。
skelディレクトリからファイルをコピーしない。
これはエラーではなく、警告です。通常、ホームディレクトリを作成しない理由は、ホームディレクトリが存在しないはずのユーザーのためです。ここでは、システム管理者によるエラーである可能性が高いです(たとえば、不適切なコピーと貼り付けまたはバグのあるスクリプト)。実際には既存のホームディレクトリを使用するつもりだったので、この警告は無視してください。
[root@LinuxAcademy ~]# su Jerry
bash-4.1$ bash: /home/panos/.bashrc: Permission denied
bash-4.1$
あなたはジェリーとしてログインしました。そのbash 4.1はJerryとして実行されています。ファイル~/.bashrc
はpanos
(およびおそらくJerryが属していないグループ)に対してのみ読み取り可能であるため、Jerryには彼の.bashrc
を読み取る権限がありません。または、ディレクトリ/home/panos
自体がJerryにアクセスできない(x
権限)ためです。したがって、bashは起動ファイルを読み取れないことを通知し、デフォルトのプロンプトを表示します。
同じホームディレクトリを持つ複数のユーザーがいることは非常にまれです(ホームディレクトリが重要ではないシステムアカウントは除きます)。パーミッションについて何をすべきかは、これによって達成しようとしていることに依存します。おそらく、少なくともこれらすべてのユーザーにホームディレクトリの読み取りを許可する必要があります。
もちろんです。 /home/panos/.bashrc
を読み取って実行しようとしています。そのファイルはユーザーpanos
に属し、おそらく-rwx------
またはそのようなものに設定されています。したがって、Jerry
はそれを読み取ろうとしますが、読み取ることができません。 Permission denied
、まさにそのとおり。
Jerry
が実際にisログインしている可能性があります。whoami
を試してください。
したがって、それらを同じグループに入れてgroup-rxにするか、world-rxにするか、またはそのようなものにします。そして、ホームディレクトリに対しても同じことを実行します(ディレクトリに対して実行可能とは、検索可能を意味します)。