在 sudo su 与 sudo 之间踩了一次坑

问题场景

发布 wordpress 代码,服务器是 root 用户创建的 docker 运行时环境。像以往一样,将只有一行代码变更的 commit 发布上去。

第一步,$ cd /var/www/site/ 到官网目录下。
第二步,$ sudo su 切换到 root permission shell 准备各种操作。
第二步,# git fetch -p && git merge --ff-only origin/master 来发布代码
第三步,刷新官网页面…..
第四步,卡脸啦!!!!居然页面都空了!!!!

代码变更如下:

diff --git a/wp-content/themes/startupkit/functions.php b/wp-content/themes/startupkit/functions.php
index 2db0b27..90e1ed3 100644
--- a/wp-content/themes/startupkit/functions.php
+++ b/wp-content/themes/startupkit/functions.php
@@ -417,7 +417,7 @@ function twentyseventeen_scripts() {
        wp_enqueue_style( 'twentyseventeen-fonts', twentyseventeen_fonts_url(), array(), null );

        // Theme stylesheet.
-       wp_enqueue_style( 'twentyseventeen-style', get_stylesheet_uri() );
+       wp_enqueue_style( 'twentyseventeen-style', get_stylesheet_uri(), array(), filemtime(get_template_directory().'/style.css') );

        // Load the dark colorscheme.
        if ( 'dark' === get_theme_mod( 'colorscheme', 'light' ) || is_customize_preview() ) {

问题定位

后来一顿检查和定位,从前端页面到Nginx、到代码内容,语法也对(毕竟也是测过的)。就算恢复上一个 commit,也是同样到问题。有某个脚本失效了!

赶紧 ls -lt 看了一下 functions.php 变更文件到权限。天呐!权限居然是 640,其他文件都是 644

问题解决

赶紧敲键盘 sudo chmod 0644 functions.php,再刷新页面,问题解决。

问题根源

sudo su 方式,创建了一个文件 test-sudo-su
在用 sudo 方式,创建了另外一个文件 test-sudo

对比一下:

-rw-r----- 1 root      root             0 Jan  9 21:10 test-sudo-su
-rw-r--r-- 1 root      root             0 Jan  9 21:10 test-sudo

好吧,我了解了。除非服务的进程用户组和操作人员的用户组都是同一个,否则这个文件根本读不出来 sudo su 的内容。

我的问题来了

我的问题来了:谁能告诉我为什么?正常情况下不应该是 644 吗?什么样的服务器配置能得到这个结论?

这是我服务器的版本信息:

wordpress@website-1:~$ uname -a
Linux website-1 4.4.0-82-generic #105-Ubuntu SMP Tue Jun 20 15:23:02 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值