chown修改文件属主是带-R参数与不带-R参数,对链接文件的结果完全不一样

1   先用root登录,查看一下目录,可以看到有两个文文件夹,一个是fakeDir(属主是root),另一个是testDir(属主是root),一个属主是root的文件securitFile

2  进到testDir目录,建两个软连接,一个是文件指向刚才的securitFile,一个是目录指向fakeDir

[root@shaphicprd00957 testsh]# ll

total 12

drwxr-x--- 2 root root 4096 Jan  3 11:37 fakeDir

-rw------- 1 root root  10 Jan  3 11:42 securitFile

drwxr-x--- 2 root root 4096 Jan  3 11:42 testDir

[root@shaphicprd00957 testsh]# cd testDir/

[root@shaphicprd00957 testDir]# ll

total 4

-rw-r----- 1 root root 4 Jan  3  2020 toRoot

[root@shaphicprd00957 testDir]# ln -s ../securitFile ./file_link

[root@shaphicprd00957 testDir]# ln -s ../fakeDir/ ./dir_link

[root@shaphicprd00957 testDir]# ll

total 4

lrwxrwxrwx 1 root root 11 Jan  3 11:44 dir_link -> ../fakeDir/

lrwxrwxrwx 1 root root 14 Jan  3 11:43 file_link -> ../securitFile

-rw-r----- 1 root root  4 Jan  3  2020 toRoot


3  使用chown -R命令,对testDir修改属主,会发现testDir目录自己和目录里面的文件的属主都被修改了

4  但是软链接所指向的文件,也就是securitFile和fakeDir的属主并没有变化,所以用testsh的身份cat file_link的时候,自然是没权限

[root@shaphicprd00957 testDir]# cd ..

[root@shaphicprd00957 testsh]# chown -R testsh:testsh ./testDir/

[root@shaphicprd00957 testsh]# ll

total 12

drwxr-x--- 2 root  root  4096 Jan  3 11:37 fakeDir

-rw------- 1 root  root    10 Jan  3 11:42 securitFile

drwxr-x--- 2 testsh testsh 4096 Jan  3 11:44 testDir

[root@shaphicprd00957 testsh]# cd testDir/

[root@shaphicprd00957 testDir]# ll

total 4

lrwxrwxrwx 1 testsh testsh 11 Jan  3 11:44 dir_link -> ../fakeDir/

lrwxrwxrwx 1 testsh testsh 14 Jan  3 11:43 file_link -> ../securitFile

-rw-r----- 1 testsh testsh  4 Jan  3  2020 toRoot

[root@shaphicprd00957 testDir]# su testsh

[testsh@shaphicprd00957 testDir]$ cat ./file_link

cat: ./file_link: Permission denied


5  专门针对链接文件做chown的时候,会发现已经把链接所指向的文件修改了


[root@shaphicprd00957 testDir]# ll

total 4

lrwxrwxrwx 1 testsh testsh 11 Jan  3 11:44 dir_link -> ../fakeDir/

lrwxrwxrwx 1 testsh testsh 14 Jan  3 11:43 file_link -> ../securitFile

-rw-r----- 1 testsh testsh  4 Jan  3 11:47 toRoot

[root@shaphicprd00957 testDir]# chown testsh:testsh ./file_link

[root@shaphicprd00957 testDir]# ll

total 4

lrwxrwxrwx 1 testsh testsh 11 Jan  3 11:44 dir_link -> ../fakeDir/

lrwxrwxrwx 1 testsh testsh 14 Jan  3 11:43 file_link -> ../securitFile

-rw-r----- 1 testsh testsh  4 Jan  3 11:47 toRoot

[root@shaphicprd00957 testDir]# cd ..

[root@shaphicprd00957 testsh]# ll

total 12

drwxr-x--- 2 root  root  4096 Jan  3 11:37 fakeDir

-rw------- 1 testsh testsh  10 Jan  3 11:42 securitFile

drwxr-x--- 2 testsh testsh 4096 Jan  3 11:44 testDir


结论:  chown如果操作的是链接文件,那么会直接把链接所指向的文件的属主修改掉,但是如果加上-R来批量的修改文件夹里面的文件时,则不会改变链接所指向的文件

你可能感兴趣的:(chown修改文件属主是带-R参数与不带-R参数,对链接文件的结果完全不一样)