Os argumentos da linha de comando de cada processo no sistema são considerados "públicos". Não apenas o comando w , mas ps e top e muitos outros comandos acessam essas informações como um todo. Na verdade, nenhum privilégio especial é necessário para obter essa informação. No Linux, você pode ler a linha de comando de outro processo, mesmo um processo pertencente a outro usuário, lendo /proc/<pid>/cmdline .
Esta não é uma falha ou comportamento inseguro por parte de w ou top ou ps (ou cat ). Em vez disso, o ônus está no lado de não passar informações confidenciais em linhas de comando em sistemas multiusuários, nunca.
A maioria dos utilitários que têm a capacidade de aceitar senhas no documento de linha de comando que não é recomendado para fazê-lo. Por exemplo, da manpage de mysql :
Specifying a password on the command line should be considered insecure. See Section 5.3.2.2, "End-User Guidelines for Password Security". You can use an option file to avoid giving the password on the command line.
A propósito, passar senhas ou dados confidenciais em variáveis de ambiente é menos arriscado, mas também não é seguro na maioria dos sistemas.