Это по замыслу, и это стандартное поведение. Цитируя стандарт POSIX :
Если процесс chown не вызывается процессом с соответствующими привилегиями, биты set-user-ID и set-group-ID обычного файла должны удаляться после успешного завершения; биты set-user-ID и set-group-ID других типов файлов могут быть очищены.
( s
это setuid (или setgid в столбце группы), кстати, не липкий.)
Это поведение соответствует поведению основного системного вызова (за исключением того, что в некоторых системах биты setxid очищаются только для исполняемых файлов).
Причина удаления бита setuid заключается в том, что смена владельца также меняет того, каким пользователем будет эффективный идентификатор пользователя процесса. В частности, в системах, где пользователь может выдать файл, cp /bin/sh foo; chmod u+s foo; chown joe foo
будет создан исполняемый файл setuid, принадлежащий joe, гигантская дыра в безопасности.