SóProvas


ID
1305931
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2014
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os próximos itens, acerca do ambiente Linux.

Ao ser executado o comando su – oracle, o usuário corrente será alterado para o usuário oracle e o ambiente do usuário corrente será transferido para o usuário oracle.

Alternativas
Comentários
  • Alternativa errada.


    O correto seria su oracle

  • 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.

  • su usuário --> troca o usuário e mantém o ambiente

    su - usuário --> transfere (descarta) o ambienhte atual para o do usuário especificado