chown은 setuid 비트를 제거합니다 : 버그 또는 기능?


14

재현 단계 :

germar@host:~$ cd /tmp/
germar@host:/tmp$ touch test && chmod u+s test && ls -la test
-rwSr--r-- 1 germar germar 0 Nov  2 20:11 test
germar@host:/tmp$ chown germar:germar test && ls -la test
-rw-r--r-- 1 germar germar 0 Nov  2 20:11 test

데비안 스퀴즈와 우분투 12.04 테스트


Fedora 17에서도 마찬가지입니다.
BenjiWiebe

답변:


17

chown 문서에 따르면 버그가 아닙니다.

$ info coreutils 'chown invocation'

   The `chown' command sometimes clears the set-user-ID or set-group-ID
permission bits.  This behavior depends on the policy and functionality
of the underlying `chown' system call, which may make system-dependent
file mode modifications outside the control of the `chown' command.
For example, the `chown' command might not affect those bits when
invoked by a user with appropriate privileges, or when the bits signify
some function other than executable permission (e.g., mandatory
locking).  When in doubt, check the underlying system behavior.

감사합니다 jlliagre. 나는 info coreutils전에 몰랐다 . 맨 페이지 만 읽고 웹을 검색했습니다.
Germar

12

이것은 의도적으로 설계된 동작이며 표준 동작입니다. POSIX 표준 인용 :

적절한 권한을 가진 프로세스가 chown을 호출하지 않는 한 일반 파일의 set-user-ID 및 set-group-ID 비트는 성공적으로 완료되면 지워집니다. 다른 파일 형식의 set-user-ID 및 set-group-ID 비트가 지워질 수 있습니다.

( s그런데 끈적이지 않은 setuid (또는 그룹 열에서 setgid)입니다.)

이 동작은 기본 시스템 호출 의 동작을 따릅니다 (일부 시스템에서는 setxid 비트가 실행 파일에 대해서만 지워짐).

setuid 비트를 제거하는 이유는 소유자를 변경하면 프로세스의 효과적인 사용자 ID가 될 사용자도 변경하기 때문입니다. 특히, 사용자가 파일을 제공 할 수있는 시스템에서는 cp /bin/sh foo; chmod u+s foo; chown joe foo거대한 보안 허점 인 joe에 속하는 setuid 실행 파일 이 생성됩니다.


이쑤시개에 대한 찬성! SUID / SGID는 "sticky"비트가 아닙니다!
짐 데니스

SUID / SGID 보존의 보안 영향에 대해 설명합니다. 나는 그 문장을 읽을 때까지 행동에 귀찮았습니다. 나는, 추가 그러나, 내가 본 적이 대한 Chown 것 없는 루트로 실행되는 경우에도 비트를 취소합니다. "적절한 특권"이 무엇을 의미하는지 궁금합니다.
hugesupersuperman

1
@vastlysuperiorman 고전적인 Unix 플랫폼에서 "적절한 권한"은 사용자 ID 0을 의미합니다. 그러나 POSIX를 사용하면 시스템이 자체 보안 정책을 정의 할 수 있습니다. 예를 들어 Linux에서 많은 작업을 수행하는 경우 "적절한 권한"은 기능 (기본적으로 루트 만 가져옴)으로 구현됩니다. 이 특별한 경우에, 모든 유닉스 변형이 아닌 대부분의 특권에 관계없이 chown에서 setxid 비트를 억제합니다. 그러나 Windows의 POSIX 레이어는 다르게 작동 할 수 있습니다.
Gilles 'SO- 악마 그만'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.