W OSX mogę ustawić uprawnienia samego dowiązania symbolicznego (zamiast tego, co wskazuje na użycie -h). Ze strony podręcznika:
-h If the file is a symbolic link, change the mode of the link itself rather than the file that the link points to.
W Ubuntu 14.04 próbuję ustawić uprawnienia dowiązania symbolicznego, ale jest ono ustawione tylko na celu dowiązania symbolicznego.
Dotyczy to dowiązania symbolicznego od /home/nagios/.ssh/someprivatekey
do /somewhere/else/privatekey
, więc uprawnienia są ważne dla ssh. Jak mogę to osiągnąć?
permissions
ssh
chmod
symbolic-link
Ray Burgemeestre
źródło
źródło
ls -l
wyjściowym (lrwxrwxrwx
)..ssh/config
:)Odpowiedzi:
Niemożliwe. Nie ma mowy, ponieważ uprawnienia do dowiązania symbolicznego są bez znaczenia (dowiązanie symboliczne nie jest plikiem, wskazuje tylko na plik). Jednak sposobem na to w Linuksie jest ACL .
dowiązanie symboliczne wyjaśniono jako ...
Różnica jest tutaj: chmod i chmod ... to BSD kontra Linux.
Nie jestem pewien, czy jest to ważne, ale w odniesieniu do SSH: używa stat (2) , a nie lstat (2), aby uzyskać uprawnienia.
źródło
fchmodat
funkcję, której można użyć do zmiany trybu dowiązań symbolicznych (funkcja opcjonalna - systemy, które jej nie obsługują, w tym Linux, zwracają błąd EOPNOTSUPP), ale nic wchmod
poleceniu, aby tego użyć. Tylko-R
jest zdefiniowane w POSIX.lchmod(2)
lubfchmodat(2)
...), mają one znaczenie (zezwalaj / odmawiajreadlink()
(czytaj) lub rozwiąż ścieżkę przez nie (wykonaj)). Uprawnienia do zapisu zwykle nie mają znaczenia, ponieważ nie można zmienić celu dowiązania symbolicznego.Nie możesz Podstawowe
chmod
wywołanie systemowe po prostu nie obsługuje tego w Linuksie, a co za tym idzie, Linux nie dba również o uprawnienia do łącza. Odman chmod
:Jeśli chodzi o twarde łącza lub montowanie powiązań, stosowane są uprawnienia źródła, więc żaden z trzech standardowych sposobów odzwierciedlenia zawartości pliku w innym miejscu nie może ci w tym pomóc.
źródło