PHP session files never get deleted
Você não diz qual manipulador de sessão está usando - supondo que seja o padrão, as sessões expiradas devem ser limpas sempre que a coleta de lixo da sessão for acionada. Você tem session.cache_expire muito alto e / ou session.gc_probability muito baixo, e / ou session.gc_divisor muito alto.
session.gc_probability is set to 0 by default
Não - somente nos sistemas Debian (o Ubuntu é derivado do Debian). Alguém no Debian acha que ter permissões estranhas no armazenamento de sessões impede as sessões de hi-jacking. Na verdade, ele lida apenas com um subconjunto muito restrito de possíveis ataques - e quando você coloca as medidas apropriadas para lidar com os vetores de ataque mais prováveis, o problema desaparece.
Uma conseqüência disso é que você precisa de acesso root se quiser gerenciar suas sessões de PHP de qualquer outra forma diferente daquela que foi pré-determinada pelo Debian.
Na maioria das vezes eu gosto do Debian - mas isso sempre me pareceu um tanto bobo.