linux怎么修改文件所属用户和组
在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。该文件用户可以修改该文件的拥有者及用户组别;或者在root用户下,这样可以修改任何文件的拥有者及用户组。
chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。
当只需要修改所有者时,可使用如下 chown 命令的基本格式:
-R(注意大写)选项表示连同子目录中的所有文件,都更改所有者。
当只需要修改所属组时,可使用如下 chown 命令的基本格式:
如果需要同时更改所有者和所属组,chown 命令的基本格式为:
注意,在 chown 命令中,所有者和所属组中间也可以使用点(.),但会产生一个问题,如果用户在设定账号时加入了小数点(例如 zhangsan.temp),就会造成系统误判。因此,建议大家使用冒号连接所有者和所属组。
当然,chown 命令也支持单纯的修改文件或目录的所属组,例如 chown :group install.log 就表示修改 install.log 文件的所属组,但修改所属组通常使用 chgrp 命令,因此并不推荐大家使用 chown 命令。
另外需要注意的一点是,使用 chown 命令修改文件或目录的所有者(或所属者)时,要保证使用者用户(或用户组)存在,否则该命令无法正确执行,会提示 "invalid user" 或者 "invaild group"。
chown命令的使用示例
1、更改文件的所属者
首先我们使用ls -l命令来查看一下文件的所属,例:
下面我们使用chown命令来更改该tmpfile文件的所属者
然后再使用ls -l命令来查看一下该tmpfile文件的所属
可以看出:该tmpfile文件的所属者从“himanshu”变为了“root”
2、更改文件组
通过chown命令,也可以更改组(文件所属的组别)。
使用以下命令来更改文件所属的组别:
然后使用ls -l命令来查看一下该tmpfile文件的所属
也可以直接一次性更改文件的所属者和组别为root,需要使用以下命令:
修改某个文件的拥有者,最常见的应用场景是在复制文件给其他人时 1 。
假设原来在 vagrant 账号下有一个 deniro.txt 文件:
这时我们使用 cp 命令( cp deniro.txt deniro_copy.txt ),把这个文件复制一份给其他人:
可以看到,这个新的 deniro_copy.txt 文件,它的拥有者以及拥有组名都为 vagrant。
如果我们把这个文件给其他账号,他们如果没有权限,根本无法使用。
解决这一问题的方法之一是使用 chgrp 命令修改这个新文件所在的组 2 。
这里我们采用另一种方法:修改这个新文件的拥有者。这会用到 chown 命令。Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令 3 。
chown 命令格式为: chown [-R] user[:group] file
比如我们想把新的 deniro_copy.txt 文件的拥有者改为 operator、组名修改为 tty,那么可以执行命令 chown operator:tty deniro_copy.txt (可能需要权限高的账号来执行该命令):
参考资料:
【1】鸟哥. 鸟哥的Linux私房菜 基础学习篇[M]. 第四版. 北京: 人民邮电出版社,2018:212-213.
【2】 说说在 Linux 中如何修改某个文件所属群组 .
【3】 Linux chown 命令 .
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)