如何阻止来宾帐户使用su和sudo?
已经知道来宾帐户不能使用su
或sudo
:
- 为什么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).
这是它,还是其他一些function? 或者它根本不是apparmor?
显然,这是setgid
function。 从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;
如果我理解正确,那么如果列出了任何function,那么只能使用那些function – 所有其他function都受到限制。 capability ipc_lock
是否会自动限制所有其他未提及的function? 如果是这样,为什么deny capability dac_override
和deny capability dac_read_search
?
通过快速搜索,我认为答案是Ubuntu实际上没有访客帐户,它使用“访客会话”。 访客会话无法对系统进行任何实际更改,因此如果您登录并尝试将文件保存到会话主目录,则在您注销时,这些文件将被删除。
您几乎可以将访客会话视为实时USB / CD会话。
我在访客会话上的大多数搜索只给了我删除它的选项,我确实找到了一个谈论创建访客用户的选项,这与访客会话不同。