就我而言,当我以用户 ludow 创建文件或文件夹时,文件或文件夹的所有者是 root
例子
❯ whoami
ludow
❯ touch test
❯ ls -al | grep test
-rwxrwxrwx 1 root root 0 30 oct. 21:02 test
chown 不工作
❯ chown -v ludow:ludow test
membership of 'test' changed from root:root to ludow:ludow
所有者没有改变
❯ ls -al | grep test
-rwxrwxrwx 1 root root 0 30 oct. 21:02 test
我的所有文件都归 root 所有,即使是那些不应该属于 root 的文件
这是有关我的环境的一些信息
❯ neofetch
' ludow@Spiron
'o' ------------
'ooo' OS: Artix Linux x86_64
'ooxoo' Host: Inspiron 15 5510
'ooxxxoo' Kernel: 6.0.5-x64v1-xanmod1
'oookkxxoo' Uptime: 54 mins
'oiioxkkxxoo' Packages: 1252 (pacman), 5 (flatpak)
':;:iiiioxxxoo' Shell: zsh 5.9
`'.;::ioxxoo' Resolution: 1920x1080, 1920x1080
'-. `':;jiooo' DE: Plasma 5.26.2
'oooio-.. `'i:io' WM: KWin
'ooooxxxxoio:,. `'-;' Theme: Artix-dark [Plasma], Artix-dark [GTK2/3]
'ooooxxxxxkkxoooIi:-. `' Icons: [Plasma], Colloid-nord-dark [GTK2/3]
'ooooxxxxxkkkkxoiiiiiji' Terminal: alacritty
'ooooxxxxxkxxoiiii:'` .i' CPU: 11th Gen Intel i5-11320H (8) @ 4.500GHz
'ooooxxxxxoi:::'` .;ioxo' GPU: Intel TigerLake-LP GT2 [Iris Xe Graphics]
'ooooxooi::'` .:iiixkxxo' Memory: 3500MiB / 7696MiB
'ooooi:'` `'';ioxxo'
'i:'` '':io'
'` `'
在不重新安装操作系统的情况下恢复默认行为的解决方案是什么?
/etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=5895-EEC1 /boot/efi vfat umask=0077 0 2
UUID=04cddafd-0517-4528-a181-d4592f483992 / xfs defaults,noatime 0 1
UUID=9cfe2ed5-6cc5-4a67-8bf8-bad85c9a3f3d swap swap defaults,noatime 0 0
UUID=05F56DAC5B0B310A /home ntfs defaults,noatime 0 2
tmpfs /tmp tmpfs defaults,noatime,mode=1777
答案1
您的主目录是 NTFS 分区(来自 Microsoft Windows)。 NTFS 的权限模型与 Linux 非常不同,因此用户无法直接映射到 Linux。
您看到的行为是默认行为,其中分区中的所有文件都会自动解释为属于root
.
我相信现在有一种方法可以将 NTFS 用户映射到 Linux 用户,你可能需要花一些时间在 Google 上弄清楚如何实现。这里有一些参考:https://man.archlinux.org/man/extra/ntfs-3g/ntfsusermap.8.en
一般来说,让 Windows 主目录与 Linux 主目录完全相同并不是一个好主意。应用程序将尝试将文件以及配置和缓存等存储在主目录的根目录中。如果您碰巧在两个操作系统上安装相同的应用程序,您可能会发现缓存或配置的差异足以使一个操作系统或另一个操作系统中的应用程序感到困惑。其他。
一般来说,最好共享一个子目录(甚至可能~/Documents
),但根目录~
要分开。