AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-91213

dotancohen's questions

Martin Hope
dotancohen
Asked: 2018-05-09 03:04:34 +0800 CST

在 .htaccess 中执行两种替换类型

  • 1

考虑一个.htaccess必须将所有下划线转换为破折号的文件,并用文件名中的斜杠替换潜在的.html后缀。

来自客户端的http://foo.com/a_b/c_d.html
示例 URL:要重定向的示例 URL:http://foo.com/a-b/c-d/

我一直在使用这个规则来替换.html后缀:

RewriteRule ^(.*)\.html$ $1/ [R,L]

我发现这个了不起的 serverfault.SE 帖子用于下划线重写:

RewriteRule ^(.*)_(.*)_(.*)_(.*)$ /$1-$2-$3-$4 [R,L]
RewriteRule ^(.*)_(.*)_(.*)$ /$1-$2-$3 [R,L]
RewriteRule ^(.*)_(.*)$ /$1-$2 [R,L]

但是,只有一种替换类型发生,以.htaccess文件中的第一个替换类型为准。我似乎无法配置.htaccess为执行这两种替换。

这意味着以下代码将仅替换.html后缀:

RewriteRule ^(.*)\.html$ $1/ [R,L]
RewriteRule ^(.*)_(.*)_(.*)_(.*)$ /$1-$2-$3-$4 [R,L]
RewriteRule ^(.*)_(.*)_(.*)$ /$1-$2-$3 [R,L]
RewriteRule ^(.*)_(.*)$ /$1-$2 [R,L]

以下代码将仅替换下划线:

RewriteRule ^(.*)_(.*)_(.*)_(.*)$ /$1-$2-$3-$4 [R,L]
RewriteRule ^(.*)_(.*)_(.*)$ /$1-$2-$3 [R,L]
RewriteRule ^(.*)_(.*)$ /$1-$2 [R,L]
RewriteRule ^(.*)\.html$ $1/ [R,L]

必须如何.htaccess配置才能同时替换.html后缀和下划线?

.htaccess
  • 1 个回答
  • 446 Views
Martin Hope
dotancohen
Asked: 2016-05-10 01:36:51 +0800 CST

在 CentOS 7 上安装 Blowfish2 以在 VIM 中使用

  • 0

我正在从基于 Debian 的发行版迁移到 CentOS 7。我有使用河豚加密的文件,我在 VIM 中使用以下设置透明地编辑这些文件~/.vimrc:

:set cryptmethod=blowfish2

这是我收到的错误:

E474:无效参数:cryptmethod=blowfish2

但是,我似乎在 CentOS 中找不到合适的软件包。我已经安装了以下软件包,但仍然出现错误:

$ sudo yum install bcrypt cryptsetup-python libcryptui py-bcrypt 

以下是所有似乎相关的软件包:

$ yum search bcrypt
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nonstop.co.il
 * epel: mirror.nonstop.co.il
 * extras: mirror.nonstop.co.il
 * updates: mirror.nonstop.co.il
============================= N/S matched: bcrypt ==============================
libcryptui-devel.i686 : Header files required to develop with libcryptui
libcryptui-devel.x86_64 : Header files required to develop with libcryptui
rubygem-bcrypt.x86_64 : Wrapper around bcrypt() password hashing algorithm
rubygem-bcrypt-doc.x86_64 : Documentation for rubygem-bcrypt
bcrypt.x86_64 : File encryption utility
cryptsetup-python.x86_64 : Python bindings for libcryptsetup
libcryptui.i686 : Interface components for OpenPGP
libcryptui.x86_64 : Interface components for OpenPGP
py-bcrypt.x86_64 : Python bindings for OpenBSD's Blowfish password hashing code

  Name and summary matches only, use "search all" for everything.

$ yum search blowfish
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nonstop.co.il
 * epel: mirror.nonstop.co.il
 * extras: mirror.nonstop.co.il
 * updates: mirror.nonstop.co.il
============================ N/S matched: blowfish =============================
perl-Crypt-Eksblowfish.x86_64 : Eksblowfish block cipher
php-horde-Horde-Crypt-Blowfish.noarch : Blowfish Encryption Library
php-pear-Crypt-Blowfish.noarch : Quick two-way blowfish encryption
php-phpseclib-crypt-blowfish.noarch : Pure-PHP implementation of Blowfish
py-bcrypt.x86_64 : Python bindings for OpenBSD's Blowfish password hashing code

  Name and summary matches only, use "search all" for everything
vim encryption centos7
  • 2 个回答
  • 973 Views
Martin Hope
dotancohen
Asked: 2015-10-13 21:46:54 +0800 CST

如何确保 I/O 请求恢复到正常速率?

  • 0

在Amazon Web Services上,我使用t2.small EC2实例作为 VPS,为 LAMP (PHP) 堆栈上的几个网站提供服务。我刚收到一张账单,几乎是我平时账单的三倍。我看到我的I/O 请求使用率非常高。我登录到服务器并注意到磁盘已满。我已经删除了一堆非关键文件和日志,磁盘 (EBS) 现在的容量小于 60%,但我想检查两件事。

  1. 如何判断大量 I/O 请求是否是由于磁盘已满?
  2. 如何判断我是否仍在处理 I/O 请求?

我没有启用特定于 AWS 的CloudWatch监控服务,所以我可能不会得到 #1 的答案,但任何建议都将不胜感激。

关于#2,我使用了这篇博文中提到的两种方法来确定我的 I/O 速率,看起来它非常非常高。以下是来自服务器的一些统计数据:

$ iostat
Linux 3.13.0-45-generic (dysphoria)     2015-10-08      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.74    0.01    0.69   16.83    0.43   79.30

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda            170.08     10039.29        32.52  843300857    2731428
xvdf              0.01         0.02         0.00       1308          0

$ cat /proc/diskstats
   1       0 ram0 0 0 0 0 0 0 0 0 0 0 0
   1       1 ram1 0 0 0 0 0 0 0 0 0 0 0
   1       2 ram2 0 0 0 0 0 0 0 0 0 0 0
   1       3 ram3 0 0 0 0 0 0 0 0 0 0 0
   1       4 ram4 0 0 0 0 0 0 0 0 0 0 0
   1       5 ram5 0 0 0 0 0 0 0 0 0 0 0
   1       6 ram6 0 0 0 0 0 0 0 0 0 0 0
   1       7 ram7 0 0 0 0 0 0 0 0 0 0 0
   1       8 ram8 0 0 0 0 0 0 0 0 0 0 0
   1       9 ram9 0 0 0 0 0 0 0 0 0 0 0
   1      10 ram10 0 0 0 0 0 0 0 0 0 0 0
   1      11 ram11 0 0 0 0 0 0 0 0 0 0 0
   1      12 ram12 0 0 0 0 0 0 0 0 0 0 0
   1      13 ram13 0 0 0 0 0 0 0 0 0 0 0
   1      14 ram14 0 0 0 0 0 0 0 0 0 0 0
   1      15 ram15 0 0 0 0 0 0 0 0 0 0 0
   7       0 loop0 0 0 0 0 0 0 0 0 0 0 0
   7       1 loop1 0 0 0 0 0 0 0 0 0 0 0
   7       2 loop2 0 0 0 0 0 0 0 0 0 0 0
   7       3 loop3 0 0 0 0 0 0 0 0 0 0 0
   7       4 loop4 0 0 0 0 0 0 0 0 0 0 0
   7       5 loop5 0 0 0 0 0 0 0 0 0 0 0
   7       6 loop6 0 0 0 0 0 0 0 0 0 0 0
   7       7 loop7 0 0 0 0 0 0 0 0 0 0 0
 202       0 xvda 14198708 1225 1686588426 26715600 87579 51756 5461696 11290600 0 16654328 38003076
 202       1 xvda1 14198527 1203 1686586802 26715376 87579 51756 5461696 11290600 0 16654236 38002848
 202      80 xvdf 447 6 2616 288 0 0 0 0 0 288 288

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2000       1910         89          6          6       1216
-/+ buffers/cache:        688       1312
Swap:            0          0          0

尽管上述信息是在启动后不久获取的,但iostat报告显示即使系统运行了几个小时后,初始 TPS 也在 50-80 范围内。该服务器为大约 20 个站点提供服务,其中只有 3 个站点每天的点击次数超过几次。每天有数百名访客。服务器和站点多年来一直保持这种配置,没有出现问题。直到最近 I/O 才开始激增,而代码、服务器配置或网站负载都没有相应的变化。

请注意,这个问题最初是在 Amazon Web Services 官方论坛上提出的,但似乎没有人能够在那里提供帮助。也许这个问题对于那个论坛来说太笼统了。

linux
  • 1 个回答
  • 52 Views
Martin Hope
dotancohen
Asked: 2015-03-02 07:25:34 +0800 CST

SSH 或 FTP 协议是否告诉服务器我要连接到哪个域?

  • 26

在 Bash shell 中使用sshorftp命令时,我要连接的服务器是否知道所使用的域名?我了解域名是通过 DNS在本地翻译成 IP 地址的。在 HTTP 中,发生这种情况后,服务器也会被告知原始域名,以便提供正确的页面,或提供正确的 TLS 证书 (SNI)。

host serverfault.com
GET /

ssh连接到or时是否会出现类似现象ftp?

我问是因为我试图通过 ssh 连接到需要域名的服务器(GoDaddy 虚拟主机),但是当我尝试通过连接时没有让我进入,user@IPaddress因为 DNS 尚未移动到 GoDaddy IP 地址。

domain-name-system
  • 2 个回答
  • 5015 Views
Martin Hope
dotancohen
Asked: 2014-12-09 07:03:53 +0800 CST

SSL 证书请求的非交互式创建

  • 26

有没有办法通过在初始命令上指定所有必需的参数来创建 SSL 证书请求?我正在编写一个基于 CLI 的 Web 服务器控制面板,如果可能,我想在执行时避免使用期望openssl。

这是创建证书请求的典型方式:

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr
Generating a 2048 bit RSA private key
.................................................+++
........................................+++
writing new private key to 'foobar.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New Sweden
Locality Name (eg, city) []:Stockholm
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Scandanavian Ventures, Inc.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:foobar.com
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:FooBar

我希望看到这样的东西:( 不起作用的例子)

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr \
-Country US \
-State "New Sweden" \
-Locality Stockholm \
-Organization "Scandanavian Ventures, Inc." \
-CommonName  foobar.com \
-EmailAddress [email protected] \
-Company FooBar

精美的手册页对此事无话可说,我也无法通过 Google 找到任何内容。SSL 证书请求生成必须是一个交互式过程,还是有某种方法可以在单个命令中指定所有参数?

这是在 Debian 派生的 Linux 发行版上运行openssl 1.0.1.

linux
  • 3 个回答
  • 16767 Views
Martin Hope
dotancohen
Asked: 2014-11-07 03:12:02 +0800 CST

确定 SSL 证书是否受 SHA-1 淘汰的影响

  • 3

在以下情况下,谷歌浏览器会开始警告用户他们的 SSL 连接不安全:

  1. 证书使用 SHA1 哈希算法,并且
  2. 证书在 2016-01-01 (或 2017-01-01 不同来源)或之后到期

因此,我正在尝试编写一种方法来确定证书是否受到影响。这是我维护的另一台服务器上的 SHA1 证书的示例,该证书在“安全”时间范围内到期:

$ curl -v --silent https://example.com/ 2>&1 | grep "expire\|SSL connection using"
* SSL connection using DHE-RSA-AES256-GCM-SHA384
*        expire date: 2015-07-20 00:00:00 GMT

我怎么能确定这个证书是字符串中的 SHA1 DHE-RSA-AES256-GCM-SHA384?字符串中的内容确保它256看起来像是使用 256 位算法,尽管我知道这不是因为我自己使用$ openssl req -new -newkey rsa:2048 -nodes. 谷歌搜索我找到了这个资源或支持的密码,但我不知道如何从该文档中确定密码强度。

如何通过 curl 确定密码强度,以便编写脚本?

apache-2.2
  • 2 个回答
  • 1706 Views
Martin Hope
dotancohen
Asked: 2014-10-07 01:41:45 +0800 CST

如何远程列出已配置用户主目录中的目录

  • 3

ssh我注意到在Linux 服务器中进行单行操作时, 的值~仍然是本地用户主目录的值,而不是远程用户的主目录。见证本地用户dotancohen和远程用户atwood:

$ whoami
dotancohen

$ ssh beta whoami
atwood

$ ssh beta ls ~/.ssh
ls: cannot access /home/dotancohen/.ssh: No such file or directory

$ ssh beta ls $HOME/.ssh
ls: cannot access /home/dotancohen/.ssh: No such file or directory

$ ssh atwood@beta ls ~/.ssh
ls: cannot access /home/dotancohen/.ssh: No such file or directory

$ ssh beta ls /home/atwood/.ssh
authorized_keys

$ ssh beta ls .ssh             
authorized_keys

请注意,即使在连接详细信息中指定用户名,甚至使用$HOME代替~也无济于事。并不是我期望他们这样做,但值得一试。

.ssh/config如果需要,我在做单行时查找用户名没有问题,但是无法~在脚本中使用是相当不方便的。除了解析~/.ssh/config用户名之外,有没有办法绕过这个限制?最后一个示例表明,我可以假设我们在他的主目录中并引用与之相关的内容,但如果可能,我更愿意显式调用该目录。

如何通过 SSH oneliners 引用用户的主目录,而无需~/.ssh/config在本地进行解析?

在本地系统 Kubuntu 14.04 和远程系统 Ubuntu Server 12.04、14.04 和 RHEL 6.5 上进行了测试。

ssh
  • 1 个回答
  • 1057 Views
Martin Hope
dotancohen
Asked: 2014-10-01 04:19:20 +0800 CST

RHEL 6.5 上的 PHP 5.3.3 是否接收安全修复?

  • 5

我注意到 RHEL 6.5 上可用的最新 PHP 是PHP 5.3.3. 请参阅Distrowatch以及我自己的检查:

$ php -v
PHP 5.3.3 (cli) (built: Jul 15 2014 08:48:08)

但是,PHP 网站声称此版本已贬值,并且 5.3 分支以 5.3.29 结束,而不是 RHEL 6.5 中的 5.3.3。

由于 Red Hat 支持该发行版,我假设所有应用程序都是安全维护的,但我在哪里可以找到这些信息?根据生产支持覆盖范围“如果我们发货,我们......不支持......第三方软件/社区项目”。出于 RHEL 支持的目的,PHP 是否被视为第三方软件或社区项目?

我查看了Red Hat Enterprise Linux Life Cycle和RHEL 顶级支持策略文档,但没有找到答案。在我目前的职位上,我实际上无法访问与此帐户相关的 RHEL 支持服务,否则我只会问 Red Hat!但是,我确实认为这些信息应该是公开的,并且适用于任何 RHEL 用户,因此我在这里问。

security
  • 2 个回答
  • 4069 Views
Martin Hope
dotancohen
Asked: 2014-08-19 07:22:43 +0800 CST

MySQL权限错误

  • 4

似乎在 Ubuntu 14.04 机器上,用户mysql无法访问任何东西。它不是写日志也不是读文件。见证:

 - bruno():mysql$ cat /etc/passwd | grep mysql
mysql:x:116:127:MySQL Server,,,:/nonexistent:/bin/false

 - bruno():mysql$ sudo mysql_install_db
Installing MySQL system tables...
140818 18:16:50 [ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'
140818 18:16:50 [ERROR] Aborting
140818 18:16:50 [Note] 

Installation of system tables failed!  Examine the logs in
/var/lib/mysql for more information.

...boilerplate trimmed...

 - bruno():mysql$ ls -la /usr/share/mysql/english/errmsg.sys
-rw-r--r-- 1 root root 59535 Jul 29 13:40 /usr/share/mysql/english/errmsg.sys
 - bruno():mysql$ wc -l /usr/share/mysql/english/errmsg.sys
16 /usr/share/mysql/english/errmsg.sys

在这里我们看到即使打开了权限也mysql无法读取,实际上普通登录用户可以读取文件(带)。此外,MySQL 没有写入任何日志:/usr/share/mysql/english/errmsg.syswc

 - bruno():mysql$ ls -la /var/log/mysql
total 8
drwxr-s---  2 mysql adm    4096 Aug 18 16:10 .
drwxrwxr-x 18 root  syslog 4096 Aug 18 16:10 ..

什么可能导致该用户无法访问任何内容?我能做些什么呢?

mysql
  • 1 个回答
  • 1338 Views
Martin Hope
dotancohen
Asked: 2014-08-16 07:01:33 +0800 CST

iostat 在特定磁盘的第一行报告低 r/s,在同一磁盘的所有后续行上报告预期 r/s

  • -1

将数据从硬盘复制sdc到 时sda,我注意到每秒完成的读取请求数异常低:

$ iostat -x 1 1
Linux 3.13.0-32-generic (melancholy)    2014-08-15      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.15    0.00    0.94    1.91    0.00   94.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.15     6.43    0.37    4.85    14.17  2154.46   829.68     1.35  258.80   26.50  276.74   2.89   1.51
sdb               0.02     1.08    0.63    1.91    10.48    86.95    76.56     0.13   50.08    4.89   65.06   2.98   0.76
sdc               0.35     1.10   29.15    0.18  2140.15     5.11   146.32     0.29    9.98    9.39  107.21   2.12   6.22

进一步挖掘,似乎每次我开始iostat第一行报告很多r / s:

$ sudo iostat -x 1 3
Linux 3.13.0-32-generic (melancholy)    2014-08-15      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.15    0.00    0.94    1.95    0.00   93.96

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.15     6.43    0.38    4.98    14.29  2219.15   832.86     1.39  259.93   25.96  277.93   2.89   1.55
sdb               0.02     1.08    0.63    1.91    10.47    86.84    76.55     0.13   50.06    4.89   65.02   2.98   0.76
sdc               0.35     1.10   29.91    0.18  2206.09     5.11   146.98     0.30   10.00    9.43  107.21   2.12   6.37

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.00    0.00    2.01   24.56    0.00   72.43

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     5.00    0.00    2.00     0.00    28.00    28.00     0.03   14.00    0.00   14.00  14.00   2.80
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00  498.00    0.00 42496.00     0.00   170.67     5.35   10.74   10.74    0.00   2.01 100.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    2.75   40.75    0.00   56.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00  274.00     0.00 139648.00  1019.33   114.82  304.88    0.00  304.88   2.93  80.40
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00  500.00    0.00 42632.00     0.00   170.53     5.34   10.70   10.70    0.00   2.00 100.00

$ sudo iostat -x 1 3
Linux 3.13.0-32-generic (melancholy)    2014-08-15      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.15    0.00    0.94    1.95    0.00   93.96

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.15     6.43    0.38    4.99    14.29  2223.10   833.13     1.40  260.11   26.00  278.09   2.89   1.55
sdb               0.02     1.08    0.63    1.91    10.46    86.84    76.55     0.13   50.06    4.89   65.02   2.98   0.76
sdc               0.35     1.10   29.94    0.18  2208.18     5.11   147.00     0.30   10.00    9.43  107.21   2.12   6.37

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.00    0.00    2.00   24.50    0.00   72.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     7.00    0.00    2.00     0.00    36.00    36.00     0.02   10.00    0.00   10.00  10.00   2.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00  496.00    0.00 42360.00     0.00   170.81     5.27   10.60   10.60    0.00   2.02 100.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    2.26   23.81    0.00   73.43

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00  499.00    0.00 42616.00     0.00   170.81     5.29   10.61   10.61    0.00   2.00 100.00

$ sudo iostat -x 1 3
Linux 3.13.0-32-generic (melancholy)    2014-08-15      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.15    0.00    0.94    1.96    0.00   93.96

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.15     6.43    0.38    4.99    14.29  2223.99   833.18     1.40  260.12   26.00  278.10   2.89   1.55
sdb               0.02     1.08    0.63    1.91    10.46    86.83    76.55     0.13   50.06    4.89   65.02   2.98   0.76
sdc               0.35     1.10   29.97    0.18  2210.82     5.11   147.03     0.30   10.00    9.43  107.21   2.12   6.38

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.25    0.00    2.01   26.07    0.00   70.68

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     5.00    0.00    3.00     0.00    32.00    21.33     0.10   34.67    0.00   34.67  34.67  10.40
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00  499.00    0.00 42616.00     0.00   170.81     5.38   10.77   10.77    0.00   2.00 100.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    2.49   25.44    0.00   71.57

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00  175.00     0.00 86040.00   983.31    40.06  228.89    0.00  228.89   2.77  48.40
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00  500.00    0.00 42632.00     0.00   170.53     5.41   10.82   10.82    0.00   2.00 100.00

这是有问题的,因为这意味着我无法自动监控,iostat因为初始读数是错误的。我可以通过运行监控脚本iostat -x 1 2并忽略第一个输出来解决它,但我真的很想了解为什么这是必要的。为什么每次运行的第一份报告都显示如此低的活动?

为了澄清,我指的是 的r/s值sdc,当数据(数百 GiB)从该磁盘复制到sda. 在 的每次运行中, foriostat的第一个值约为 29,而for的每个后续值都接近 500。这是为什么呢?r/ssdcr/ssdc

linux
  • 2 个回答
  • 1154 Views
Martin Hope
dotancohen
Asked: 2014-08-08 04:52:51 +0800 CST

允许用户访问单个 Git 存储库

  • 1

考虑一个托管多个 Git 存储库的服务器:

$ ls -l /opt/git/
drwxrwxr-x 7 ubuntu root   4096 Jan  2  2014 george.git
drwxrwxr-x 7 ubuntu root   4096 Dec 29  2013 john.git
drwxrwsr-x 7 ubuntu root   4096 Jul  4  2013 paul.git
drwxrwsr-x 7 ubuntu root   4096 Jun 30  2013 ringo.git

到目前为止,所有开发人员都可以通过 SSH 访问所有 Git 存储库。我现在正在添加一个只能访问john.gitrepo 的开发人员。我已经创建了一个 Linux 用户yoko,但我不确定我应该如何以最安全的方式yoko访问该/opt/git/john.git目录而不让他访问/opt/git/.

限制访问的规范方式是什么?

我的倾向是创建john.gitas 组foobar并将该组添加到 useryoko的组中。但是,如果我以后需要添加另一个可以访问两个 repos 的用户会发生什么?例如,我可能想添加cynthia同时访问john.git和 的用户paul.git。我应该为每个 Git 存储库设置一个单独的组吗?我可以看到它很快变得笨拙

请注意,这些用户应该只能访问他们自己的目录以及允许他们访问的 Git 存储库。/home/user/如果有一种符号链接的方法,即/home/yoko/john.git以/opt/git/john.git一种阻止访问其余部分的方式,/opt/git/那将是最好的,但是我似乎无法像这样配置系统。

该服务器正在运行 Ubuntu Server 12.04,但如果需要,我可以将其更新到 14.04。用户使用 RSA 密钥通过 SSH 连接,无需密码。他们将在服务器上执行git pull,git push仅此而已。

linux
  • 1 个回答
  • 1199 Views
Martin Hope
dotancohen
Asked: 2013-08-31 00:34:49 +0800 CST

连接到端口敲击受保护资源

  • 2

考虑到 SF 问题“防止对 SSH 的蛮力攻击”的出色答案,我正在考虑在测试服务器上配置端口敲击。我正在讨论如何轻松连接到此服务器和其他端口敲门服务器。

我通常这样配置 rsa 身份验证、地址和用户名/.ssh/config:

Host msUpdate
    User bgates
    Hostname updates.microsoft.com
    IdentityFile ~/.ssh/id_rsa.bgates.pub

因此,我可以简单地键入ssh msUpdate以登录服务器。据我所知/.ssh/config,没有配置端口敲门的设施。因此,我正在考虑一个包装脚本ssh,它将自动处理敲击:

$ cat login
#!/bin/bash

msUpdate=( 2000 3000 4000 )
otherServer=( 1024 2048 4096 )

for PORT in ${$@}; do
    ssh -p $PORT
    sleep 1
done

ssh $@

我的问题是如何写这for条线。我似乎无法让脚本将参数识别为要替换的数组的名称。虽然表面上是一个 Bash 问题,但我在 SF 上提问是因为我觉得完成的脚本对这个网站的用户最有用,而且如果有比它更好的方法,很可能会有人让我知道它。

security
  • 2 个回答
  • 484 Views
Martin Hope
dotancohen
Asked: 2013-08-10 07:42:26 +0800 CST

来自 Start SSL 的证书不受信任

  • 1

在一个小型非商业网站上,我正在使用Start SSL的免费 1 类证书。没有敏感数据通过网络传输,但我确实想为浏览该网站的人提供至少最低限度的隐私。在 Firefox 中访问该站点时,会收到“不受信任的证书”警告。这是一个使用示例wget:

$ wget https://example.com/images/dog.jpg
--2013-08-09 15:21:10--  https://example.com/images/dog.jpg
Resolving example.com (example.com)... 54.43.17.16
Connecting to example.com (example.com)|54.43.17.16|:443... connected.
ERROR: The certificate of `example.com' is not trusted.
ERROR: The certificate of `example.com' hasn't got a known issuer.

StartSSL的FAQ 条目指出,为避免警告,必须将中间 CA 证书安装到浏览器。期望所有网站访问者都这样做有点不合理!

我不介意安装大公司的证书,但在研究情况时,我发现大公司也有同样的问题。另一个很好的 ServerFault 问题提到服务器管理员应该安装中间证书,但我不确定 Start SSL 是否存在中间证书。在搬到另一家公司之前,我怎么知道他们是否拥有我们需要的所有适当的中间证书?正如前两个相关问题所示,即使使用 Verisign 或 GoDaddy 也可能无法解决问题。

这是在 Amazon Web Services 上运行的传统 LAMP 堆栈(Ubuntu Server 12.04、Apache 2.2)。

apache-2.2
  • 3 个回答
  • 2279 Views
Martin Hope
dotancohen
Asked: 2013-07-05 08:12:26 +0800 CST

Postfix 邮件转发在不同的发送位置表现不同

  • 1

我正在 Ubuntu Server 12.04 上配置 Postfix 安装,以将少量邮件从服务器上的特定地址转发到另一个域的特定地址。

$ pwd
/etc/postfix

$ cat main.cf 
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no
readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = awsBeta
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = awsBeta, localhost.localdomain, , localhost, someDomain.com
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

virtual_mailbox_domains = someDomain.com
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

virtual_alias_domains = someDomain.com
virtual_alias_maps = hash:/etc/postfix/virtual

$ cat virtual
[email protected] [email protected]

$ 

当我登录服务器上的 PHP CLI 解释器发送邮件时,邮件被正确传递到[email protected]. 请注意,这dotancohen.com是一个 Google Apps 域,MX 记录由 Google 托管。

$ php -a
Interactive shell

php > mail('[email protected]','Subject','tMessage', 'From: <[email protected]>');

我可以看到邮件已经到达[email protected]收件箱。这告诉我转发器有效。现在我从桌面的 telnet 提示符尝试:

$ telnet mail.someDomain.com 25
Trying x.x.x.x...
Connected to mail.someDomain.com.
Escape character is '^]'.
220 someHostname ESMTP Postfix (Ubuntu)
EHLO dotancohen.com
250-someHostname
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM: [email protected]
250 2.1.0 Ok
RCPT TO: [email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: [email protected]
SUBJECT: Hi, telnet!

This is a second attempt! 
.
250 2.0.0 Ok: queued as 9851E81579
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
$ 

此邮件未送达,我在 postfix 日志中找到以下内容:

Jul  4 16:02:58 someHostname postfix/smtp[24898]: connect to ASPMX.L.GOOGLE.com[2607:f8b0:400c:c03::1b]:25: Network is unreachable
Jul  4 16:02:58 someHostname postfix/smtp[24898]: 935BC81579: to=<[email protected]>, orig_to=<[email protected]>, relay=ASPMX.L.GOOGLE.com[173.194.75.26]:25, delay=15, delays=15/0.02/0.08/0.15, dsn=2.0.0, status=sent (250 2.0.0 OK 1372953778 d3si1064427vck.0 - gsmtp)

看起来 Google 收到了邮件,但决定(可能是由于 SPF)不发送它。它也不在我的垃圾邮件文件夹中!最后,我尝试简单地从一个不相关的 Hotmail 帐户向该域发送电子邮件。这封电子邮件也未送达,但 Postfix 日志中没有任何内容。

为了完整起见,这里是经过匿名化处理的 MX 记录:

$ dig mx someDomain.com
someDomain.com.        1800    IN      MX      10 mail.someDomain.com.

$ dig a mail.someDomain.com
mail.someDomain.   1790    IN      A       x.x.x.x

我可以确认这x.x.x.x实际上是服务器的正确 IP 地址,并且与我使用 telnet 访问的地址相同。

为什么来自合法邮箱账户(如hotmail账户)的邮件无法投递到该[email protected]账户?

ubuntu
  • 2 个回答
  • 238 Views
Martin Hope
dotancohen
Asked: 2013-07-03 22:43:12 +0800 CST

子域上的 SSL

  • 0

我正在尝试配置通配符 SSL 证书以服务于子域以及服务器的主域。为了使 SSL 证书正常工作,我似乎必须这样定义主站点的可用站点文件:

<VirtualHost *:443>

当我尝试使用时<VirtualHost someSite.com:443>,Firefox 会抱怨:

An error occurred during a connection to www.someSite.com.

SSL received a record that exceeded the maximum permissible length.
(Error code: ssl_error_rx_record_too_long)
The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.

谷歌浏览器不太具体:

SSL connection error

我可以改变什么,<VirtualHost *:443>以便我可以将 sub.someSite.com 作为具有 SSL 的不同虚拟主机提供服务?

这是在带有 Apache 2.2.22 和 Godaddy SSL 证书的 Ubuntu Server 12.04 LTS(3.2 内核)上。

编辑: : 这是域的 Apache 站点启用文件。

<IfModule mod_ssl.c>
#<VirtualHost *:443>           # With this line, the site serves fine
<VirtualHost someSite.com:443> # With this line, browsers throw the error
        DocumentRoot /var/www/someSite/public_html

        ServerName someSite.com
        ServerAlias www.someSite.com

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/someSite/public_html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

        SSLEngine on
        SSLCertificateFile    /etc/apache2/ssl/someSite.com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/someSite.key

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>

        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>
apache-2.2
  • 1 个回答
  • 414 Views
Martin Hope
dotancohen
Asked: 2013-06-17 02:35:56 +0800 CST

无法通过 SSH 获取 .bashrc

  • -1

通过 SSH 登录到我的工作站,我注意到我的别名都不起作用。果然:

$ alias
$ source ~/.bashrc
Could not open a connection to your authentication agent.

所以我用谷歌搜索了错误消息,但我能找到的所有信息都与 Cygwin 或 Putty 用户登录到他们的 Linux 机器有关。就我而言,我从一台 Linux 机器 (Kubuntu 12.10) 登录到另一台 (Kubuntu 13.04)。另外,我实际上可以登录并运行命令。我只是找不到来源~/.bashrc!

我在这里而不是在unix.SE上问,因为这似乎更像是一个“正确连接到远程机器”的问题,这与服务器非常相关。根据帮助中心,这似乎是切题的。如果 mods 觉得 unix.SE 更合适,那么我可以毫无问题地将问题移到那里。

请注意,我尝试获取源代码是因为我怀疑由于未在 SSH 登录时读取~/.bashrc别名而未定义别名。.bashrc

ssh
  • 2 个回答
  • 478 Views
Martin Hope
dotancohen
Asked: 2013-04-19 22:35:46 +0800 CST

是什么导致了这些冲洗过程?

  • 7

这些flush过程是什么?

$ ps aux | grep flush
root       710  0.0  0.0      0     0 ?        S     2012   2:29 [flush-202:1]
root     10732  6.2  0.0      0     0 ?        S    Apr14 453:33 [flush-202:80]
ubuntu   24009  0.0  0.0   8080   900 pts/3    S+   06:26   0:00 grep --color=auto flush

我注意到这个flush-202:80过程经常跳到top. 这是在运行 Apache、MySQL 和 Solr 进程的 Ubuntu Server 12.04 上。谷歌搜索这个主题,我发现了另一篇 SF 帖子,其中提到这些进程永远不应该消耗太多 CPU。该帖子中提出的解决方案提到重新启动系统,这正是我top首先开始探索并发现进程的方式:系统不会重新启动。

ubuntu
  • 1 个回答
  • 8084 Views
Martin Hope
dotancohen
Asked: 2013-04-15 20:45:47 +0800 CST

如何确保我启动的类型实例与我的保留实例兼容?

  • 2

Amazon EC2 允许用户保留 EC2 实例。当 Reserved Instance 创建时,它仅对特定实例类型(即m1.Medium)和区域(即us-east-1d)的实例有效。我如何确定在启动新实例时选择了正确的类型和区域以便使用预留实例?

请注意,我确实发现了一个类似的问题,但似乎该问题是在询问(事实上,答案很合适)如何确保已经运行的实例正在使用预留实例。我的问题是如何启动一个新实例,以便我可以确定它将使用预留实例。有许多实例类型可供选择,名称相似(m1.Medium、m2.Medium、m2.Micro),还有许多容易混淆的“子区域”(us-east-1b、us-east-1c、美国东部 1d)。最多用户必须打开两个窗口,以便他可以仔细比较可用的预留实例与启动实例屏幕上的选项。

amazon-ec2
  • 1 个回答
  • 103 Views
Martin Hope
dotancohen
Asked: 2012-09-03 09:59:18 +0800 CST

root 拥有的新用户目录

  • 0

在运行 Plesk 的 CentOS 服务器上,会为每个新域添加新用户。用户的主目录位于/var/www/vhosts/. 新用户的主目录归 root 所有,需要有一个具有 root 访问权限的管理员进来,然后chown他们:

dotan@sh2:~$ echo $HOME
/var/www/vhosts/someDomain.com
dotan@sh2:~$ pwd
/var/www/vhosts/someDomain.com
dotan@sh2:~$ touch testFile
touch: cannot touch `testFile': Permission denied
dotan@sh2:~$ ls -la ../ | grep someDomain
drwxr-xr-x 13 root root 4096 2012-08-07 19:47 someDomain.com
dotan@sh2:~$ whoami
dotan
dotan@sh2:~$ chown dotan /var/www/vhosts/someDomain.com
chown: changing ownership of `/var/www/vhosts/someDomain.com': Operation not permitted
dotan@sh2:~$ 

为什么新用户的目录可能归 root 所有,我们如何解决这个问题?

谢谢。

centos
  • 1 个回答
  • 270 Views
Martin Hope
dotancohen
Asked: 2012-08-20 07:06:52 +0800 CST

如何只允许 PHP 传出连接到特定服务器?

  • 0

在运行相当新的 Apache 和 PHP 5.2 的基于 Red Hat 的主机上,我们使用solr-php-client库连接到外部 Solr 服务器。此库需要启用PHP 指令allow_url_fopen 。因此,我想通过 iptables 禁用传出 PHP 连接,而不是连接到必要的服务器。

谷歌搜索适当的 iptables 规则会导致许多错误的路径。什么规则允许 PHP 通过 CURL 或 fopen() 连接到特定服务器,但不允许其他服务器?

谢谢你。

apache-2.2
  • 2 个回答
  • 2260 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve