运行 bower 时出现以下错误:
bower ESUDO Cannot be run with sudo
Run Code Online (Sandbox Code Playgroud)
问题是,我没有用 sudo 运行 bower。我运行的命令是:
bower install foo
Run Code Online (Sandbox Code Playgroud)
或者
bower search cats
Run Code Online (Sandbox Code Playgroud)
我以 root 身份登录到 Ubuntu 12.04 服务器,但我没有使用 sudo。是什么赋予了?我如何让凉亭工作?
有人第二次在我帮助运行的网站上添加了一大块 javascript。这个javascript劫持了谷歌的adsense,插入自己的账号,到处贴广告。
代码总是被附加,总是在一个特定的目录中(一个由第三方广告程序使用),影响这个广告目录(20个左右)内的许多目录中的许多文件,并在一夜之间以大致相同的方式插入时间。该 Adsense 帐户属于一个中国网站(位于离我下个月要去中国的地方不到一小时路程的一个小镇。也许我应该去爆头...开玩笑,有点),顺便说一句...这里的信息网站:http : //serversiders.com/fhr.com.cn
那么,他们如何将文本附加到这些文件中呢?是否与对文件设置的权限有关(范围从 755 到 644)?对于网络服务器用户(它在 MediaTemple 上,所以它应该是安全的,是吗?)?我的意思是,如果你有一个权限设置为 777 的文件,我仍然不能随意向它添加代码......他们怎么会这样做?
这是一个实际代码示例,供您观看(正如您所看到的......没什么。真正的技巧是他们如何获得它):
<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Run Code Online (Sandbox Code Playgroud)
由于很多人都提到过它,这里是我检查过的(检查我的意思是我环顾了文件被修改的时间是否有任何奇怪之处,并且我为 POST 语句和目录遍历查找了文件:
*更新:**好的,解决了。来自中国的黑客在我们的网站上放置了一个文件,允许他们执行各种管理操作(数据库访问、删除和创建文件和目录,您可以命名,他们有权访问)。我们很幸运,他们没有做更具破坏性的事情。正常的 apache 日志文件中没有任何内容,但我在 Web 服务器日志分析器中发现了一组不同的日志文件,并且证据就在那里。他们使用自己的管理员用户名和密码访问这个文件,然后在服务器上编辑他们需要的任何内容。他们的文件将“apache”设置为用户,而我们网站上的所有其他文件都有不同的用户名。现在我需要弄清楚他们是如何将这个文件物理地放到我们的系统上的。我怀疑这最终会归咎于我们的网络主机(Media Temple),
我们的 MySQL 日志在重新启动时显示了关于 2 个没有密码的 root 用户的警告。
我进入 MySQL 并检查了所有用户:
mysql> select * from mysql.user;
Run Code Online (Sandbox Code Playgroud)
并看到:
Host | User | Password
localhost root *76685yt868itetc
web12-b0 root
127.0.0.1 root
Run Code Online (Sandbox Code Playgroud)
首先,为什么有 3 个 root 用户(因为我们有 localhost,所以我们需要 127.0.0.1)?
其次,为什么其中两个没有设置密码?
第三,web12-b0 和 127.0.0.1 主机是否具有完全的 root 访问权限而无需使用密码(如其所示)?
第四,这有什么正当理由还是我应该建议管理员将密码放在这两台主机上?
感谢您的回答。
在我的错误日志中,我看到:
server reached MaxClients setting, consider raising the MaxClients setting
Run Code Online (Sandbox Code Playgroud)
我的 MaxClients 设置是 150。但是,当我计算出似乎是最佳 MaxClients 设置时,我想出了:
Mem used by 1 Apache process = 16
Mem available to Apache = 197
MaxClients = 12 (197/16)
Run Code Online (Sandbox Code Playgroud)
那么我应该将 MaxClients 降低到 12,因为我的计算表明这是我可用的所有 RAM 还是我应该按照错误日志的建议提高限制(或者我的计算是否毫无价值,因为我误解了一些东西)?
访问以下所有内容会将您带到登录屏幕:
http://mysite.com/admin/configuration.php
http://mysite.com/admin/login.php
Run Code Online (Sandbox Code Playgroud)
但是,如果您访问(注意 url 字符串的最后两部分都是 .php):
http://mysite.com/admin/configuration.php/login.php
Run Code Online (Sandbox Code Playgroud)
您可以看到配置屏幕及其所有数据!
此外,如果您附加一些 GET 变量,您甚至可以获得可编辑的字段:
http://mysite.com/admin/configuration.php/login.php?cID=1&action=edit
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
我应该注意,这是在网站上使用称为 oscommerce 的绝对可怕的购物车。代码是处理的噩梦,但我现在坚持使用它。
基于以下 vstm 出色而准确的评论的修复:
这将在检查之前进行$current_page != FILENAME_LOGIN(大约在 /admin/includes/application_top.php 中的第 141-143 行)。请注意,这只是一个紧急补丁,因为真正的解决方案是永远不要使用 oscommerce,因为它就像妓女的腰带一样安全。
//$current_page = basename($PHP_SELF); //this is the default
$current_page = basename($_SERVER['SCRIPT_NAME']); //change that default to this
if ( ($current_page == FILENAME_LOGIN) && !tep_session_is_registered('redirect_origin') ) {
$current_page = FILENAME_DEFAULT;
$HTTP_GET_VARS = array();
}
Run Code Online (Sandbox Code Playgroud)
如果有人尝试这样做,请不要忘记redirect_origin可能已经设置了会话变量,因此这似乎不起作用。只需取消设置并重试。
我有一个标准的 Ubuntu 安装。Apache Web 根目录是 /var/www。
我想托管我的“主要”站点和其他一些站点。
通常我会将 mysite.com 的文件放在 Web 根目录中。但是,如果我想托管多个看起来可能会变得混乱的站点。看起来我最终会得到一个类似的结构:
我的“主”站点的文件:
/var/www/index.html
/var/www/images/
/var/www/js/
Run Code Online (Sandbox Code Playgroud)
等等...
然后我的虚拟网站如:
/var/www/somesite/ #somesite's files in here
/var/www/foobar/ #foobar's files in here
Run Code Online (Sandbox Code Playgroud)
我应该如何组织这样的设置?将主站点的文件与虚拟主机站点的目录混合似乎是错误和混乱的。我想将我的“主”站点放在 webroot 中它自己的目录中(例如上面的“somesite”和“foobar”),但是访问我的 IP 地址的人将获得 web 根目录,其中没有任何站点文件。我应该这样做,然后将任何内容重定向到主 IP 到“主”站点的目录?也许用htaccess?也许在某个地方的 apache 配置中?
你会如何处理这个问题?
我最终做了什么(感谢下面的建议,所有这些都是有帮助的)...
这是配置文件 ( /etc/apache2/sites-enabled/default) 最初的内容:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
通过将其更改为:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot …Run Code Online (Sandbox Code Playgroud) 我在我的邮件日志中发现了一大堆(在我的网站因过度使用资源而关闭之后):
Dec 3 05:24:23 mysite qmail-queue-handlers[24524]: from=anonymous@mysite.com
Dec 3 05:24:23 mysite qmail-queue-handlers[24524]: to=travelforu@mail.ru
Dec 3 05:24:23 mysite qmail-queue-handlers[24524]: hook_dir = '/var/qmail//handlers/before-queue'
Dec 3 05:24:23 mysite qmail-queue-handlers[24524]: recipient[3] = 'travelforu@mail.ru'
Dec 3 05:24:23 mysite qmail-queue-handlers[24524]: handlers dir = '/var/qmail//handlers/before-queue/recipient/travelforu@mail.ru'
Dec 3 05:24:23 mysite qmail-queue-handlers[24524]: starter: submitter[24525] exited normally
Run Code Online (Sandbox Code Playgroud)
看起来有人在使用我的系统发送垃圾邮件。你们怎么想,你会如何追踪他们的入口点和/或阻止他们?
为什么这个 cron 作业会随着时间的推移重复执行,我该怎么做才能阻止它?
我有一个应该在每天早上 4 点运行的 cron 工作。它击中了一个 php 脚本,该脚本执行一些日常数据分析,并在正常情况下运行一次(大约需要 2-3 分钟才能完成)并退出。它一直在工作,但最近它在服务器崩溃的时候运行得很糟糕。我调查并发现了以下内容。crontab 条目如下所示:
* 4 * * * /usr/bin/wget -q -O /dev/null 'http://123.456.78.90/index/thing?param=1'
Run Code Online (Sandbox Code Playgroud)
在我的日志文件中,我看到:
123.456.78.90 - - [28/Nov/2012:04:00:01 -0800] "GET /index/thing?param=1 HTTP/1.0" 200 4181 "-" "Wget/1.12 (linux-gnu)"
123.456.78.90 - - [28/Nov/2012:04:01:01 -0800] "GET /index/thing?param=1 HTTP/1.0" 200 4181 "-" "Wget/1.12 (linux-gnu)"
123.456.78.90 - - [28/Nov/2012:04:02:01 -0800] "GET /index/thing?param=1 HTTP/1.0" 200 4181 "-" "Wget/1.12 (linux-gnu)"
// and then later it ends with (note that it isn't trying every minute now)
123.456.78.90 - …Run Code Online (Sandbox Code Playgroud) apache-2.2 ×3
security ×3
hacking ×2
php ×2
cron ×1
email ×1
email-server ×1
httpd.conf ×1
mysql ×1
spam ×1
ubuntu ×1
virtualhost ×1
wget ×1