Se olharmos para a fonte para (uma versão do) i3lock, podemos ver ele determina o usuário cuja senha é necessária fazendo getuid() . Portanto, definir a variável de ambiente USER não tem efeito, e você precisará su ou sudo como esse usuário.