我正在/usr/local/bin 中寻找一个 bash 脚本,它执行以下操作。
如果当前用户是普通用户,则脚本将显示该用户的最后一个 sudo 条目 auth.log。如果当前用户是根用户,则需要一个参数,该参数是在 auth.log 中显示最后一个 sudo 条目的用户名。 对脚本使用情况执行必要的检查。以普通用户(即使是"test"或未来用户(身份运行此脚本也不需要在它前面加上 sudo。
示例执行:
$ /usr/local/bin/last_sudo (or, # /usr/local/bin/last_sudo john)
Dec 20 16:05:16 john-linux sudo: john : TTY=pts/0 ; PWD=/home/john/Desktop ; USER=root ; COMMAND=/sbin/reboot now
#!/bin/bash
i=$(whoami)
log=/var/log/auth.log
if [$i=!root]
egrep $i $log
即兴创作你写的东西:
#!/bin/bash
me=$(whoami)
log=/var/log/auth.log
if [[ "$me" = "root" ]]; then
[[ -z "$1" ]] && printf "Usage: $0 usernamen" >&2 && exit 2
user="$1"
fi
grep '/bin/sudo/' "$log" | grep "$user" | tail -1
exit 0
#!/bin/bash
me=$(whoami)
log=/var/log/auth.log
if [[ "$me" = "root" ]]; then
[[ -z "$1" ]] && printf "Usage: $0 usernamen" >&2 && exit 2
user="$1"
fi
grep -e 'sudo.*COMMAND' $log | tail -n 1
exit 0
谢谢大家...这个剧本是通缉的,我想...
codeforester..我修改了一点..这就是我想要的..谢谢
不存在这样的脚本,你必须编写一个。
这是一个(未经测试的(骨架:
#!/usr/bin/env bash
if [[ -v SUDO_UID ]]; then
grep '/bin/sudo' /var/log/auth.log | grep "$SUDO_USER" | tail -1
else
if [[ $# -lt 1 ]]; then
echo "You're running this script as root, please provide a username" >&2
echo "usage: $0 USERNAME"
else
grep '/bin/sudo' /var/log/auth.log | grep "$1" | tail -1
fi
fi
此脚本需要通过 sudo 运行,因为默认情况下/var/log/auth.log
和表亲不是全局可读的。