chown 没有改变符号链接

349 linux root bash shell symbolic-link

我正在尝试使用以下命令更改符号链接的用户/组:

$ chown -h myuser:mygroup mysymbolic/ 
Run Code Online (Sandbox Code Playgroud)

但它并没有改变。我以 root 身份登录。当前用户/组设置为 root:root。什么地方出了错?

riz*_*oro 417

我在目标的末尾加了一个斜线:

chown -h myuser:mygroup mysymbolic/ 
Run Code Online (Sandbox Code Playgroud)

最后刚刚删除了斜线并工作。这是正确的方法:

 chown -h myuser:mygroup mysymbolic
Run Code Online (Sandbox Code Playgroud)

  • @Radek 只要我记得 `-h` 标志,它就在 Ubuntu 上对我有用。 (56认同)
  • 在 Ubuntu 上为我工作 **with** `-h` 和 **without** 尾部斜杠。 (31认同)
  • 在 ubuntu 上对我不起作用 (10认同)
  • 我不敢相信 4 年后,我遇到了同样的问题,我过去的自己遇到了同样的问题,想念 '-h'! (10认同)
  • 哇,这花了我几个小时才找到。 (2认同)
  • @AntonyD'Andrea 好吧,你肯定_老_了......:-P (2认同)

小智 29

我自己试过这个,它对我有用。如果你有 -h 它会改变符号链接的所有者,但如果你没有,那么它会改变文件本身的所有者而不是链接。

但是符号链接链接到目录似乎不起作用

  • 值得一提的是,OS X 上的手册页上的 -h 选项比 (Arch) Linux 上的手册页清晰得多。“-h 如果文件是符号链接,请更改链接本身的用户 ID 和/或组 ID。” 与“-h,--no-dereference 影响符号链接而不是任何引用文件(仅在可以更改符号链接所有权的系统上有用)” (2认同)

Ste*_*ber 8

chown即使-h使用完整路径,我也无法访问目录。

# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps/
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# pwd 
/var/www/html
# chown -h deploy:deploy /var/www/html/apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 deploy deploy   32 Dec 30 09:02 apps -> /u/apps/
Run Code Online (Sandbox Code Playgroud)


小智 5

目标是文件还是目录?

如果是目录,则尝试 -H(大写 H)

  • 抱歉线程死灵法,但我想指出正确的语法是使用小写的“h”。 (7认同)