Quando você executa su - username , realiza um login completo como aquele usuário, o que significa que você é transferido para o diretório pessoal do usuário. Ao executar touch c dessa forma, você tenta executar esse comando no diretório pessoal do usuário.
Em vez disso, elimine o - da linha de comando:
su user1 -c "touch c"
Isso executaria touch c as user1 no diretório atual .
Especulação:
O comando su - original falhou porque já existe um arquivo chamado c no diretório pessoal de user1 de propriedade de outro usuário.