
というユーザーがいるとしますパノラマ彼のホームディレクトリは にあります/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
既存のホームディレクトリを新しい場所に移動してユーザーを再度作成することを回避するには