Answers:
chown命令用于更改文件或目录的所有者和组所有者。使用此命令需要超级用户特权。chown的语法如下所示:
chown [owner][:[group]] file...
chown可以根据命令的第一个参数来更改文件所有者和/或文件组所有者。这里有些例子:
chown owner file
例:
chown bob file --> Changes the ownership of the file from its current owner to user bob.
chown owner:group file
例:
chown bob:users file --> Changes the ownership of the file from its current owner to user bob and changes the file group owner to group users.
chown :group file
例:
chown :admins file --> Changes the group owner to the group admins. The file owner is unchanged.
chown owner: file
例:
chown bob: file --> Change the file owner from the current owner to user bob and changes the group owner to the login group of user bob.
请阅读这份不错的教程https://www.linode.com/docs/tools-reference/linux-users-and-groups。这显示有关用户,组,权限,...的一些信息
sudo
是否需要执行文件?
不是user:user
,但是user:group
。
这是命令格式
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用户组可以包括许多用户。以下是有关组的一些信息:
Linux使用组来组织用户。组主要是为了安全起见而组织帐户集合。通过/ etc / group文件管理组成员资格的控制,该文件显示了组及其成员的列表。每个用户都有一个默认或主要组。用户登录时,将为其主要组设置组成员身份。这意味着当用户启动程序或创建文件时,该文件和正在运行的程序都将与该用户的当前组成员身份相关联。用户可以访问其他组中的其他文件,只要它们也是该组的成员并且已设置访问权限即可。要运行程序或在其他组中创建文件,用户必须运行newgrp命令来切换其当前组。
文件由用户和组拥有。默认情况下,除非更改了文件,否则它由创建文件的用户及其默认组所拥有。
在您的情况下,用户root
是group的成员root
。
root
和root root
小组有什么区别?虽然我了解所有者部分
cut -d: -f1 /etc/group
命令,则可以看到系统中组的完整列表。unix.stackexchange.com/questions/153390/…可能会帮助您了解为什么会有一个使用用户名的组
man chown
提供有关chown
命令的描述和用法以及其他有用的信息。
NAME
chown - change file owner and group
SYNOPSIS
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
从手册页给出的信息中,我们可能知道将chown $USER:$USER
目标文件的所有者和组更改为$USER
,而chown $USER
仅将目标文件的所有者更改为,而将目标文件的$USER
组保持不变。
详细信息(来自手册页)如下:
Owner is unchanged if missing. Group is unchanged if missing, but changed to
login group if implied by a ':' following a symbolic OWNER. OWNER and GROUP may
be numeric as well as symbolic.
因此chown $USER:$USER
可以简称为chown $USER:
。
像root root
来自namei -l
command这样的输出表示该文件的所有者和组都设置为root
。这不是所有者定义或两次列出。所有者和组是两个相关但不同的概念。文件始终具有所有者和组。
对于使用chown
命令,很有可能需要超级用户特权,因为使用chown
命令时可能会转移文件的所有权。但是,事实并非总是如此。
假设我们有一个名为“ test”的用户,该用户属于多个组。id
命令给出以下输出:
uid=1000(test) gid=1000(test) groups=1000(test),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),110(sambashare)
用户“ test”拥有以下文件:
-rw-r--r-- 1 test test 0 May 27 23:34 test_file
然后,我们可以将的组更改test_file
为sambashare
没有超级用户特权,因为用户“ test”同时属于“ test”组和“ sambashare”组,因此用户“ test”已经拥有足够的权限来更改文件组。