在debian包中的preinst脚本中定义用户



我正在创建一个debian包,我在其中编写了预安装和后安装脚本。在我的预安装脚本中,我使用";sudo";。但这些文件的实际所有者是其他一些自定义用户。因此,当我备份或恢复这些文件时,用户将更改为root用户。

如何定义我的自定义用户来复制或移动debian包预装脚本中的文件?

if [ -e /home/custom/file.txt]; then
sudo cp -v /home/custom/file.txt /home/custom/backup/file.txt
exit 1
fi

在pre-inst脚本中执行上述代码后,file.txt的所有者将更改为根

如果您是root,则可以始终使用su

if [ -e /home/custom/file.txt ];: then
su custom -c 'cp -v /home/custom/file.txt /home/custom/backup/file.txt'
exit 1
fi

如果你有sudo,那就更好了;但请记住,您的软件包必须依赖于它的安装和配置,才能在您的场景中正常工作。如果您的包由于其他原因还没有完成这些工作,那么只使用su可能会更简单。但如果你这样做了,只需使用sudo -u custom cp。。。

要复制具有特定所有权的文件,请参阅install

if [ -e /home/custom/file.txt ]; then
install -o custom -g customgroup -t /home/custom/backup -D 
/home/custom/file.txt
exit 1
fi

请注意,-D选项还可以减轻您确保目标目录存在的负担。

显然,将customgroup更改为正确的组名,或者省略-g选项。

相关内容

  • 没有找到相关文章

最新更新