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毫无问题地进入该目录。
根据 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.