Como a conta de convidado é impedida de usar su e sudo?

6

Já se sabe que a conta de convidado não pode usar su ou sudo :

Como isso é feito?

Meu palpite seria aparente. No entanto, não há menção a /etc/apparmor.d/lightdm-guest-session (ou outros arquivos incluídos nela).

Isso é feito negando alguma capacidade?

$ grep cap /etc/apparmor.d/abstractions/lightdm
  capability ipc_lock,
  deny capability dac_override,
  deny capability dac_read_search,

dac_override parece ser um bom candidato. De acordo com man capabilities :

CAP_DAC_OVERRIDE
      Bypass file read, write, and execute permission checks.  (DAC is
      an abbreviation of "discretionary access control".)

CAP_DAC_READ_SEARCH
      * Bypass  file  read  permission  checks  and directory read and
        execute permission checks;
      * Invoke open_by_handle_at(2).

É isso, ou é alguma outra capacidade? Ou não é nada aparente?

Aparentemente, é a capacidade setgid . De syslog para uma tentativa su :

Mar 18 12:14:52 muru-wily kernel: [ 5285.025017] audit: type=1400 audit(1458283492.316:159): apparmor="DENIED" operation="capable" profile="/usr/lib/lightdm/lightdm-guest-session" pid=25687 comm="su" capability=6  capname="setgid"

No entanto:

$ sudo grep setgid /etc/apparmor* -R
/etc/apparmor.d/disable/usr.sbin.rsyslogd:  capability setgid,
/etc/apparmor.d/usr.sbin.tcpdump:  capability setgid,
/etc/apparmor.d/cache/.features:caps {mask {chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read
/etc/apparmor.d/usr.sbin.cupsd:  capability setgid,
/etc/apparmor.d/usr.sbin.cupsd:  capability setgid,
/etc/apparmor.d/usr.sbin.rsyslogd:  capability setgid,
/etc/apparmor.d/abstractions/lightdm_chromium-browser:    capability setgid,     # for sandbox to drop privileges
/etc/apparmor.d/abstractions/dovecot-common:  capability setgid,
/etc/apparmor.d/abstractions/postfix-common:  capability            setgid,

Além da pasta .cache , nada parece estar restringindo setgid . No entanto, man apparmor.d diz:

Capabilities
   The only capabilities a confined process may use may be enumerated;

Se eu entendi corretamente, então, se algum recurso estiver listado, somente eles poderão ser usados - todos os outros serão restritos. A linha capability ipc_lock restringe automaticamente todos os outros recursos não mencionados? Em caso afirmativo, por que deny capability dac_override e deny capability dac_read_search ?

    
por muru 18.03.2016 / 06:31

1 resposta

0

A partir de uma pesquisa rápida, acho que a resposta é que o Ubuntu não tem uma conta de convidado, ela usa uma "sessão de convidado". As sessões convidadas não podem fazer nenhuma alteração real em um sistema, portanto, se você efetuar logon e tentar salvar um arquivo no diretório inicial das sessões, ao efetuar logout, esses arquivos serão removidos.

Você quase pode pensar em uma sessão de convidado como uma sessão de USB / CD ao vivo.

A maioria das minhas pesquisas na sessão de convidados apenas me dá opções para removê-las. Eu encontrei uma que falou sobre a criação de um usuário convidado e que é diferente da sessão de convidado.

    
por Christopher Angulo-Bertram 07.06.2016 / 18:25