Уже известно, что гостевая учетная запись не может использовать su
или sudo
:
Как это сделано?
Мое предположение было бы apparmor. Однако нет никакого упоминания ни об одном в /etc/apparmor.d/lightdm-guest-session
(или другие файлы, включенные в него).
Это сделано путем отклонения некоторой возможности?
$ grep cap /etc/apparmor.d/abstractions/lightdm
capability ipc_lock,
deny capability dac_override,
deny capability dac_read_search,
dac_override
кажется, хороший кандидат. Согласно 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).
Это - это или является этим некоторая другая возможность? Или это не apparmor вообще?
По-видимому, это setgid
возможность. От syslog
для a 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"
Однако:
$ 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,
Кроме .cache
папка, ничто, кажется, не ограничивает setgid
. Однако man apparmor.d
говорит:
Capabilities
The only capabilities a confined process may use may be enumerated;
Если я понимаю правильно, то, если какие-либо возможности перечислены, то только они могут использоваться - все другие ограничиваются. Делает capability ipc_lock
строка автоматически ограничивает все другие неупомянутые возможности? Если так, почему deny capability dac_override
и deny capability dac_read_search
?
От выполнения быстрого поиска я думаю, что ответ - то, что Ubuntu на самом деле не сделала, чтобы гость считал, это использует "гостевую сессию". Гостевые сессии не могут внести реальные изменения в систему, поэтому если Вы входите в систему и пытаетесь сохранить файл к корневому каталогу сессий, когда Вы выходите из системы, те файлы удалены.
можно почти думать о гостевой сессии как о живой сессии USB/CD.
большинство моих поисков на гостевой сессии только дает мне опции удалить его, я действительно находил тот, который говорил о создании гостевого пользователя, и это отличается от гостевой сессии.