如果我删除实际文件中的权限,符号链接不会更改它的权限吗?

如果我删除实际文件中的权限,符号链接不会更改它的权限吗?

我实际上开始学习 Unix,并且一直坚持在这里。虽然这个问题看起来很愚蠢,但我实际上并不清楚,所以请帮助我。

我有一个名为 somefile.txt 的文件和一个引用的符号链接somefile.txt,我发现两者的默认权限都是rw-r--r--

当我更改somefile.txt( chmod ugo=rwx somefile.txt) 的权限时,我发现两个文件都更改为rwxrwxrwx.但是,当我再次尝试通过给出更改权限时chmod u-rx somefile.txt,我发现仅在符号链接中发生了更改,somefile.txt但在符号链接中没有发生更改。我想知道为什么?我正在使用 RedHat cygwin。

答案1

您至少错误了一个命令的输出。符号链接的权限始终是rwxrwxrwx,或者更确切地说,它们根本没有权限:

$ touch file
$ ls -l 
total 0
-rw-rw-r-- 1 muru muru 0 Dec  5 20:53 file
$ ln -s file link
$ ls -l 
total 0
-rw-rw-r-- 1 muru muru 0 Dec  5 20:53 file
lrwxrwxrwx 1 muru muru 4 Dec  5 20:53 link -> file
$ chmod a+x file
$ ls -l
total 0
-rwxrwxr-x 1 muru muru 0 Dec  5 20:53 file
lrwxrwxrwx 1 muru muru 4 Dec  5 20:53 link -> file

看到这个FreeBSD 常见问题解答了解更多信息。

由于您使用的是 Linux,man chmod说:

   chmod never changes the permissions of symbolic links; the chmod system
   call cannot change their permissions.  This is not a problem since  the
   permissions  of  symbolic  links  are  never  used.   However, for each
   symbolic link listed on the command line, chmod changes the permissions
   of  the  pointed-to  file.   In  contrast, chmod ignores symbolic links
   encountered during recursive directory traversals.

相关内容