Obtenha o proprietário do script
Em qualquer sistema com como stat
que seja compatível com o moderno GNU stat
, o ID do usuário do script é:
stat -c %u "$0"
O nome de usuário do proprietário do script é:
stat -c %U "$0"
Em geral, no linux, stat -c %U file
retorna o proprietário de file
. Substituímos em $0
porque essa variável geralmente contém o nome do arquivo de script atual.
Obtendo um ID de usuário efetivo do usuário que está executando o script
Para obter o número de ID de usuário efetivo do usuário que está executando um script, use id -u
:
$ id -u
1001
Para salvá-lo em uma variável
$ uid=$(id -u)
$ echo "$uid"
1001
Se o script estiver sendo executado em bash
, o ID do usuário efetivo será armazenado na variável do shell EUID
:
$ echo $EUID
1001
Em muitos sistemas, o padrão é que os cronjobs sejam executados em dash
, que não suporta EUID
. Assim, é mais seguro e confiável usar id -u
como mostrado acima.
Use a opção -n
além da opção -u
para obter o nome do usuário:
$ id -un
john1024