Linux/Unix 是多用户多任务操作系统,所有的文件皆有其拥有者(Owner)。利用 chown命令 可以将文件的拥有者加以改变。一般来说,这个命令只能由系统管理者(root)使用,一般用户没有权限来改变别人的文件的拥有者,也没有权限可以将自己的文件的拥有者改设为别人。只有系统管理者(root)才有这样的权限。

一、chown更改文件或目录的所有者

注意:所有者,必须存在于(/etc/passwd)下。比如:

cat /etc/passwd

➜   cat /etc/passwd
root:x:0:0:root:/root:/bin/zsh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
kun:x:1000:1000::/home/kun:/bin/zsh
quinn:x:1001:1001::/home/quinn:/bin/bash

更改文件或目录的所有者命令如下:

  1. 新建测试文件test,命令为touch testdir
  2. 查看文件的属性,命令为ls -l,当前文件属性为“用户和用户组都是root
drwxr-xr-x 2 root root 4096 Jun 28 01:36 testdir
  1. 更改“test”文件的所有者为”quinn”,已存在于”/etc/passwd”下,更改的命令为chown -R quinn testdir,如果修改的是整个文件夹下面的文件或文件夹,加R参数奶可,即chown -R 用户名 目录

2、文件或目录的用户组更改

注意:要更改的用户组,必须存在于“/etc/group”下

以上面的目录为例,现在testdir 的所属用户是quinn,所属组是root.如下所示:

➜  ~ ls -l
total 4
drwxr-xr-x 2 quinn root 4096 Jun 28 01:37 testdir

修改命令:

chgrp -R jd-root test_dir

如果只是文件,不加参数-R