como determinar valores SYS_UID_MIN, SYS_UID_MAX (etc.) de um script?

1

Desejo consultar os valores SYS_UID_MIN, SYS_UID_MAX, SYS_GID_MIN, SYS_GID_MAX a partir de um script de shell.

Estes valores aparecem comentados em /etc/login.defs. Espero que isso reflita os valores padrão, mas isso não é certo.

De alguma forma, o programa useradd e groupadd podem determinar esses valores, por isso deve ser possível. (Eu suponho que alguém possa olhar para a sua fonte! :))

    
por lickdragon 22.09.2016 / 16:16

2 respostas

1

A página man para login.defs documenta os valores padrão para essas variáveis. Parece ser consistente nos servidores Ubuntu, Debian e CentOS que eu olhei.

  The default value for SYS_UID_MIN (resp. SYS_UID_MAX) is 101
  (resp. UID_MIN-1).

...

   The default value for UID_MIN (resp.  UID_MAX) is 1000 (resp.
   60000).
    
por 22.09.2016 / 16:50
0

Solução Bash pura

  UID_MIN="$(read -d '' <'/etc/login.defs'; [[ "${REPLY}" =~ [^#[^:space:]]*SYS_UID_MIN[[:space:]]+([[:digit:]]+)  ]]; echo -n "${BASH_REMATCH[1]}")";
  # useradd's default is 1000 if no UID_MIN in /etc/login.defs
  UID_MIN="${UID_MIN:=1000}";
    
por 05.09.2018 / 20:56