Linux 技术手札

找出属于个别帐号档案并 chown

今天将一台 CentOS 6 服务器内所有网站,輚移到另一台 CentOS 7,转移过程连同档案权限, owner 及 group 都一同复制,测试后发现多数网站都运作正常,唯独有用 PHP 建立的档案及目录便有写入失则的问题。

查看了档案的权限是正确的,但用 “ls -l” 查看那些出问题的档案及目录,看到 owner 不是显示 “apache”, 而是显示 “80”, 原来 CentOS 6 时 Apache 帐号的 uid 是 80, 在 CentOS 7 用 YUM 安装的 Apache 所使用的 “apache” 帐号,uid 是 48, 所以便会有写入失败的情况,解法方法是将所有原本 owner 是 uid 80 的档案改为 owner 是 apahce, 指令是:

# find /var/www/ -uid 80 -exec chown apache.apache {} \;

以上指令会在 /var/www/ 目录下,找出所有档案/目录的 uid 是的 80, 并改变 owner 及 group 为 apache。执行以上指令后原来有问题的地方便可以运作正常了。

而另一个情况是想属于指定帐号的档案及目录,改变 owner 为另一个帐号,只要将上面的 -uid 改为 -user, 便可以直接用帐号名称搜索,可以将指令改成这样:

# find /var/www/ -user old-user -exec chown new-user:new-group {} \;
Exit mobile version