Cómo establecer permisos de archivo con comando táctil

16

Parece que cada vez que creo un archivo con touchlos permisos se establecen en: -rw-r - r-- .

¿Hay alguna manera de configurar los permisos con touch o tengo que hacerlo después con un comando diferente?

chackerian
fuente

Respuestas:

27

Puede modificar su umaskpara permitir (para la mayoría de las implementaciones) más privilegios de lectura / escritura, pero no ejecutables, ya que generalmente los permisos solicitados son 0666.

Si umaskes así 022, verá touchhacer un 0644archivo.

Curiosamente, POSIX describe este comportamiento en términos de creat:

  1. Si el archivo no existe:

    La función creat () se llama con los siguientes argumentos:

    • El operando del archivo se utiliza como argumento de ruta.

    • El valor del bit a bit incluido OR de S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTH, y S_IWOTHse utiliza como el argumento de modo.

y es solo siguiendo los enlaces para creat, luego a open, notar la mención de umasky retroceder a open(y creat) para verificar que umaskse supone que afectatouch .

Para umaskafectar solo el touchcomando, use una subshell:

(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask

(tenga en cuenta que, en cualquier caso, si el archivo existía de antemano, touchno cambiará sus permisos, solo actualice sus marcas de tiempo).

Thomas Dickey
fuente
2

Puedes manipular el umask. Por lo general, está configurado para lo 022que significa que cuando un usuario crea un archivo, obtendrá permiso para 0644que pueda manipularlo umasksegún sus necesidades.

TarunSinghal
fuente