无法登录,似乎被锁定在主目录之外

2-b*_*its 6 fedora login permissions home files

我刚刚从 Kubuntu 切换到 Feodra KDE Spin。现在,我有一个 LVM 设置,我的主分区在它自己的卷上。我创建了一个用户名与上一个发行版中的用户名相同的用户。我很沮丧地发现我无法登录。屏幕只是一片空白,然后我看到一个闪烁的光标,然后我又回到了登录屏幕。我试图从一个有效的 tty 登录,但我收到了这条美妙的消息:

-- user: /home/user: change directory failed: Permission denied
Run Code Online (Sandbox Code Playgroud)

好的。因此,我以 root 用户身份登录并尝试将所有内容 chown 回user. 没什么好说的。我修改了我的 /home/user 目录。依然没有。对于接下来应该尝试什么,我正式不知所措,我认为你们这些好人可能会有所帮助。这里有一些信息给你:

id -u user 
1000

stat /home/user/
  File: '/home/user/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 11272193    Links: 22
Access: (0700/drwx------)  Uid: ( 1000/user)   Gid: ( 1000/user)
Context: system_u:object_r:unlabeled_t:s0
Access: 2017-06-16 19:42:02.224062623 -0400
Modify: 2017-06-16 19:42:00.651082621 -0400
Change: 2017-06-16 19:42:00.651082621 -0400
 Birth: -
Run Code Online (Sandbox Code Playgroud)

这一切对我来说都很好,但我知道什么?奇怪的是,当我以 身份登录时user,我可以cd毫无问题地进入该目录。

Kev*_*inO 6

根据 OP 的信息(顺便说一句,这对这个问题来说非常好),SELinux 上下文是不正确的。在 OP 的问题中,上下文显示为:

Context: system_u:object_r:unlabeled_t:s0

但是,主目录应该有user_home_dir_t.

为了解决这种情况,运行restorecon -Rv /home(使用 /home 确保更新其他用户的主目录;可以通过 修复特定用户的主目录restorecon -Rv /home/user)将调整情况。结果应该类似于:

File: ‘/home/user’
Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 18642668    Links: 16
Access: (0700/drwx------)  Uid: ( 1000/ user)   Gid: ( 1000/ user)
Context: unconfined_u:object_r:user_home_dir_t:s0      <-- THE CONTEXT
Access: 2017-06-16 19:10:34.914968689 -0600
Modify: 2017-06-16 18:30:31.135767008 -0600
Change: 2017-06-16 18:30:31.135767008 -0600
Birth: -
Run Code Online (Sandbox Code Playgroud)

使用-R还可以确保/home/user正确调整中的目录。例如,.ssh目录的上下文为unconfined_u:object_r:ssh_home_t:s0.