www-data 사용자가 없는 시스템에서 tar는 www-data와 같은 사용자 이름을 어떻게 표시합니까?
나는 tar가 시스템 ID를 기반으로 사용자 권한을 유지한다는 것을 알고 있습니다. 이 경우 데비안 시스템의 www-data에 대해 33(아마 그럴까요?)입니다.
가장 혼란스러운 점은 폴더의 권한을 33(존재하지 않는 사용자)으로 변경하여 다른 서버로 보내면 tar에서 소유자를 사용자 33으로 보고하지만 압축을 풀면 폴더가 소유자 www로 설정된다는 것입니다. -데이터.
타르(GNU 타르) 1.29
답변1
tar
이는 이 정보가 POSIX 1003.1-1990에 지정된 ustar 형식으로도 저장되기 때문입니다 . 공식 소스 코드에는 이것이 지정되어 있습니다tar.h 헤더 파일. 중요한 부분을 복사했습니다.
/* POSIX header. */
struct posix_header
{ /* byte offset */
[...]
char uid[8]; /* 108 */
char gid[8]; /* 116 */
[...]
char uname[32]; /* 265 */
char gname[32]; /* 297 */
[...]
};
보시다시피 uid와 gid 외에 소유자 사용자 이름과 소유자 그룹 이름도 저장됩니다.
답변2
Tar는 또한 사용자 이름과 그룹을 파일에 저장합니다. .tar 파일과 같은 도구를 사용하여 tar 파일 자체를 보면 이를 확인할 수 있습니다 hexdump
. 그 이유는 동일한 이름이 다른 시스템에서 다른 번호로 사용될 수 있기 때문입니다.
두 번째 경우에는 소스 시스템이 사용자 33의 이름을 모르기 때문에 이름을 제공할 수 없고 숫자만 제공할 수 있습니다. Extract tar는 이 번호를 사용하며 시스템이 이 번호를 알고 있으므로 해당 번호에 대한 사용자 이름을 표시합니다.
당신은 또한 볼 수 있습니다
--numeric-owner
사용자/그룹 이름에는 항상 숫자를 사용합니다.