1、用命令新建一用戶 adduser -d /test/bdctool -m bdctool
2、用新用戶登錄,報錯:Could not chdir to home directory /test/bdctool: Permission denied
Last login: Wed Apr 11 17:43:27 2018 from 10.1.26.41
Could not chdir to home directory /test/bdctool: Permission denied
3、但是同樣一台機器,有的用戶可以正常登錄,卻沒有報這個錯。比如用戶sims20(其home目錄為/opt/aspire/product/sims20)
4、查了一下資料,大約是與SELINUX相關
5、看一下可以正常登錄及會報錯用戶的home目錄的安全上下文
[root@sv09135 test]# ls -Z -d /opt/aspire/product/sims20
drwxrwxrwx. sims20 sims20 system_u:object_r:usr_t:s0 /opt/aspire/product/sims20
[root@sv09135 test]# ls -Z -d /test/bdctool
drwx------. bdctool bdctool system_u:object_r:default_t:s0 /test/bdctool
還是有區別的,出問題的類型為default_t,而正常的卻是usr_t
6、改一下吧,將出問題的也改為usr_t
[root@sv09135 test]# chcon -t usr_t /test/bdctool
查一下,改過來了
[root@sv09135 test]# ls -Z -d /test/bdctool
drwx------. bdctool bdctool system_u:object_r:usr_t:s0 /test/bdctool
7、再次用bdctool用戶以SSH方式登錄,問題還在,沒解決
Last login: Wed Apr 11 17:44:45 2018 from 10.1.26.41
Could not chdir to home directory /test/bdctool: Permission denied
[bdctool@sv09135 /]$
8、看一下正常用戶sims20用戶家目錄所有上級目錄的安全上下文件
[root@sv09135 test]# ls -Z -d /opt /opt/aspire /opt/aspire/product
drwxr-xr-x. root root system_u:object_r:usr_t:s0 /opt
drwxrwxrwx. root root unconfined_u:object_r:usr_t:s0 /opt/aspire
drwxrwxrwx. root root unconfined_u:object_r:usr_t:s0 /opt/aspire/product
都是usr_t
9、再看一下出問題的bdctool用戶的所有上級目錄的安全上下文
[root@sv09135 test]# ls -Z -d /test /test/bdctool
drwxr-xr-x. root root system_u:object_r:default_t:s0 /test
drwx------. bdctool bdctool system_u:object_r:usr_t:s0 /test/bdctool
上級目錄還是default_t
10、將上級目錄test目錄也改也下吧
[root@sv09135 test]# chcon -t usr_t /test
查一下,修改成功了
[root@sv09135 test]# ls -Z -d /test /test/bdctool
drwxr-xr-x. root root system_u:object_r:usr_t:s0 /test
drwx------. bdctool bdctool system_u:object_r:usr_t:s0 /test/bdctool
11、再次用bdctool用戶以SSH方式登錄,問題解決了,原來從根目錄開始每一級目錄都要改
Last login: Wed Apr 11 17:55:17 2018 from 10.1.26.41
[bdctool@sv09135 ~]$