Parece que um patch rápido do código-fonte faria o truque; normalmente, a coluna do usuário é definida como 8 e será truncada conforme detalhado abaixo.
Patch aplica-se ao commit 64fa8898 que foi marcado como v3.3.5 (link acima)
Você também pode fazer o download da fonte mais recente se for compilá-la - sugiro fazer o download da fonte mais recente e editar a linha "USER" no arquivo de origem ps/output.c
do procps-ng de 8 a 16 como abaixo, em vez de corrigir a versão antiga (2013-ish):
---
ps/output.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ps/output.c b/ps/output.c
index 9644ed3..41c2eda 100644
--- a/ps/output.c
+++ b/ps/output.c
@@ -1564,7 +1564,7 @@ static const format_struct format_array[] = {
{"uname", "USER", pr_euser, sr_euser, 8, USR, DEC, ET|USER}, /* man page misspelling of user? */
{"upr", "UPR", pr_nop, sr_nop, 3, 0, BSD, TO|RIGHT}, /*usrpri*/
{"uprocp", "UPROCP", pr_nop, sr_nop, 8, 0, BSD, AN|RIGHT},
-{"user", "USER", pr_euser, sr_euser, 8, USR, U98, ET|USER}, /* BSD n forces this to UID */
+{"user", "USER", pr_euser, sr_euser, 16, USR, U98, ET|USER}, /* BSD n forces this to UID */
{"usertime", "USER", pr_nop, sr_nop, 4, 0, DEC, ET|RIGHT},
{"usrpri", "UPR", pr_nop, sr_nop, 3, 0, DEC, TO|RIGHT}, /*upr*/
{"util", "C", pr_c, sr_pcpu, 2, 0, SGI, ET|RIGHT}, // not sure about "C"
--
Adendo
De acordo com a fonte do ps
:
// The Open Group Base Specifications Issue 6 (IEEE Std 1003.1, 2004 Edition)
// requires that user and group names print as decimal numbers if there is
// not enough room in the column. However, we will now truncate such names
// and provide a visual hint of such truncation. Hopefully, this will reduce
// the volume of bug reports regarding that former 'feature'.
//
// The UNIX and POSIX way to change column width is to rename it:
// ps -o pid,user=CumbersomeUserNames -o comm
// The easy way is to directly specify the desired width:
// ps -o pid,user:19,comm
//