DESCRIPTION
The su utility requests appropriate user credentials via PAM and switches to that user ID (the default user is the superuser). A shell is
then executed.
PAM is used to set the policy su(1) will use. In particular, by default only users in the ``admin'' or ``wheel'' groups can switch to UID
0 (``root''). This group requirement may be changed by modifying the ``pam_group'' section of /etc/pam.d/su. See pam_group(8) for details
on how to modify this setting.
By default, the environment is unmodified with the exception of USER, HOME, and SHELL. HOME and SHELL are set to the target login's
default values. USER is set to the target login, unless the target login has a user ID of 0, in which case it is unmodified. The invoked
shell is the one belonging to the target login. This is the traditional behavior of su.
-l Simulate a full login. The environment is discarded except for HOME, SHELL, PATH, TERM, and USER. HOME and SHELL are modified as
above. USER is set to the target login. PATH is set to ``/bin:/usr/bin''. TERM is imported from your current environment. The
invoked shell is the target login's, and su will change directory to the target login's home directory.
- (no letter) The same as -l.
Fonte: manual do comando su (man su)
Questão correta
Acredito que o gabarito está errado mesmo. O usuário corrente será alterado para o usuário oracle, mas o ambiente do usuário corrente será descartado e não transferido.
Conforme o manual reportado pelo Giordanno:
"By default, the environment is unmodified [...]
-l Simulate a full login. The environment is discarded [...]
- (no letter) The same as -l."
Se você tiver uma distribuição linux é possível fazer o teste seguinte:
```
1. alice@perseus:/root$ export VAR=teste
2. alice@perseus:/root$ echo $VAR
teste
3. alice@perseus:/root$ su bob
Senha:
4. bob@perseus:/root$ echo $VAR
teste
5. bob@perseus:/root$ exit
exit
6. alice@perseus:/root$ su - bob
Senha:
7. bob@perseus:~$ echo $VAR
bob@perseus:~$
```No primeiro comando a variável VAR é exportada com o valor teste.
No segundo comando é verificado o valor.
No terceiro comando é executado o su padrão, sem argumentos e o ambiente não é modificado (verificação feita no quarto comando).
No quarto comando verificamos que o ambiente não é modificado e a variável permanece teste.
No quinto comando o shell é terminado para que siga outro login.
No sexto comando é feito o su com a opção - (equivalente a -l) e o ambiente do usuário alice é descartado.
No sétimo comando verificamos que o ambiente é descartado pois a variável VAR não mantém o seu valor.
Isso é certeza. A única coisa que ainda pode ser argumentada é a semântica da palavra transferido. Se o examinador entende que o ambiente do usuário corrente (conjunto de variáveis, etc de alice) ser transferido para bob é o mesmo que descartar o ambiente de alice e carregar o de bob, o item deve ser considerada Correto. Na minha humilde opinião, transferir o ambiente de alice para bob quer dizer passar esse ambiente (pelo menos em parte) para ele. Nesse sentido, o item deve ser considerado Incorreto.