在运行Debian的NAS中,我愚蠢地将PermitRootLogin设置为sshd_config中的无密码,而没有正确设置密钥,现在被锁在门外。这是一个WD Sharespace,并阅读它,看来我恢复根SSH访问的最佳方法是创建一个覆盖原始sshd_config文件的deb包。我发现描述deb包创建的站点相当繁重。我所需要做的就是覆盖一个文件。有什么简单的方法吗?
发布于 2014-10-26 08:54:54
有一些工具可以简化一些简单的打包,但是打包是一项基本复杂的任务,因为包可以完成很多事情(写出二进制文件、配置文件、运行后安装脚本等等)。
也就是说,如果您所需要做的就是打包一个文件以显示在一个特定的位置,那么这样的工具就是fpm (需要Ruby)。不要不尊重fpm,它可以做更多的事情,而不仅仅是打包一堆东西!
在/tmp中创建您想要打包的目录结构。如果/tmp/mypackage是目标文件系统的根,那么您在mypackage/etc中放置的任何内容在安装包后都会显示在/etc中:
mkdir -p /tmp/mypackage/etc
echo "My file contents" > /tmp/mypackage/etc/my_config_file将sshd_config文件插入etc目录。然后我们把它包装起来:
fpm -t "deb" -n "mypackage" -s dir /tmp/mypackage你应该得到这样的东西:
Created package {:path=>"mypackage_1.0_amd64.deb"}确保使用-a选项设置正确的体系结构(我不知道WD Sha呼吸道使用了什么)。一旦您在NAS上安装了该软件包,配置文件就会出现在那里。
发布于 2015-02-23 15:22:56
作为Lenny和许多其他发行版中存在的另一种选择,是“外星”命令。它将包从一个发行版转换到另一个发行版。这不会有多大用处,除非它非常宽容Slackware TGZ包。它将接受任何路径从根目录开始的TGZ文件(pkgname_version.tar.gz),并将该TGZ转换为一个普通的deb文件进行安装。
它有几个选项来定制包(设置、版本、标签等),但最终的结果是一个包,它可以安装/删除或替换系统上的任何包,而不需要麻烦。
https://stackoverflow.com/questions/26550085
复制相似问题