2012-09-28 92 views
0

我想将我的配置文件夹移动到我的debian服务器,并将其存储在一个看起来最明智和最合理的地方。我被倾倒在家里的一切,但现在它看起来像这样:在哪里存储配置

软件:/opt/
Web文件:/var/www

不过,我有我的软件配置文件夹移动到的位置在服务器上,这样它们能够被符号链接到正确的位置。其中这些似乎是最所在地的地方要做到这一点:

/home/configs
/var/cfgs
或者其他?

很抱歉,如果这似乎迂腐,但你知道他们说什么,没有的一切,一切都各就各位的地方;)

回答

2

根据FHS,我建议使用/etc,这是放置主机特定系统范围配置的地方。

这里假定配置用于服务器应用程序(而不是由人类用户运行的应用程序)。

例如我运行的Zope,其配置文件的多个实例

/etc/zope/instanceA/ 
/etc/zope/instanceB/ 
/etc/zope/test/ 
1

这是一个味道的东西......你的机器上的唯一用户?
如果是这样没关系,你可以把所有东西放在家里。

如果是服务器,则必须确保您的config目录具有正确的访问权限 。所以$ HOME不合适。

还有一件事,如果是Debian机器,请将/var/www放在它的位置。这就是许多Web相关软件包安装的地方。如果您开始移动,那么稍后在升级这些软件包时可能会遇到问题。

为每个软件创建一个用户也是一件有趣的事情...我假设这些服务用户不会登录,因此没有真正的目的甚至将它们设置为$ HOME。我甚至会将它们设置为nologin作为安全手段,如果这些软件可以从其他机器访问,并且希望避免某些人损害这些用户。

+0

我正在为服务器上的每个主要软件安装创建一个用户,因此只有一个用户。所以,在这一点上,我确信我应该把网站放在www中,我不应该把代码放在家中,但我留下了问题,我应该在哪里放置它? –

+1

@JamesWillson,我添加了一些关于您添加的信息的注释。 – Oz123

+0

我很欣赏你的额外评论,我很乐意给你答案,但我仍然不确定我的配置应该去哪里。 –

0

系统配置文件绝不应该在用户的主目录。太容易闯入,或者错误修改,不恰当地更改权限。

/etc在您管理多个系统时会出现问题。最佳实践:将副本保存在另一个目录中,并根据需要通过scp推送到所有适当的系统。

如果你的软件包没有被系统软件包管理器管理,这也变得很困难,例如,从源代码安装。如果您有多个版本的软件正在运行,则会增加困难。

随着系统的数量和类型以及软件包和版本数量的增加,管理变得越来越复杂。对于一台机器,用户很少,在/ etc中配置就没有问题。

对于一个反例:考虑如果您自定义您的foo安装。假设这是你的发行版提供的一个包,但是你需要一个不同的版本。

在默认位置安装配置文件可能会导致它在下次系统升级时被破坏。 (可能与你在/ usr/bin中的修改版一起)

一个常见的做法是让你添加/修改的东西与系统文件树完全分开。 当我是一名执业系统管理员时,我将所有特殊的东西都存放在/ opt中。

/opt 
/opt/bin 
/opt/sbin 
/opt/usr/bin 
/opt/usr/sbin 
/opt/man 
/opt/etc 

这使东西出来的系统的方式,但它并不总是很清楚哪些文件属于哪个包。

具有许多可执行文件和手册页的软件包可能会获得自己的目录。 Netpbm和ImageMagic,gnu utils,perl(模块)都是很好的例子。这会为目录树添加一个级别。

/opt/misc/bin #Contained anything that was one program, one man page 
/opt/netpbm_2.1/bin 
/opt/imagemagick_3.2/... 
/opt/gnu_1.1/... 

以及所有其他目录。如全套的/ opt/{包版本}/{料| sbin目录|人|等| VAR}

This is especially true for packages where you need to keep multiple versions. e.g. 

/opt/perl4.023... 
/opt/perl5.8... 

保持大包单独树木使得切换容易 - 一个背出了一个不好的变化快。在大多数情况下,您将保持用户默认路径中的符号链接指向实际的二进制文件。例如。/usr/bin/perl - > /opt/perl5.8/bin/perl。这里的良好做法是留下具体版本的链接。例如/ usr/bin/perl4 - > /opt/perl4.023/bin/perl

在某些地方,您有多种体系结构可供处理。 (我有11个Unix变种一个地方...)这又级别添加到树:

/opt/hpux/... 
/opt/irix/... 
/opt/sysv/... 
/opt/solaris/... 

我一般只维持在NFS文件共享的方式,和当地拷贝到个别机器制造。

复杂层次结构的优点是易于维护。如果/ opt/apache包含所有二进制文件,手册页和配置文件,那么如果您决定更改为lighttpd,那么最终不会让lighttpd与Apache的配置文件混淆。 (两者都称为httpd.conf)

这也意味着当您尝试一个包并将其删除时,您不会在这里和那里留下一堆垃圾。

通常,您不希望应用程序的数据驻留在其/ opt /应用程序树中。

有缺点:

  • 如果配置文件和VAR可以从/选择分离,那么可以只读除了升级/ opt中。这可以简化备份。

  • 这样做的一个副作用是可执行路径维护的问题。保留系统范围的点文件(.cshrc,.tcshrc,.bashrc),以便进行必要的路径更改,以便大部分用户不知道更改。这些文件来自它们的默认点文件。

相关问题