
假設我有一個名為帕諾斯他的主目錄位於/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$
它阻止我以 Jerry 身份登錄,並且還更改了我的提示符(PS1)。
那麼,我該怎麼做呢?是否可以?
答案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
只能被 Jerry 不屬於的群組讀取panos
(也許 Jerry 不屬於的群組),要么是因為Jerry/home/panos
無法存取該目錄本身(x
權限)。因此 bash 告訴您它無法讀取其啟動文件,並顯示預設提示符。
多個使用者俱有相同的主目錄是非常不尋常的(不包括其主目錄無關緊要的系統帳戶)。您應該對權限做什麼取決於您想要透過此實現的目標。您可能確實希望至少允許所有這些使用者讀取他們的主目錄。
答案2
嗯,當然。它正在嘗試讀取並執行/home/panos/.bashrc
.該檔案屬於 user 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
jerry home 已經存在,所以你會提示像
bash-4.1$ bash
避免 mv 現有主目錄新位置並再次建立用戶