usuario una todos tiene tabla qué permite permisos los dar comando carpeta cambiar archivos archivo php file-permissions

php - una - tabla de permisos linux



Verificar permisos de archivos (5)

¿Qué quieres hacer al verificar los permisos de los archivos?

Al escribir código seguro, casi siempre es incorrecto "verificar, luego hacer" cualquier cosa. La razón es que, entre la comprobación de si puede hacer algo y realmente hacerlo, el estado del sistema podría cambiar de tal forma que hacerlo tendría un resultado diferente.

Por ejemplo, si comprueba si un archivo existe antes de escribir uno, no verifique si escribió el archivo correctamente (o si no lo hace con suficiente detalle) y luego dependa del contenido del archivo que escribió , en realidad podría estar leyendo un archivo escrito por un atacante.

Por lo tanto, en lugar de verificar los permisos de archivos, simplemente haz lo que sea que ibas a hacer si la verificación de permisos se realiza correctamente y maneja los errores correctamente.

¿Cómo puedo verificar file permissions , sin tener que ejecutar el comando específico del sistema operativo a través de passthru() o exec() ?



Use la función fileperms ()

clearstatcache(); echo substr(sprintf(''%o'', fileperms(''/etc/passwd'')), -4);


Use la función fileperms () y la subcadena:

substr(decoct(fileperms(__DIR__)), -4); // 0777 substr(decoct(fileperms(__DIR__)), -3); // 777

Para el archivo:

substr(decoct(fileperms(__FILE__)), -4); // 0644 substr(decoct(fileperms(__FILE__)), -3); // 644

Reemplaza __FILE__ y __DIR__ con tu ruta o variable


Los codificadores reales usan operaciones bit a bit, no cadenas;) Esta es una manera mucho más elegante de manejar permisos:

function checkPerms($path) { clearstatcache(null, $path); return decoct( fileperms($path) & 0777 ); }