Modo privilegiado no bash

5

Eu usei o bash por anos, mas fiquei com o "modo privilegiado" que ele pode ser configurado com o comando set.

Por exemplo:

set -p

Eu li a página man bash mas é um pouco obscura.

Por exemplo, vamos considerar o seguinte script

#! /bin/bash -p
ping 192.168.1.1

a permissão deste arquivo é a seguinte:

-rwxr-xr-x. 1 usuário root 80 mar 2 23:20 /scripts/privileged.sh

E, em seguida, como usuário não-root, eu executo /scripts/privileged.sh

Então eu corro:

 ps -Cping -ocomm,egroup,euser,ruser,ruser,rgroup
COMMAND         EGROUP   EUSER    RUSER    RUSER    RGROUP
ping            operador operador operador operador operador

OK, você pode alterar o modo, mas de qualquer maneira o Linux descarta privilégios:

[root@server ~]#  chmod 4755 /scripts/privileged.sh 
[root@server ~]# ls -l /scripts/privileged.sh
-rwsr-xr-x. 1 root operador 79 mar  2 23:33 /scripts/privileged.sh

Então, eu executo o script como usuário não-root e, em seguida, obtenho:

[root@server ~]# ps -Cping -ocomm,egroup,euser,ruser,ruser,rgroup
COMMAND         EGROUP   EUSER    RUSER    RUSER    RGROUP
ping            operador operador operador operador operador

Então eu achei essa opção inútil, por favor, você poderia me corrigir, se eu entendi mal alguma coisa?

    
por sebelk 24.02.2014 / 23:36

2 respostas

7

Na página de informações de bash :

'-p'

      Turn on privileged mode.  In this mode, the '$BASH_ENV' and
      '$ENV' files are not processed, shell functions are not
      inherited from the environment, and the 'SHELLOPTS',
      'BASHOPTS', 'CDPATH' and 'GLOBIGNORE' variables, if they
      appear in the environment, are ignored.  If the shell is
      started with the effective user (group) id not equal to the
      real user (group) id, and the '-p' option is not supplied,
      these actions are taken and the effective user id is set to
      the real user id.  If the '-p' option is supplied at startup,
      the effective user id is not reset.  Turning this option off
      causes the effective user and group ids to be set to the real
      user and group ids.

Isso diz que a opção -p permite que o bash mantenha o userid efetivo com o qual é iniciado, onde, sem ele, ele irá definir o uid efetivo para o uid real (seu usuário). Isso permitirá que o bit setuid seja efetivo ao permitir que o bash retenha o usuário para o qual ele está setuid. Você notará que, com a opção -p , vários arquivos e variáveis são ignorados e não herdados do shell pai.

    
por 25.02.2014 / 00:50
-1

Sem isso você não pode usar bash como um binário de SUID.

    
por 25.02.2014 / 00:28