小编Yar*_*rin的帖子

在多台机器上使用相同的 SSH 私钥

我有一个 Github 存储库,我想从两台不同的 Linux 机器访问。

对于第一台机器,我按照Github 的说明生成 SSH 密钥,并将生成的公钥添加到 Github。这个客户端工作正常。

对于第二个客户端,我/home/{user}/.ssh/id_rsa从第一个客户端复制了文件。我认为这可能就是我所要做的,但是当我尝试连接时,我收到“权限被拒绝(公钥)”。

我错过了什么?

linux ssh github

38
推荐指数
3
解决办法
7万
查看次数

如何查找给定进程的 .pid 文件

我正在设置 monit 并想监控给定的 python 应用程序。Monit 通过查看进程的 .pid 文件来做到这一点,但我不知道这会在哪里。

我还尝试创建自己的简单可执行文件并运行它 - 在这里我也无法弄清楚 .pid 文件的创建位置。

并且所有进程都有一个 .pid 文件吗?

linux monitoring pid monit

18
推荐指数
1
解决办法
9万
查看次数

使用 mod_rewrite 强制 HTTPS,包括代理 SSL

我有一台服务器从 SSL 终止负载平衡器获取一些流量 - 在这种情况下,它作为 HTTP 通过端口 80 传入,带有http_x_forwarded_proto= "https"

我想要一个只允许直接 HTTPS 流量或转发 HTTPS 流量的 mod_rewrite 规则。

到目前为止我有这个:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:http_x_forwarded_proto} != https
RewriteCond %{HTTP:http_x_forwarded_proto} != HTTPS
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

但我得到

RewriteCond:错误的标志分隔符

错误。

我需要纠正什么才能使其正常工作,这是最好的方法吗?

mod-rewrite apache-2.2

9
推荐指数
1
解决办法
1万
查看次数

无法使用 supervisorctl 'reload' 命令重新加载主管

supervisord像这样在 CentOS 6 机器上运行,

/usr/bin/supervisord -c /etc/supervisord.conf
Run Code Online (Sandbox Code Playgroud)

当我启动supervisorctl所有进程状态都很好,但是如果我reload在 supervisorctl 中尝试命令,然后做任何事情,我得到

unix:///tmp/supervisor.sock 没有这样的文件

但是 reload 命令应该负责重新创建 .sock?

我正在使用在其他机器上成功使用的相同配置文件,并且我以 root 身份运行所有内容。我无法理解问题是什么...

配置文件:

; Sample supervisor config file.

[unix_http_server]
file=/tmp/supervisor.sock   ; (the path to the socket file)
;chmod=0700                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; (ip_address:port …
Run Code Online (Sandbox Code Playgroud)

supervisord

7
推荐指数
1
解决办法
1万
查看次数

使用 ACL 设置每个目录的 umask

我们想在某个目录上模拟系统范围 002 umask 的行为,foo以确保以下结果:

  1. 在下面创建的所有子目录foo将具有 775 权限
  2. 在下面创建的所有文件foo和子目录都将具有 664 权限
  3. 1 和 2 将发生在所有用户(包括 root 和所有守护进程)创建的文件/目录中。

假设在我们的分区上启用ACL,这是我们想出的命令:

setfacl -R -d -m mask:002 foo
Run Code Online (Sandbox Code Playgroud)

......但这不起作用。在目录中创建的新文件最终看起来像:

-rw--wr--+

当我运行getfacl新文件时,我得到:

# file: newfile.py
# owner: root
# group: agroup
user::rw-
group::rwx #effective:-w-
mask::-w-
other::r--

换句话说,施加mask:200与ACL是一样的涂敷umask 200

那么没有办法通过 ACL 应用每个目录的 umask?

linux permissions access-control-list posix umask

6
推荐指数
1
解决办法
1万
查看次数

了解服务器到服务器 SSL

这个问题会有很多无知,所以请忍受:

我对标准浏览器客户端到服务器 SSL 连接的理解包括:

  1. 浏览器通过 HTTPS 连接到服务器
  2. 浏览器请求服务器 SSL 证书
  3. 浏览器根据颁发它的第三方 CA(证书颁发机构)验证证书。
  4. 浏览器和服务器通过开放的 SSL 连接进行通信,并且在建立新连接(即下一次回发)之前不需要/再次下载证书。

如果我已经损坏了它,请纠正我到目前为止,但现在我正试图将我的头脑围绕在从充当客户端的一台服务器到充当服务器的另一台服务器建立 SSL 连接时会发生什么,而 PHP 是打电话。本质上是一样的过程吗?客户端 - 服务器是否与浏览器 - 客户端执行相同的步骤?

在 apache 环境中,客户端-服务器是否需要以某种方式设置?

security ssl apache-2.2

3
推荐指数
1
解决办法
159
查看次数

为所有用户设置 umask

我正在尝试将所有用户的默认 umask 设置为 002,包括我的 CentOS 机器上的 root。

根据这个和其他答案,这可以通过编辑/etc/profile. 然而,该文件顶部的评论说:

除非您知道自己在做什么,否则更改此文件不是一个好主意。最好在 /etc/profile.d/ 中创建 custom.sh shell 脚本以对您的环境进行自定义更改,因为这将防止在将来的更新中需要合并。

所以我继续创建以下文件:
/etc/profile.d/myapp.sh
与单行:

umask 002
Run Code Online (Sandbox Code Playgroud)

现在,当我以 root 身份创建一个文件时,该文件天生就有 664 权限,正如我所希望的那样。但是由我的 Apache mod_wsgi 应用程序创建的文件,或使用 sudo 创建的文件,仍然默认为 644 权限......

$ touch newfile(作为根):
结果 = 664(作品)

$ sudo touch newfile
结果 = 644(不起作用)

Apache mod_wsgi 应用程序创建的文件:
结果 = 644(不起作用)

Python 的 RotatingFileHandler 创建的文件:
结果 = 644(不起作用)

为什么会发生这种情况,以及如何确保系统范围内的 664 文件权限,无论创建文件的内容是什么?

linux fedora centos file-permissions umask

3
推荐指数
1
解决办法
1万
查看次数