gpt4 book ai didi

linux - 如何将 bash 脚本的执行限制为特定用户

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:23 26 4
gpt4 key购买 nike

我正在上一门基础操作系统类(class),并被分配了如下作业:“编写一个 shell 脚本,将文件从当前文件夹移动到称为备份的子文件夹。它应该接受源和目标作为脚本的参数。如果用户不键入,脚本应该显示错误在两个参数中,或者如果找不到文件,或者如果其他用户(除了您自己)尝试执行脚本。”

我写了一个脚本如下:

if [ $# -eq 2 ]; then
if ! [[ -f "$1" ]]; then
echo Error: The file $1 was not found.
exit 1
fi
else
echo Error: Check syntax or number of arguments
echo Correct use: $0 [source] [destination]
exit 1
fi

echo Copying file $1 to $2/backup/$1
mkdir $2
mkdir $2/backup
cp $1 $2/backup

我已经在 W7 的 Cygwin 上测试了这个,因为我目前无法访问 linux 环境(我们通常通过 SSH 连接到远程服务器,但由于某种原因它已关闭)并且它适用于前两个要求检查传递的参数数量和未找到的文件。我已经进行了一些搜索,但不幸的是,我完全不知道如何执行限制用户执行的最后一部分 - 这就是我需要帮助的地方。

与代码本身相比,我更感兴趣的是了解它是如何完成的以及为什么这样做,所以如果可能的话,我将不胜感激。

谢谢

最佳答案

您可以使用环境变量 $USER 来检查您自己的用户名

if [ "$USER" != "allowed_username" ]; then
echo 'Access denied'
exit 1
fi

关于linux - 如何将 bash 脚本的执行限制为特定用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com