当前位置: 首页 > Linux

如何使用chown命令更改文件的所属用户和用户组?

时间:2023-04-06 21:05:56 Linux

chown(更改所有权),chown命令是一个命令行实用程序,用于更改文件或目录甚至链接的用户或组所有权。Linux理念是让每个文件或目录都由具有特定访问权限的特定用户或组拥有。chown命令语法如下:$chownOPTIONSUSER:GROUPfile(s)下面简单解释一下这些参数:USER:指拥有该文件的用户的用户名,可以指定用户名或UID。GROUP:选项指示文件在运行命令后将获得的新组的名称。file(s):选项表示常规文件或目录,甚至是符号链接。这里有几点需要注意:(1)当单独指定USER选项时,文件/目录的所有权改变为指定的用户,而组所有权保持不变$chownjohnfile1.txt在上面的命令中,文件file1.txt的用户所有权从当前用户更改为john。(2)如果USER选项后跟一个完整的冒号USER:,并且没有提供组名,则用户获得文件的所有权,但文件的组所有权切换到用户的登录组。$chownjohn:file1.txt在此示例中,用户john获得文件file1.txt的所有权,但该文件的组所有权更改为john的登录组。(3)当用户和组选项之间用冒号分隔,即USER:GROUP,不带空格时,文件将按照指定的方式获取新用户和组的所有权$chownjohn:johnfile1.txt(4)如果去掉USER选项,并且在GROUP选项前加一个冒号:GROUP,只会改变文件的所属组。查看文件权限要查看文件权限,只需使用ls-l命令后跟文件名$ls-lfile1.txt从输出中我们可以看到该文件属于linuxtechi用户并且属于linuxtechi组。更改文件所有者如果您在更改权限之前不是以root身份工作,请始终调用sudo。这为您提供了更改文件的用户和组所有权的高级权限。$sudochownuserfilename示例:$sudochownjamesfile1.txt从输出中,您可以看到文件的所有权已从linuxtechi更改为用户james或者,可以使用用户的UID。要获取UID,请查看/etc/passwd文件。$cat/etc/密码|grepusername从下面的示例中,我们可以看到用户linuxtechi的UID是1002要将文件所有权更改回linuxtechi用户,请执行以下命令$sudochown1002file1.txt像之前一样更改组所有者如前所述,要更改文件的组所有者,您可以省略用户并在组名前加上一个冒号。$sudochown:groupfile例如,要将file1.txt的组所有者从linuxtechi更改为docker,执行以下命令$sudochown:dockerfile1.txt同时更改用户和组所有者组,请指定用户和组选项,用冒号分隔,确保选项和冒号之间没有空格。$sudochownuser:groupfilename例如,以下命令将文件file1.txt的所有权更改为用户james,用户组为redis想要递归就地应用更改,以便将所有权更改向下应用到文件和子目录。为此,请使用-R选项或--recursive指令。$sudochown-Ruser:groupdirectory将/var/www目录中的所有文件和文件夹的所有权分配给www-data组$sudochown-R:www-data/var/www报告目录中的所有文件和文件夹并且文件夹的所有权分配给linuxtechi用户$sudochown-Rlinuxtechireports使用引用文件更改所有权最后,还有另一种更改文件所有权的好方法,那就是使用引用文件。chown命令用于使用另一个文件作为参考点来更改文件的用户和组所有权。$chown--reference=ref_filefile假设您要将file1.txt的用户和组所有权分配给另一个文件file2.txt$chown--reference=file1.txtfile2.txt上面的输出确认file2.txt继承自文件1。txt用户和组所有权我的开源项目course-tencent-cloud(酷瓜云课堂-gitee仓库)course-tencent-cloud(酷瓜云课堂-github仓库)