Quero criar um script bash que deve ser executado com o sudo, mas deve levar em consideração o nome do usuário que não o executou. Portanto, se o usuário bob
executa, sudo ./myscript.sh
eu gostaria myscript.sh
de saber quem bob
foi o responsável pela execução.
Vamos olhar para dentro myscript.sh
:
USER=$(whoami)
# Do something that takes into account the username.
Como posso saber o nome do usuário que gerou o processo? Mais especificamente, o que devo usar em vez de whoami
obter bob
e não root
?
#!/usr/bin/env bash
nos meus scripts do bash.
sh
ou qualquer outra coisa.
USER=$(whoami)
. Observe que oUSER
já existe como uma variável interna do shell. Além disso, se for um script bash, não o executesh
, que possui apenas um subconjunto de recursos compatíveis com POSIX.