web-dev-qa-db-ja.com

どのようにすれば、既存のホームディレクトリを使用して新しいユーザーを作成できますか?

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)も変更します。

それで、どうすればこれを行うことができますか?出来ますか?

6
drpaneas

すでに存在するホームディレクトリを持つユーザーを作成しました。

adduser:警告:ホームディレクトリは既に存在します。
skelディレクトリからファイルをコピーしない。

これはエラーではなく、警告です。通常、ホームディレクトリを作成しない理由は、ホームディレクトリが存在しないはずのユーザーのためです。ここでは、システム管理者によるエラーである可能性が高いです(たとえば、不適切なコピーと貼り付けまたはバグのあるスクリプト)。実際には既存のホームディレクトリを使用するつもりだったので、この警告は無視してください。

[root@LinuxAcademy ~]# su Jerry
bash-4.1$ bash: /home/panos/.bashrc: Permission denied
bash-4.1$ 

あなたはジェリーとしてログインしました。そのbash 4.1はJerryとして実行されています。ファイル~/.bashrcpanos(およびおそらくJerryが属していないグループ)に対してのみ読み取り可能であるため、Jerryには彼の.bashrcを読み取る権限がありません。または、ディレクトリ/home/panos自体がJerryにアクセスできない(x権限)ためです。したがって、bashは起動ファイルを読み取れないことを通知し、デフォルトのプロンプトを表示します。

同じホームディレクトリを持つ複数のユーザーがいることは非常にまれです(ホームディレクトリが重要ではないシステムアカウントは除きます)。パーミッションについて何をすべきかは、これによって達成しようとしていることに依存します。おそらく、少なくともこれらすべてのユーザーにホームディレクトリの読み取りを許可する必要があります。

もちろんです。 /home/panos/.bashrcを読み取って実行しようとしています。そのファイルはユーザーpanosに属し、おそらく-rwx------またはそのようなものに設定されています。したがって、Jerryはそれを読み取ろうとしますが、読み取ることができません。 Permission denied、まさにそのとおり。

Jerryが実際にisログインしている可能性があります。whoamiを試してください。

したがって、それらを同じグループに入れてgroup-rxにするか、world-rxにするか、またはそのようなものにします。そして、ホームディレクトリに対しても同じことを実行します(ディレクトリに対して実行可能とは、検索可能を意味します)。

3
Tom Zych