Usuario de Linux y permisos de usuario de apache bajo Linux

  

Originalmente no estudiaba el sistema Linux, debido a las necesidades del espacio del foro, la compra de VPS extranjeros, el sistema LINUX instalado. Cuando obtuve la cuenta de fondo, me desmayé por completo. Lo que está en blanco, no hay sistema, no hay servidor HTTP, es un "Disco Duro de Red" desnudo. Afortunadamente, hay tíos Baidu, por lo que puedo "regar en la luna", un giro, no lo compruebe, no sé, el uso original de estos materiales VPS extraños también es muy pobre. . . Me las arreglé para aprender SSH y me costó un montón instalar el panel kloxo. Esto finalmente es bueno, hay HTTP y FTP también está disponible. . . Después de pasar la información, encontré que el problema del permiso es muy serio. "Nombre de usuario", "Grupo de usuarios" y, más que eso, "propietario", use el comando chown para cambiar "propietario", casi Mareado . Finalmente, deje correr el foro, y el problema no tardó mucho en volver. No sé qué está pasando, el archivo FTP no se puede mostrar y no se puede mostrar en el panel de kloxo. A veces no se puede iniciar sesión. . . El tío Baidu tampoco encontró ninguna información disponible, ¡se estima que encontré este problema! En cuanto al tema de los permisos de FTP, lo he pensado durante mucho tiempo. Se estima que existe un problema con los permisos del usuario de FTP y del propietario del directorio. La función de administración de usuarios de FTP en el panel kloxo es demasiado simple, y no sirve para cambiarla. Tengo que verificar los comandos relevantes. Huang Tian da sus frutos, finalmente, permítame encontrar el comando de administración de modo usuario de FTP: sudo useradd -g apache -d /dev /null -s /bin /false ftpadmin primero crea un usuario ftpadmin, que pertenece a los resultados del grupo de usuarios de apache Aparece el siguiente contenido: Creando un archivo de buzón: Existe un archivo useradd: advertencia: el directorio de inicio ya existe. No se está copiando ningún archivo desde el directorio de skel. Se estima que el mismo archivo se creó antes, independientemente de este, luego el siguiente código: Sudo pure-pw useradd admin -u ftpadmin -d /home/admin/XXX.com Esto es para crear un administrador de usuario FTP en el programa pure-ftpd y vincularlo al usuario del sistema ftpadmin que se acaba de crear. El directorio de inicio de este usuario FTP es Después de que /home/admin/XXX.com ejecute cada comando, pure-pw le pedirá la contraseña para la cuenta. La cuenta FTP se genera después de ingresar la contraseña dos veces seguidas. Luego, cada vez que modifique la configuración del usuario, debe actualizar la base de datos de usuario virtual. No necesita reiniciar el servicio. Ejecute el siguiente comando: sudo pure-pw mkdb Finalmente, cambie el propietario del directorio raíz del sitio web a ftpadmin, de lo contrario no podrá cargar el archivo FTP. . Chown -R ftpadmin /home/admin/XXX.com ------------

Cuando usamos el programa PHP, después de instalarlo, si desea eliminar todo el directorio, Encontrará que los usuarios de Apache han generado algunos archivos, los usuarios de ftp no pueden eliminar.

De hecho, esta es una solución.

Método 1. Método de control de grupo de usuarios Primero agregue usuarios virtuales (usuarios ftp) en todos los hosts virtuales al grupo de apache, luego configure umask en 002. Los usuarios y grupos tienen derechos de ejecución de lectura y escritura. . Esta es una manera fácil, pero no es segura. Diferentes usuarios pueden eliminar los archivos de la otra parte, ya que son el mismo grupo, el grupo tiene permisos de ejecución de lectura y escritura.

Método 2. Use la ACL de administración avanzada de permisos de Linux.

Establezca un doble permiso para un directorio, además del propio grupo de usuarios del usuario, agregue apache para que lea y escriba los permisos. Este usuario puede eliminar los archivos generados por apache. Pero para los grupos de otros, no El usuario virtual no puede eliminarlo.

Veamos el segundo método de control

Dentro del sistema Linux, no es solo para el propietario, el mismo grupo de usuarios y otros usuarios. Estos tres tipos de personas asignan permisos a un archivo (directorio), también puede especificar otros usuarios o grupos, pero hay una premisa: monte la partición con la opción acl, como: mount /dev /hda1 /home -o acl .

Luego puede usar el comando setfacl -mu: ftp: rwx /home /ftp /www para asignar todos los permisos al directorio /home /ftp /www al usuario ftp

si desea /home /ftp /www /Los directorios y archivos recién creados tienen los mismos permisos. setfacl -d -mu: ftp: rwx /home /ftp /www

Establezca los permisos predeterminados. Este comando también puede implementar varios usuarios. Diferentes controles de permisos, como setfacl -mu: ftp: rwx /home /www; setfacl -mu: tmp: rx /home /www; los usuarios de ftp tienen todos los permisos, los usuarios de tmp tienen permisos de solo lectura.

También puede establecer el valor de la máscara: setfacl -mm :: rwx /home /www;

De esta manera, puede hacer que el usuario del host virtual y el usuario de apache tengan permiso para operar. Los archivos y directorios, como el nombre de usuario de apache es apache, el nombre de usuario del host virtual es vmuser, el directorio es /home /vmuser /www, puede usar el siguiente comando: setfacl -mu: vmuser: rwx /home /vmuser /www; setfacl -mu: apache: rwx /home /vmuser /www; setfacl -d -mu: vmuser: rwx /home /vmuser /www; setfacl -d -mu: apache: rwx /home /vmuser /www; setfacl -mm :: rwx /home /vmuser /www; setfacl -d -mm :: rwx /home /vmuser /www;

De esta manera, al instalar el programa PHP, no se le pedirá que el usuario de apache no tenga permiso. Al escribir un archivo, y desea eliminar un directorio, no se eliminará porque hay archivos generados por el usuario de apache a continuación. Por supuesto, este método es un poco limitado. Básicamente, solo se pueden usar los formatos de partición ext2 y ext3. Otros, como xfs, jfs, etc., no se pueden usar directamente.

Copyright © Conocimiento de Windows All Rights Reserved