chown命令用法,chown命令实例

http://www.itjxue.com  2023-01-21 22:12  来源:未知  点击次数: 

linux命令chown怎么用

chown [-cfhvR] [--help] [--version] user[:group] file...

user : 新的档案拥有者的使用者 ID group : 新的档案拥有者的使用者群体(group) -c : 若该档案拥有者确实已经更改,才显示其更改动作 -f : 若该档案拥有者无法被更改也不要显示错误讯息 -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案 -v : 显示拥有者变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更) --help : 显示辅助说明 --version : 显示版本

linux如何使用chown改变权限?

1:改变拥有者和群组,命令:chown mail:mail server.log。2:改变文件拥有者和群组,命令:chown root: server.log。3:改变文件群组,命令:chown :mail server.log,4:改变指定目录以及其子目录下的所有文件的拥有者和群组。命令:chown -R -v root:mail test6。-R 处理指定目录以及其子目录下的所有文件。-v 显示详细的处理信息,尽请关注《linux就该这么学》官网。

chown 命令使用方法

Linux ?系统上的每个文件和目录均由某个人拥有,拥有者可以完全控制更改或删除他们拥有的文件。除了有一个拥有用户外,文件还有一个拥有组。

你可以使用 ls -l? 命令 查看文件的所有权:

[pablo@workstation Downloads]$ ls -l

total 2454732

-rw-r--r--. 1 pablo pablo 1934753792 Jul 25 18:49 Fedora-Workstation-Live-x86_64-30-1.2.iso

该输出的第三和第四列是拥有用户和组,它们一起称为所有权。上面的那个 ISO 文件这两者都是 pablo。

所有权设置由 chmod 命令进行设置,控制允许谁可以执行读取、写入或运行的操作。你可以使用 chown 命令更改所有权(一个或两者)。

所有权经常需要更改。文件和目录一直存在在系统中,但用户不断变来变去。当文件和目录在系统中移动时,或从一个系统移动到另一个系统时,所有权也可能需要更改。

我的主目录中的文件和目录的所有权是我的用户和我的主要组,以 user:group 的形式表示。假设 Susan 正在管理 Delta 组,该组需要编辑一个名为 mynotes 的文件。你可以使用 chown 命令将该文件的用户更改为 susan,组更改为 delta:

$ chown susan:delta mynotes

ls -l

-rw-rw-r--. 1 susan delta 0 Aug? 1 12:04 mynotes

当给该文件设置好了 Delta 组时,它可以分配回给我:

$ chown alan mynotes

$ ls -l mynotes

-rw-rw-r--. 1 alan delta 0 Aug? 1 12:04 mynotes

给用户后添加冒号(:),可以将用户和组都分配回给我:

$ chown alan: mynotes

$ ls -l mynotes

-rw-rw-r--. 1 alan alan 0 Aug? 1 12:04 mynotes

通过在组前面加一个冒号,可以只更改组。现在,gamma 组的成员可以编辑该文件:

$ chown :gamma mynotes

$ ls -l

-rw-rw-r--. 1 alan gamma 0 Aug? 1 12:04 mynotes

chown 的一些附加参数都能用在命令行和 脚本 中。就像许多其他 Linux 命令一样,chown 有一个递归参数(-R),它告诉该命令进入目录以对其中的所有文件进行操作。没有 -R 标志,你就只能更改文件夹的权限,而不会更改其中的文件。在此示例中,假定目的是更改目录及其所有内容的权限。这里我添加了 -v(详细)参数,以便 chown 报告其工作情况:

$ ls -l . conf

.:

drwxrwxr-x 2 alan alan 4096 Aug? 5 15:33 conf

conf:

-rw-rw-r-- 1 alan alan 0 Aug? 5 15:33 conf.xml

$ chown -vR susan:delta conf

changed ownership of 'conf/conf.xml' from alan:alan to? susan:delta

changed ownership of 'conf' from alan:alan to? susan:delta

根据你的角色,你可能需要使用 sudo 来更改文件的所有权。

在更改文件的所有权以匹配特定配置时,或者在你不知道所有权时(例如运行 脚本 时),可以使用参考文件(--reference=RFILE)。例如,你可以复制另一个文件(RFILE,称为参考文件)的用户和组,以撤消上面所做的更改。回想一下,点(.)表示当前的工作目录。

$ chown -vR --reference=. conf

报告更改

大多数命令都有用于控制其输出的参数。最常见的是 -v(--verbose)以启用详细信息,但是 chown 还具有 -c(--changes)参数来指示 chown 仅在进行更改时报告。chown 还会报告其他情况,例如不允许进行的操作。

参数 -f(--silent、--quiet)用于禁止显示大多数错误消息。在下一节中,我将使用 -f 和 -c,以便仅显示实际更改。

保持根目录

Linux 文件系统的根目录(/)应该受到高度重视。如果命令在此层级上犯了一个错误,则后果可能会使系统完全无用。尤其是在运行一个会递归修改甚至删除的命令时。chown 命令具有一个可用于保护和保持根目录的参数,它是 --preserve-root。如果在根目录中将此参数和递归一起使用,那么什么也不会发生,而是会出现一条消息:

$ chown -cfR --preserve-root alan /

chown: it is dangerous to operate recursively on '/'

chown: use --no-preserve-root to override this failsafe

如果不与 --recursive 结合使用,则该选项无效。但是,如果该命令由 root 用户运行,则 / 本身的权限将被更改,但其下的其他文件或目录的权限则不会更改:

$ chown -c --preserve-root alan /

chown: changing ownership of '/': Operation not permitted

[root@localhost /]# chown -c --preserve-root alan /

changed ownership of '/' from root to alan

所有权即安全

文件和目录所有权是良好的信息安全性的一部分,因此,偶尔检查和维护文件所有权以防止不必要的访问非常重要。chown 命令是 Linux 安全命令集中最常见和最重要的命令之一。

chown命令怎么使用

更改所属用户。

chown user. user file

或者chown -R来改变整个目录,

如何使用chown

在使用linux系统时,常用的指令还是常用的,也是必须会用的。chown主要是修改文件的所有者,一个文件可以归某个用户所有,同时也归某个组所有,但是这里的某个用户和某组的名称可以一样也可以不一样的。本教程以图文方式详细介绍命令chown的使用。

PC

linux

以test为例,目前test归root用户拥有,也归root组拥有

[root@localhost home]# ls -al

total 36

drwxr-xr-x 6 root root 4096 Jan 28 12:20 .

drwxr-xr-x 21 root root 4096 Jan 27 20:20 ..

drwxr-xr-x 5 redhat3 root 4096 Jan 28 11:57 eda

drwx------ 2 root root 16384 Jan 25 20:40 lost+found

drwx------ 13 redhat3 redhat3 4096 Jan 28 12:03 redhat3

drwxr-xr-x 2 root root 4096 Jan 28 12:20 test

现在若这样执行命令的话,则归redhat3用户拥有,但是还是归root组,意思是只修改了用户,没有修改组

[root@localhost home]# ls -al

total 36

drwxr-xr-x 6 root root 4096 Jan 28 12:20 .

drwxr-xr-x 21 root root 4096 Jan 27 20:20 ..

drwxr-xr-x 5 redhat3 root 4096 Jan 28 11:57 eda

drwx------ 2 root root 16384 Jan 25 20:40 lost+found

drwx------ 13 redhat3 redhat3 4096 Jan 28 12:03 redhat3

drwxr-xr-x 2 redhat3 root 4096 Jan 28 12:20 test

现在若这样执行命令的话,则归redhat3用户拥有,组也改为redhat3组,意思是修改了用户,也修改组

[root@localhost home]# chown redhat3:redhat3 /home/test/

[root@localhost home]# ls -al

现在若这样执行命令的话,则归redhat3用户拥有,组也改为root组,意思是修改了用户,也修改组

用户修改 组也修改

[root@localhost home]# chown redhat3:root /home/test/

[root@localhost home]# ls -al

total 36

drwxr-xr-x 6 root root 4096 Jan 28 12:20 .

drwxr-xr-x 21 root root 4096 Jan 27 20:20 ..

drwxr-xr-x 5 redhat3 redhat3 4096 Jan 28 11:57 eda

drwx------ 2 root root 16384 Jan 25 20:40 lost+found

drwx------ 13 redhat3 redhat3 4096 Jan 28 12:03 redhat3

drwxr-xr-x 2 redhat3 root 4096 Jan 28 12:20 test

现在若这样执行命令的话,则归redhat3用户拥有,组也改为redhat3组,意思是修改了用户,也修改修改组不过这种方法是redhat3:后面省略了组名。用户修改,组也修改,不过该组就是该用户登录时所属的组

[root@localhost home]# chown redhat3: /home/test/

[root@localhost home]# ls -al

total 36

drwxr-xr-x 6 root root 4096 Jan 28 12:20 .

drwxr-xr-x 21 root root 4096 Jan 27 20:20 ..

drwxr-xr-x 5 redhat3 redhat3 4096 Jan 28 11:57 eda

drwx------ 2 root root 16384 Jan 25 20:40 lost+found

drwx------ 13 redhat3 redhat3 4096 Jan 28 12:03 redhat3

drwxr-xr-x 2 redhat3 redhat3 4096 Jan 28 12:20 test

现在若这样执行命令的话,则归redhat3用户没有变,组也改为root组,意思是只修改了组

[root@localhost home]# chown :root /home/test/

[root@localhost home]# ls -al

total 36

drwxr-xr-x 6 root root 4096 Jan 28 12:20 .

drwxr-xr-x 21 root root 4096 Jan 27 20:20 ..

drwxr-xr-x 5 redhat3 redhat3 4096 Jan 28 11:57 eda

drwx------ 2 root root 16384 Jan 25 20:40 lost+found

drwx------ 13 redhat3 redhat3 4096 Jan 28 12:03 redhat3

drwxr-xr-x 2 redhat3 root 4096 Jan 28 12:20 test

[root@localhost home]#

7

总结:chown 用户名:组 名 文件 若同时修改用户名和组名时,需要把两者都写上,若只修改用户名的话,则组名及其用户名后面的冒号就不要用;若只修改组名,而用户名不修改的话,则是:组名;若只修改的用户名,组名就是所登录时的组名的话,就是用户名:

(责任编辑:IT教学网)

更多