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来批量的修改文件夹里面的文件时,则不会改变链接所指向的文件