#shell-prompt #capabilities #unix-shell #linux #user #privileges #uid

app prompt-of-power

在shell提示符中指示提升的能力

2个版本

0.1.1 2023年4月13日
0.1.0 2023年4月13日

#553 in Unix APIs

每月 21 次下载

GPL-2.0-or-later

10KB

prompt-of-power

一个用于在提升能力时更改shell提示符的小工具。

传统上,Unix shell对普通用户显示$提示符,对root(UID 0)显示#提示符。在现代Linux系统中,即使不是UID 0,也可以使用能力来提升权限。其中一些能力给予的权限与root一样危险(实际上,CAP_SETUID允许你成为root)。然而,大多数shell不会表明你有这些提升的权限,所以你会在犯下危险错误之前没有警告。

用法

对于bash,你可以在PS1中将$替换为$(prompt-of-power)来使用prompt-of-power

例如

$ PATH=$PATH:~/.cargo/bin
$ PS1='$(prompt-of-power) '
$

如果你是UID 0,这将显示#提示符

$ sudo -s
# id -au
0
#

如果你是没有任何提升能力的普通用户,它将显示正常的$提示符

$ id -au
1000
$ capsh --print | grep IAB
Current IAB: 
$

如果你是普通(非UID 0)用户,但具有任何提升能力,它将显示$#提示符

$ id -au
1000
$ unshare -Uc --keep-caps
$# id -au
1000
$# capsh --print | grep IAB
Current IAB: ^cap_chown,^cap_dac_override,^cap_dac_read_search,^cap_fowner,^cap_fsetid,^cap_kill,^cap_setgid,^cap_setuid,^cap_setpcap,^cap_linux_immutable,^cap_net_bind_service,^cap_net_broadcast,^cap_net_admin,^cap_net_raw,^cap_ipc_lock,^cap_ipc_owner,^cap_sys_module,^cap_sys_rawio,^cap_sys_chroot,^cap_sys_ptrace,^cap_sys_pacct,^cap_sys_admin,^cap_sys_boot,^cap_sys_nice,^cap_sys_resource,^cap_sys_time,^cap_sys_tty_config,^cap_mknod,^cap_lease,^cap_audit_write,^cap_audit_control,^cap_setfcap,^cap_mac_override,^cap_mac_admin,^cap_syslog,^cap_wake_alarm,^cap_block_suspend,^cap_audit_read,^cap_perfmon,^cap_bpf,^cap_checkpoint_restore

依赖项

~310KB