为了账号安全,请及时绑定邮箱和手机立即绑定

Wordpress 插件文件夹默认为 777 权限

Wordpress 插件文件夹默认为 777 权限

PHP
繁星淼淼 2022-06-17 16:54:14
环境:Kubernetes version: v1.16.3  OS: CentOS 7  Kernel: Linux k8s02-master01 3.10.0-1062.4.3.el7.x86_64发生了什么:我有一个运行从自定义 Apache/Wordpress 图像构建的容器的 Wordpress 部署。我尝试使用 Wordpress 管理员上传插件,但插件文件夹默认为 777 权限。仅插件文件夹,而不是它们的文件。注意到/var/www/html默认情况下设置为 777,然后我尝试chmod 755 /var/www/html在容器上下文中手动...它有效,新插件文件夹默认为 755,但它不是持久的。尝试在 Dockerfile 中进行 chmod,但它不起作用,/var/www/html仍然默认为 777。当我使用官方 Wordpress 图像而不是我的 Dockerfile 时,同样的问题。是否可以默认/var/www/html为 755 权限?DOCKERFILE (wordpress-test:5.2.4-apache):FROM wordpress:5.2.4-apacheRUN sed -i 's/Listen 80/Listen 8080/g' /etc/apache2/ports.conf;RUN sed -i 's/:80/:8080/g' /etc/apache2/sites-enabled/000-default.conf;RUN sed -i 's/#ServerName www.example.com/ServerName localhost/g' /etc/apache2/sites-enabled/000-default.conf;RUN /bin/bash -c 'ls -la /var/www; chmod 755 /var/www/html; ls -la /var/www'EXPOSE 8080CMD ["apache2-foreground"]DockerFILE 构建日志:Step 8/10 : RUN /bin/bash -c 'ls -la /var/www; chmod 755 /var/www/html; ls -la /var/www'; ---> Running in 7051d46dd9f3total 12drwxr-xr-x 1 root     root     4096 Oct 17 14:22 .drwxr-xr-x 1 root     root     4096 Oct 17 14:22 ..drwxrwxrwx 2 www-data www-data 4096 Oct 17 14:28 htmltotal 12drwxr-xr-x 1 root     root     4096 Oct 17 14:22 .drwxr-xr-x 1 root     root     4096 Oct 17 14:22 ..drwxr-xr-x 2 www-data www-data 4096 Oct 17 14:28 html在容器上下文中检查结果:$ kubectl exec -it <POD_NAME> -n development -- sh(inside the container) $ ls -la /var/wwwtotal 12drwxr-xr-x. 1 root     root     4096 Oct 17 14:22 .drwxr-xr-x  1 root     root     4096 Oct 17 14:22 ..drwxrwxrwx  5 www-data www-data 4096 Dec 17 05:40 html/var/www/html仍然默认为 777。
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

在kubernetes 中,您可以借助initContainers更改已挂载卷的权限。您的部署可能如下所示:


apiVersion: apps/v1

kind: Deployment

metadata:

  name: blog-wordpress

  namespace: development

  labels:

    app: blog


spec:

  selector:

    matchLabels:

      app: blog

      tier: wordpress

  replicas: 4

  strategy:

    type: RollingUpdate

    rollingUpdate:

      maxSurge: 2

      maxUnavailable: 2

  template:

    metadata:

      labels:

        app: blog

        tier: wordpress

    spec:

      volumes:

        - name: blog-wordpress

          persistentVolumeClaim:

            claimName: blog-wordpress

      initContainers:

        - name: permission-fix

          image: busybox

          command: ["/bin/chmod","-R","755", "/var/www/html"]

          volumeMounts:

          - name: blog-wordpress

            mountPath: /var/www/html/wp-content

      containers:

        - name: blog-wordpress

          # image: wordpress:5.2.4-apache

          image: wordpress-test:5.2.4-apache

          securityContext:

            runAsUser: 33

            runAsGroup: 33

            allowPrivilegeEscalation: false

            capabilities:

              add:

                - "NET_ADMIN"

                - "NET_BIND_SERVICE"

                - "SYS_TIME"

          resources:

            requests:

              cpu: "250m"

              memory: "64Mi"

            limits:

              cpu: "500m"

              memory: "128Mi"

          ports:

            - name: liveness-port

              containerPort: 8080

          readinessProbe:

            initialDelaySeconds: 15

            httpGet:

              path: /index.php

              port: 8080

            timeoutSeconds: 15

            periodSeconds: 15

            failureThreshold: 5

          livenessProbe:

            initialDelaySeconds: 10

            httpGet:

              path: /index.php

              port: 8080

            timeoutSeconds: 10

            periodSeconds: 15

            failureThreshold: 5

          env:

            # Database

            - name: WORDPRESS_DB_HOST

              value: blog-mysql

            - name: WORDPRESS_DB_NAME

              value: wordpress

            - name: WORDPRESS_DB_USER

              valueFrom:

                secretKeyRef:

                  name: blog-mysql

                  key: username

            - name: WORDPRESS_DB_PASSWORD

              valueFrom:

                secretKeyRef:

                  name: blog-mysql

                  key: password

            - name: WORDPRESS_TABLE_PREFIX

              value: wp_

            - name: WORDPRESS_AUTH_KEY

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: auth-key

            - name: WORDPRESS_SECURE_AUTH_KEY

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: secure-auth-key

            - name: WORDPRESS_LOGGED_IN_KEY

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: logged-in-key

            - name: WORDPRESS_NONCE_KEY

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: nonce-key

            - name: WORDPRESS_AUTH_SALT

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: auth-salt

            - name: WORDPRESS_SECURE_AUTH_SALT

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: secure-auth-salt

            - name: WORDPRESS_LOGGED_IN_SALT

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: logged-in-salt

            - name: WORDPRESS_NONCE_SALT

              valueFrom:

                secretKeyRef:

                  name: blog-wordpress

                  key: nonce-salt

            - name: WORDPRESS_CONFIG_EXTRA

              value: |

                define('WPLANG', 'fr_FR');

                define('WP_CACHE', false);

                define('WP_MEMORY_LIMIT', '64M');

          volumeMounts:

            - name: blog-wordpress

              mountPath: "/var/www/html/wp-content"

编辑: 但是请记住,您只能更改已安装文件夹的权限,而不是父文件夹/文件夹。因此,在上面的示例中,您可以使用:


command: ["/bin/chmod","-R","755", "/var/www/html"]

但它只会更改/var/www/html/wp-content目录的权限。如果您可以准备好您的卷,使其包含/var/www/html目录并且可以这样安装,您将能够设置其权限。


让我知道它是否有帮助。


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信