有时,shell 脚本需要以 root 用户身份运行才能以管理员权限执行某些任务。通常,可以使用 Sudo 命令来完成该任务。如果在某些情况下您仍然需要强制用户以 root 用户身份运行脚本,您可以向脚本添加代码来检查脚本是否以 root 用户身份运行。
检查 shell 脚本是否以 root 用户身份运行
在 shell 脚本的开头添加以下代码以检查脚本是否以 root 用户身份运行。如果该脚本作为非 root 帐户执行,它将以状态码 1 退出。
|
#!/usr/bin/env bash
if [ "$EUID" -ne 0 ];then
echo “请以 root 用户身份运行此脚本”
exit 1
fi
|
这里的EUID是存储当前登录用户的用户 ID (UID) 的系统变量。 “root”用户的 UID 始终是0
在 Linux 系统上。
除了使用 UID 之外,您还可以匹配登录的用户名。这whoami
命令提供当前登录的用户名。下面的脚本将检查脚本是否以 root 用户身份运行。
|
#!/usr/bin/env bash
if [ `whoami` != 'root' ];then
echo “请以 root 用户身份运行此脚本”
exit 1
fi
|
检查 shell 脚本是否以非 root 用户身份运行
有时,脚本需要以非 root 帐户运行。在这种情况下,您可以添加以下代码片段来检查用户帐户,并且仅当脚本以普通用户身份运行时才继续。
|
#!/usr/bin/env bash
if [ "$EUID" -eq 0 ];then
echo “请以非 root 用户身份运行此脚本”
exit 1
fi
|
结论
在本快速操作指南中,您了解了如何在 shell 脚本中添加限制以 root 用户或非 root 用户身份运行。如果它正在运行不同的用户,脚本将立即退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)