在 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