바라보다일반 사용자가 파일을 "chown"할 수 없는 이유는 무엇입니까?chown에 대한 무제한 액세스는 나쁜 생각이기 때문입니다. 하지만 제한된 버전을 구현하고 싶습니다. 사용자 adam이 사용자 bobby에게 파일을 제공하도록 허용하고 이 전송만 허용하고 싶습니다.
답변1
사용자 adam이 사용자 bobby에게 파일을 제공하도록 허용하고 이 전송만 허용하고 싶습니다.
이렇게 하려면 루트로 실행되고 필요한 검사를 수행하며 주어진 파일의 소유자를 변경하는 프로그램이 있어야 합니다. 루트로 실행하기 쉽고 sudo
setuid 프로그램을 사용할 수 있으며 프로그램이 남용되지 않도록 검사가 올바르게 수행되지만 더 어렵습니다.
작동할 수 있는 방법은 다음과 같습니다. 1) 파일을 엽니다. 2) fstat()
소유자를 확인하는 데 사용합니다. 3) 그런 다음 fchown()
소유자를 변경합니다.
파일을 통해 접근하기 때문에 파일은 fd를 통해 처리되어야 합니다.이름검사 중인 파일이 나중에 작업할 파일이라는 보장은 없습니다. 파일은 둘 사이에서 변경될 수 있습니다.
또 다른 옵션은 네트워크를 통해 서버로부터 파일(해당 내용)을 수신 adam
한 다음 bobby
수신된 데이터를 기반으로 완전히 새로운 파일을 생성하는 "업로드 서비스"를 구현하는 것입니다.
후자는 이메일과 비슷하지만 이것이 기성 도구라고 생각하지 않습니다.
답변2
chmod
모든 사람이 파일에 쓸 수 있도록 허용하면 소유권이 덜 중요해집니다 .
chmod 777 file
모든 사람이 파일을 사용하여 거의 모든 작업을 수행할 수 있습니다.