首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卡皮斯特拉诺+瘦+ nginx与用户不允许做如何?

卡皮斯特拉诺+瘦+ nginx与用户不允许做如何?
EN

Stack Overflow用户
提问于 2008-10-01 10:06:12
回答 4查看 2.7K关注 0票数 2

我有这样一个场景,我想使用capistrano来部署我的rails应用程序:

  1. web应用程序位于一个瘦集群上,配置文件存储在/etc/
  2. 下面。另外,init脚本位于/etc/init.d/thin中,因此每当我的服务器需要重新启动
  3. 时,它就会自动启动。nginx的执行方式与init脚本守护进程一样(init脚本守护进程)
  4. ,以确保万一有人入侵了我的web服务器,我不希望他们做太可怕的事情,因此不允许web用户进行sudo操作。
  5. Thin和nginx都作为润湿器运行,以强制执行此类安全

现在,当我需要进行部署时,我需要将文件安装在/home/webuser/railsapps/helloworld下,然后需要cap重新启动瘦文件。我希望保留所有由润湿器拥有的文件,因此cap主用户正在以webuser的形式运行。现在,当我想重新启动瘦守护进程时会出现问题,因为webuser不能这样做。

我在想,是否可以调用两个单独的会话--用于文件部署的webuser,以及重新启动守护进程的特殊sudoer。有人能给我一个示例脚本吗?

EN

回答 4

Stack Overflow用户

发布于 2008-10-01 10:11:01

这可能不是您想要的,但实际上您可以在sudoers文件中这样做:

代码语言:javascript
运行
复制
someuser ALL=NOPASSWD: /etc/init.d/apache2

允许某个用户运行/etc/init.d/apache2

如果你想做别的事:

代码语言:javascript
运行
复制
$ sudo ls
[sudo] password for someuser: 
Sorry, user someuser is not allowed to execute '/bin/ls' as root on ...
票数 4
EN

Stack Overflow用户

发布于 2008-10-12 00:15:42

为什么不使用sudo作为部署例程,然后在RAILS_ROOT上使用chown -R?您可以告诉Capistrano在将发行版混叠为当前版本之前更改所有权。

票数 1
EN

Stack Overflow用户

发布于 2009-07-19 03:06:27

如果你像润湿器一样跑得稀薄,那么润湿器能不能结束这个过程?您可以在没有守护进程的情况下再次重新启动Thin,只要您将/etc/thin中的所有内容都传递给服务器,就可以了。据我所知,守护进程只是一种方便的方式,可以避免在引导时手动启动程序。

只有当您必须编辑/etc/thin的内容时,您才会陷入困境。假设您对润湿器的thin.yml位使用别名,这种情况只有在您想要添加/删除程序时才会发生。当发生这种情况时,只需手动添加/删除别名就可以了。

这都是假设润湿器可以结束薄薄的过程。否则我就不知道了。上一次,这对我来说是个问题,当时我没有办法在本地机器上运行这个应用程序,因为它的实现与服务器的布局有很大关系。每次编辑某些内容时,我都必须将其发送到SVN,将终端中的选项卡切换到ssh shell,从SVN中提取它,切换到另一个ssh,然后重新启动守护进程,看看是否已损坏它。它让我失望了,所以我在本地安装了瘦文件,让应用程序读取配置文件,现在我只需要每隔几天上传一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/156941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档