Extraiga archivos y carpetas con permisos específicos

Extraiga archivos y carpetas con permisos específicos

Empaqueto una carpeta con muchas subcarpetas y archivos en Windows con 7zip, la subo a VPS y luego ejecuto el comando:

tar -xvzf file.tar.gz

entonces todos los archivos y carpetas descomprimidos tienen permisos de 777. ¿Cómo consigo que las carpetas tengan permisos de 755 y los archivos 644?

Respuesta1

Si está ejecutando tar(1)como usuario normal, se aplicará umaskde forma predeterminada. Si está ejecutando tar(1)como root, puede dar --no-same-permissionsla opción de línea de comando para solicitar tar(1)que se respete el archivo umask.

Entonces: ejecuta esto como un usuario normal:

umask 022
tar zxvf file.tar.gz

o ejecute esto como root:

umask 022
tar zxvf file.tar.gz --no-same-permissions

Es posible que quieras seguir umask 022con tu ~/.bashrc, ~/.bash_profileo ~/.profile. (Consulte bash(1)la página de manual para obtener detalles completos sobre los archivos de inicio. Es complicado).

Los detalles sobre umaskse pueden encontrar en la página de manual de su shell, la umask(2)página de manual de llamada al sistema o la umask(1posix)página de manual de la utilidad proporcionada por POSIX (si la tiene manpages-posixinstalada).

Respuesta2

Ejecute los siguientes comandos en la raíz del directorio para configurar los permisos deseados para sus directorios y archivos:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Tenga en cuenta el espacio entre la llave de cierre y la barra invertida

Respuesta3

Si usa X mayúscula, chmodpuede usarlo para configurar los permisos de ejecución solo en directorios. es decir

chmod -R ugo+X .

Respuesta4

encontrar . -tipo f -exec chmod 644 {} \;

información relacionada