已知guest账户不能使用su
或者sudo
:
如何完成了吗?
/etc/apparmor.d/lightdm-guest-session
我猜是 apparmor。但是,在(或其中包含的其他文件中)没有提及。
是通过拒绝某些能力来实现的吗?
$ 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
尝试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
?
答案1
通过快速搜索,我认为答案是 Ubuntu 实际上没有来宾帐户,它使用“来宾会话”。来宾会话无法对系统进行任何实际更改,因此如果您登录并尝试将文件保存到会话主目录,则当您注销时,这些文件将被删除。
您几乎可以把访客会话视为实时 USB/CD 会话。
我在访客会话中所做的大多数搜索仅提供了删除它的选项,但我确实发现了一个关于创建访客用户的选项,这与访客会话不同。