Rhel6

SL6:非標準主目錄,錯誤:登錄時Could not chdir to home directory,但cd $HOME有效?

  • November 15, 2012

我有一個全新的 Scientific Linux 6 實例(類似於 RHEL6 和 CentOS6),在 Parallels 上執行。

主目錄位於非標準位置,我將其稱為 /homedir

當我 ssh 進入這個盒子時,我得到一個錯誤:

laptop $ ssh 192.168.1.100
stefanl@192.168.1.100's password: 
Could not chdir to home directory /homedir/stefanl: Permission denied

但是隨後我可以立即進入該目錄,而不會出現錯誤:

[stefanl@localhost /]$ cd /homedir/stefanl
[stefanl@localhost ~]$ touch foo
[stefanl@localhost ~]$ ls -la
total 28
drwx------. 3 stefanl wheel   4096 Sep 14 17:53 .
drwxr-xr-x. 5 root    root    4096 Sep 14 17:16 ..
-rw-------. 1 stefanl stefanl  303 Sep 14 18:16 .bash_history
-rw-r--r--. 1 stefanl stefanl   18 May 26 08:46 .bash_logout
-rw-r--r--. 1 stefanl stefanl  176 May 26 08:46 .bash_profile
-rw-r--r--. 1 stefanl stefanl  124 May 26 08:46 .bashrc
-rw-rw-r--. 1 stefanl stefanl    0 Sep 14 17:46 foo

此外,我可以su以 root 身份訪問我的帳戶,而且它似乎工作正常。如果我沒有 chdir 訪問此目錄的權限,我會看到一個錯誤。

[stefanl@localhost ~]$ pwd
/data/homedir/stefanl
[stefanl@localhost ~]$ touch bar
[stefanl@localhost ~]$ 

為什麼我在初始登錄時出現錯誤,但之後我可以cd立即進入同一個目錄?

可能是 SELinux 問題。檢查/var/log/audit/audit.log任何相關消息。有關更多資訊,請參閱此內容豐富的文章,包括可能的修復:

# chcon -t home_root_t /homedir/stefanl

不將 SELinux 設置為 permissive 的正確命令是:( #chcon -t home_root_t /homedir 注意缺少的 stefanl 目錄)

引用自:https://serverfault.com/questions/311549