setguid
Hay 2 fuerzas aquí en el trabajo. El primero es el bit setgid que está habilitada en la carpeta, folder.
drwxr-s---. user group folder
Ese es el spaquete de caracteres al comienzo de esta línea. Se agrupan así:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
Esto r-ssignifica que cualquier archivo o directorio creado dentro de esta carpeta tendrá el grupo configurado automáticamente en el grupo group.
Eso es lo que causó los archivos foo.txty bar.txtse creó así:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
permisos y umask
Los permisos que estás viendo son otro asunto. Estos se rigen por la configuración de su umask. Puede ver a qué umaskestá configurado con el comando umask:
$ umask
0002
NOTA: estos bits también se denominan bits de "modo".
Es una máscara, por lo que deshabilitará cualquiera de los bits relacionados con los permisos que están habilitados. En este ejemplo, lo único que quiero es los permisos de escritura para otros.
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
La representación de los "bits" en este comando está en forma decimal. Entonces un 2 equivale a 010 en forma binaria, que es el bit de escritura. Un 4 (100) significaría que desea leer deshabilitado. Un 7 (111) significa que desea leer / escribir / ejecutar todo deshabilitado. Construyéndolo desde aquí:
$ umask 007
Deshabilitaría los bits de lectura / escritura / ejecución para otros usuarios.
Entonces, ¿qué pasa con tus archivos?
Bueno, umaskgobierna los permisos que se establecerán cuando se cree un nuevo archivo. Entonces, si tuviéramos el siguiente umaskconjunto:
$ umask 007
Y comenzamos a tocar nuevos archivos, los veríamos creados así:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
Si lo cambiamos por otra cosa, di esto:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Sin embargo, no tendrá ningún impacto en los archivos que ya hemos creado. Mira aquí:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Entonces, ¿qué está pasando con el navegador de archivos?
Esto umaskes lo que yo llamé una configuración "suave". De ninguna manera es absoluto y puede pasarse por alto con bastante facilidad en Unix de varias maneras. Muchas de las herramientas toman interruptores que le permiten especificar los permisos como parte de su operación.
Toma mkdirpor ejemplo:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
Con el -minterruptor podemos anular umask. El touchcomando no tiene esta función, por lo que debe ser creativo. Vea estas preguntas y respuestas de U&L tituladas: ¿Se pueden crear archivos con permisos establecidos en la línea de comando? solo por tales métodos.
¿Otras maneras? Solo anular umask. Lo más probable es que el explorador de archivos haga esto o simplemente ignore por completo umasky coloque el archivo usando los permisos para los que esté configurado.
0002. Si umask establece permisos en lugar de eliminar permisos, el bit de ejecución se establecerá tanto para el usuario como para el grupo cuando lo hagatouch, pero no lo está.touchcomando. Vea el enlace que incluí