리눅스에서 심볼릭 링크의 소유자를 변경하는 이유는 무엇입니까?


12

리눅스에서는 심볼릭 링크 (symlink)의 소유자 또는 그룹 소유자를 변경할 수 있습니다. 파일을 통해 파일에 액세스 할 때 symlink의 권한이 사용되지 않기 때문에 누군가 누군가가 그렇게하고 싶어하는 이유가 궁금합니다.

유용 할 수있는 하나의 유스 케이스 만 상상할 수 있습니다. 사용자가 고정 비트가있는 디렉토리에서 심볼릭 링크를 삭제할 수 있도록하십시오.

심볼릭 링크의 소유자 또는 그룹 소유자를 변경하는 것이 유용한 다른 경우를 알고 있습니까?

답변:


6

Eve가 쓸 수있는 디렉토리에서 root가 작동한다고 가정하십시오. foo이 디렉토리에는 Eve에 속하도록 변경해야 할 파일 이 있습니다. 루트 타입 chown eve foo. 그러나 루트가 Enter를 누르기 직전에 Eve가 실행됩니다 ln -sf /etc/passwd foo. 이제 /etc/passwd이브에 속해 있습니다! 루트가 chown -h eve foo심볼릭 링크를 따르지 않도록 실행할 수 있다면 , 가장 큰 피해는 동일한 디렉토리의 다른 파일이 Eve에 속하도록 변경되었다는 것입니다.

lchown디렉토리 트리의 소유자를 변경할 때도 편리합니다. chown심볼릭 링크 를 호출했기 때문에 트리 외부의 파일에 실수로 영향을주는 것에 대해 걱정할 필요가 없습니다 .


"루트가 chown -h bob foo를 실행하여 심볼릭 링크를 따르지 않도록 할 수 있다면, 같은 디렉토리에있는 다른 파일이 Eve에 속하도록 변경 될 수 있습니다." "chown -h eve foo"를 의미한다고 생각합니다. 변경 될 수있는 다른 파일은 바로 심볼릭 링크입니까?
user368507

@ user5528 다른 파일은 심볼릭 링크가 아닐 수 있습니다. Eve는 계속 실행할 수 mv myfile foo있으며 root는의 소유자를 변경하게됩니다 myfile. 그러나 myfileEve가 해당 디렉토리로 작성하거나 해당 디렉토리로 이동할 수있는 파일이어야하며 시스템의 파일 일 수 없습니다.
Gilles 'SO- 악마 그만'

2
흥미롭고 확실하게 asker의 승인을 받았지만,이 답변이 어떻게 문제를 해결하는지는 알 수 없습니다. chown -h심볼릭 링크는 아니지만 여전히 (단일 경우, IMO) 파일의 소유권을 변경할 때 신중한 조치로 사용할 수있는 이유를 더 설명하는 것 같습니다 . 실제로 심볼릭 링크가 될 파일의 ​​소유권을 변경하려는 이유는 설명하지 않았으므로 질문이 제기했습니다.
Ivan X

chown"트리 외부의 파일"의 소유자를 변경하는 이유는 디렉토리의 소유자뿐입니까?
Melab

@Melab 디렉토리 트리 의 소유자를 변경하는 경우 (예 : 유틸리티 실행 chown -R) (l)chown각 디렉토리 항목 에서 시스템 호출 을 호출합니다 . 디렉토리 항목이 기호 링크 인 chown경우 트리 외부에있을 수있는 링크 대상에 영향을 미치므로 시스템 호출을 호출해서는 안됩니다 .
Gilles 'SO- 악마 그만

8

링크 소유자가 대상 소유자와 일치하는 경우에만 심볼릭 링크를 따르도록 Apache를 구성 할 수 있습니다. 이렇게하면 사용자가 소유하지 않은 파일 (예 : / etc / passwd)에 대한 웹 액세스 링크를 만들 수 없습니다.

... 그래서 루트로서 아파치가 링크를 따라 xymon 또는 기타 소유 한 특정 로그 파일을 표시하기를 원했지만 소유자와 상관없이 심볼릭 링크를 따라 아파치의 보안을 완화하고 싶지 않다고 가정 해 봅시다. . 그런 다음 xymon을 symlink의 소유자로 만들 수 있습니다.


1
확인. 나는 그것이 관련이 없다는 것을 알고 있지만 아파치 에서이 행동의 요점은 무엇입니까? 사용자가 파일을 읽을 수 있다면 왜 웹 액세스에서 파일을 읽습니까? thx
368507

파일을 읽는 것은 로컬 사용자 만이 아닙니다. 아파치가 읽을 수 있다면 모든 사람 이 읽을 수 있습니다. 그리고 일부 아파치 취약점으로 인해에 대한 심볼릭 링크 생성이 허용 된 경우, 악의적 인 사용자는 /etc/passwd다른 로컬 액세스 권한없이 해당 파일에 대한 읽기 권한을 가질 수 있지만 아파치가 소유 한 심볼릭 링크에 의해 방해받을 수 있습니다.
Lars Rohrbach

4

첫 번째 대답은 질문을 다루지 않는 것 같고 두 번째 대답은 Apache에만 적용됩니다.

리눅스에서 일반적으로 생각할 수있는 한 가지는 일반 사용자가 심볼릭 링크의 소유자 인 경우 심볼릭 링크에 대한 하드 링크를 만들 수 있다는 것입니다. 왜 그런 링크를 만들고 싶어하는지 모르겠습니다.

또 다른 것은 일반 사용자가 파일을 소유하고있는 파일 (및 파일을 추가 할 그룹의 구성원 인 경우) 만 파일의 그룹 소유권을 변경할 수 있다는 것입니다. 상징적 인 링크가합니다. 조직에서는 링크가 필요한 팀을 나타내는 태그로 유용 할 수 있습니다.

또한 우분투에서는 적어도 누구나 심볼릭 링크의 타임 스탬프를 업데이트 할 수 있습니다. 그러나 소유자 만 허용하는 일부 시스템이있을 수 있습니다. 타임 스탬프가 심볼릭 링크에 어떤 영향을 미치는지 잘 모르겠지만 사용 빈도에 대한 유용한 정보를 제공 할 수 있습니다.

편집 : 나는 소유권이 중요한 또 다른 이유를 깨달았습니다. 링크는 파일 소유자 만 파일을 삭제하거나 이름을 바꿀 수있는 고정 디렉토리 안에있을 수 있습니다.


0

로그 파일에 추가하는 프로그램이 있습니다. 이 로그 파일은 각각 다른 이름으로 매월 만들어집니다. 소프트웨어가 정확한 파일 이름을 알아내는 대신 해당 월의 현재 파일을 가리키는 심볼릭 링크 인 "일반"파일 이름 (예 : data.log)을 사용합니다. 이것은 크론 작업에서 자동화됩니다.

이제 매월 새로운 파일이 생성되면 새 파일에 대한 심볼릭 링크를 가리켜 야합니다. 소유권 / 그룹 충돌이있는 경우 소프트웨어가 기호 링크를 변경할 수 없습니다. 따라서 심볼릭 링크를 변경하려면 소유권 / 그룹 쓰기 권한이 필요합니다.


0

시작 화면에서 파일에 대한 링크를 만들려면 심볼릭 링크가

"/ home / username / Desktop"

예배 규칙서.

또한 심볼릭 링크 자체에는 root : root (0 : 0) 소유권이 있어야합니다. 그렇지 않으면 링크가 작동하지 않습니다.

(우분투 / 데비안 등)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.