在 Linux 中,当前用户(Current User)指的是当前正在运行 shell 或执行命令的用户

查看当前用户

可以通过以下几种方式查看和定义当前用户:

1、使用 whoami

$ whoami

ubuntu

2、使用 $USER 变量

echo $USER

3、使用 id 命令

$ id

> uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),27(sudo)

4、使用 logname

$ logname

获取最初登录系统的用户(适用于 su 切换用户的情况)。

切换当前用户

1、使用 su 切换用户

su username

切换到 root 用户:

su root

如果 root 账户没有设置密码,可以用:

sudo su

2、使用 sudo 临时切换

在 sudo 组内的用户可以执行管理员权限的命令,例如:

$ sudo whoami

>  root

crontab 任务的当前用户

使用 crontab -e 设置定时任务时,定时任务是以当前用户的身份执行的。

可以在 crontab 任务中用 whoami 记录当前用户:

* * * * * whoami >> /tmp/current_user.log

这将在 /tmp/current_user.log 里记录 crontab 任务的执行用户。

root 用户的 crontab 和普通用户的 crontab 是独立的

可以使用:

sudo crontab -e

来编辑 root 级别的 crontab 任务。

总结

  • 当前用户 是当前 shell 进程的运行用户,可以用 whoami、echo $USER 查询。
  • 定时任务的用户 取决于 crontab 所属用户,crontab -e 运行的任务是该用户的身份执行的。
  • 如果要确保某个 .sh 脚本由指定用户运行,可以在脚本中添加:
    if [ "$(whoami)" != "your_user" ]; then
    echo "This script must be run as your_user!"
    exit 1
    fi

作者 admin

百度广告效果展示