如果当前用户所属的主用户组已经在系统中创建,为什么普通用户创建的文件,所属用户和所属组仍然显示的都是root
时间: 2024-03-11 19:44:44 浏览: 125
如果当前用户所属的主用户组已经在系统中创建,但是普通用户创建的文件的所属用户和所属组仍然显示为root,可能是因为当前用户没有写入文件的目录的权限,所以无法更改文件的所有者和用户组。在这种情况下,文件的所有者和用户组将继承其所在目录的所有者和用户组,如果目录的所有者是root,那么文件的所有者和用户组也会被设置为root。您可以使用"ls -ld"命令查看文件所在目录的所有者和用户组。如果您想更改文件的所有者和用户组,您需要有足够的权限去更改文件所在目录的所有者和用户组,或者使用"chown"和"chgrp"命令更改文件的所有者和用户组。
相关问题
linux中为什么普通用户创建的文件,所属用户和所属组显示的都是root
在Linux中,每个文件都由一个所有者(owner)和一个用户组(group)来管理。当普通用户创建文件时,默认情况下,文件的所有者会被设置为当前用户,而用户组则会被设置为当前用户所属的主用户组。然而,如果当前用户所属的主用户组没有在系统中创建,则用户组会被设置为"root"。因此,如果您看到普通用户创建的文件显示的所有者和用户组都是"root",则很可能是因为当前用户所属的主用户组没有在系统中创建。您可以使用命令"groups"查看当前用户所属的所有用户组。
如何让普通用户在新建文件时的所属人与所属组变成自己而不是root
在Linux系统下,文件的所有者和组是由文件系统权限决定的。一般情况下,新建的文件的所有者会被设置为创建该文件的用户,而组会被设置为创建该文件的用户所属的默认组。
如果你想让普通用户在新建文件时将所有者和组设为自己,而不是root,请按照以下步骤进行操作:
1. 确保用户已经有自己的默认组:
- 使用 `groups` 命令检查用户所属的默认组。
- 如果用户没有默认组,可以使用 `usermod` 命令为用户添加默认组,例如:`sudo usermod -g <group_name> <username>`。
2. 修改用户的 `umask` 值:
- `umask` 是用来设置默认权限掩码的。默认情况下,它会限制新建文件的权限。
- 使用 `umask` 命令查看当前的 `umask` 值:`umask`。
- 使用 `umask` 命令修改 `umask` 值,将其设为 `0002`(表示新建文件时给予组读写权限):`umask 0002`。
3. 如果使用 sudo 来创建文件,请确保 sudo 不会重置环境变量:
- 使用 `sudo -E` 命令来保持环境变量不变,例如:`sudo -E touch <filename>`。
通过以上步骤,普通用户在新建文件时应该会将所有者和组设为自己,而不是root。注意,这些设置可能会对系统安全性产生一定影响,请谨慎操作。
阅读全文