すでに存在するホームディレクトリを使用して新しいユーザーを作成するにはどうすればよいでしょうか?

すでに存在するホームディレクトリを使用して新しいユーザーを作成するにはどうすればよいでしょうか?

というユーザーがいるとしますパノラマ彼のホームディレクトリは にあります/home/panos。そこで、別のユーザーを作成します。トム:

adduser Tom

ユーザーを作成しますトムホームディレクトリを持つ人:/home/Tom

問題は、新しいユーザーを作成し、そのユーザーに別のユーザーのホームディレクトリをホームディレクトリとして割り当てたい場合です。たとえば、ユーザーを作成します。ジェリーそして、彼のホームディレクトリをユーザーのホームディレクトリとして渡すパノス:

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

うまくいったようです。しかし、Jerry としてログインしようとすると:

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

ジェリーとしてログインできなくなり、プロンプトも変更されます(プレイステーション1)。

それで、どうすればこれができるのでしょうか? 可能ですか?

答え1

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

adduser: 警告: ホーム ディレクトリがすでに存在します。skel
ディレクトリからそこにファイルをコピーしません。

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

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

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

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

答え2

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

Jerry実際にはログインしました。 をお試しくださいwhoami

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

答え3

$ mv /home/jerry /home/xxx
$ userdel -r jerry
$ rm -rf /var/spool/mail/jerry
$ useradd jerry
$ mv /home/xxx /home/jerry

ジェリーホームはすでに存在するので、次のように表示されます

bash-4.1$ bash 

既存のホームディレクトリを新しい場所に移動してユーザーを再度作成することを回避するには

関連情報