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á umask
de forma predeterminada. Si está ejecutando tar(1)
como root
, puede dar --no-same-permissions
la 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 022
con tu ~/.bashrc
, ~/.bash_profile
o ~/.profile
. (Consulte bash(1)
la página de manual para obtener detalles completos sobre los archivos de inicio. Es complicado).
Los detalles sobre umask
se 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-posix
instalada).
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, chmod
puede usarlo para configurar los permisos de ejecución solo en directorios. es decir
chmod -R ugo+X .
Respuesta4
encontrar . -tipo f -exec chmod 644 {} \;