Đây là do thiết kế, và đó là hành vi tiêu chuẩn. Trích dẫn tiêu chuẩn POSIX :
Trừ khi chown được gọi bởi một quy trình với các đặc quyền thích hợp, các bit ID người dùng tập hợp và ID nhóm của tập tin thông thường sẽ bị xóa sau khi hoàn thành thành công; các bit set-user-ID và set-ID-nhóm của các loại tệp khác có thể bị xóa.
( s
là setuid (hoặc setgid trong cột nhóm), nhân tiện, không bị dính.)
Hành vi này tuân theo lệnh gọi hệ thống cơ bản (ngoại trừ trên một số hệ thống, các bit setxid chỉ bị xóa đối với các tệp thực thi).
Lý do để loại bỏ bit setuid là việc thay đổi chủ sở hữu cũng thay đổi người dùng nào sẽ là ID người dùng hiệu quả của quy trình. Đặc biệt, trên các hệ thống mà người dùng có thể cho đi một tệp, cp /bin/sh foo; chmod u+s foo; chown joe foo
sẽ tạo ra một tệp thực thi setuid thuộc về joe, một lỗ hổng bảo mật khổng lồ.