Qual sistema operacional você usa? De acordo com a página de manaul, a opção -h só afeta os sistemas que podem alterar a propriedade do link simbólico.
Jichao
Você está em uma montagem NFS?
Ortomala Lokni
Tudo o que termina com /é um diretório. Você quer dizer mysymbolic, qual é o link simbólico, não mysymbolic/qual é provavelmente o diretório para o qual ele aponta.
David Schwartz
Respostas:
381
Eu estava colocando uma barra no final do alvo:
chown -h myuser:mygroup mysymbolic/
acabou de remover a barra no final e funciona. Aqui está a maneira correta:
@Radek Funcionou para mim no Ubuntu desde que me lembrei da -hbandeira.
IQAndreas
29
Funciona para mim no Ubuntu com-h e sem a barra final.
Friederbluemle
8
Não posso acreditar que, depois de quatro anos, esbarrei no meu passado sofrendo o mesmo problema, a falta -h!
Antony D'Andrea
29
Eu tentei isso sozinho e funciona para mim. Se você possui -h, ele altera o proprietário do link simbólico, mas, se não, o proprietário do arquivo e não o link.
Mas parece que o link simbólico não está ligado a um diretório
Pelo que vale a pena, a página de manual no OS X é muito mais clara na opção -h do que a do (Arch) Linux. “-H Se o arquivo for um link simbólico, altere o ID do usuário e / ou o ID do grupo do próprio link.” Vs. “-h, --no-dereference afeta os links simbólicos em vez de qualquer arquivo referenciado (útil apenas em sistemas que podem alterar a propriedade de um link simbólico)”
Matijs
6
Eu era incapaz de chownum diretório, mesmo com, -hmas usando o caminho completo funcionou.
Sua resposta é sem detalhes e difícil de entender completamente. Por favor, considere revisar sua resposta para fornecer mais detalhes.
James Mertz
1
Eu tive um problema parecido. Para mim, eu não poderia chmod o link simbólico, mesmo como root, independentemente de como chamei chmod. Para acrescentar confusão, o nautilus estava mostrando o proprietário / grupo como nada. O proprietário estava em branco. Então, tentei mudar o link simbólico usando o nautilus executando como root, pois o chmod não estava funcionando e o nautilus travou!
Mas acho que descobri o problema. O diretório para o qual o link simbólico estava apontando tinha permissões diferentes do link simbólico. Então, modifiquei o diretório de destino (usando -h) para o meu nome de usuário / grupo. Então chmod'ed o link simbólico para o mesmo e funcionou! E visualizar os detalhes do link simbólico no nautilus (com permissões de root) agora não trava mais.
Portanto, para outras pessoas com problemas semelhantes, verifique as permissões do diretório / arquivo de destino e verifique se é compatível com as permissões para as quais você está configurando o link simbólico.
Observe que alterar o ownerlink simbólico só funcionará se o destino estiver acessível pelo novo usuário ao qual você deseja atribuir.
Por exemplo, se o seu destino estiver dentro de uma pasta à qual o usuário ao qual você deseja atribuir não possui direitos suficientes, o ln -s commandcomportamento é tal que ele não fará absolutamente nada.
/
é um diretório. Você quer dizermysymbolic
, qual é o link simbólico, nãomysymbolic/
qual é provavelmente o diretório para o qual ele aponta.Respostas:
Eu estava colocando uma barra no final do alvo:
acabou de remover a barra no final e funciona. Aqui está a maneira correta:
fonte
-h
bandeira.-h
e sem a barra final.Eu tentei isso sozinho e funciona para mim. Se você possui -h, ele altera o proprietário do link simbólico, mas, se não, o proprietário do arquivo e não o link.
Mas parece que o link simbólico não está ligado a um diretório
fonte
Eu era incapaz de
chown
um diretório, mesmo com,-h
mas usando o caminho completo funcionou.fonte
O destino é um arquivo ou um diretório?
Se for um diretório, tente -H (H maiúsculo)
fonte
simplesmente.
deve ser suficiente e trabalhar!
fonte
Recrie esse link por myuser na casa do myuser e mv esse link para o local de destino por sudo.
Por exemplo: (como myuser),
ln -s somedir/ linkname
(será um link quebrado se houver algum som / não existir no diretório do usuário)Em seguida,
sudo mv linkname targetlocation
(se tornará um link válido, desde quetargetlocation/somedir/
exista)fonte
Eu tive um problema parecido. Para mim, eu não poderia chmod o link simbólico, mesmo como root, independentemente de como chamei chmod. Para acrescentar confusão, o nautilus estava mostrando o proprietário / grupo como nada. O proprietário estava em branco. Então, tentei mudar o link simbólico usando o nautilus executando como root, pois o chmod não estava funcionando e o nautilus travou!
Mas acho que descobri o problema. O diretório para o qual o link simbólico estava apontando tinha permissões diferentes do link simbólico. Então, modifiquei o diretório de destino (usando -h) para o meu nome de usuário / grupo. Então chmod'ed o link simbólico para o mesmo e funcionou! E visualizar os detalhes do link simbólico no nautilus (com permissões de root) agora não trava mais.
Portanto, para outras pessoas com problemas semelhantes, verifique as permissões do diretório / arquivo de destino e verifique se é compatível com as permissões para as quais você está configurando o link simbólico.
fonte
Observe que alterar o
owner
link simbólico só funcionará se o destino estiver acessível pelo novo usuário ao qual você deseja atribuir.Por exemplo, se o seu destino estiver dentro de uma pasta à qual o usuário ao qual você deseja atribuir não possui direitos suficientes, o
ln -s command
comportamento é tal que ele não fará absolutamente nada.fonte
Para Solaris (verificado no S11.3) para um link simbólico para um diretório, você precisará executar
fonte