usuario usa una todos siguientes propietario propiedad permisos para los especifico dar cuál comandos carpetas carpeta cambiar archivos archivo linux chmod mkdir

usa - permisos linux 777



Cómo crear un directorio y dar permiso en un solo comando (6)

De acuerdo con la página man de mkdir ...

mkdir -m 777 dirname

¿Cómo crear un directorio y dar permiso en un solo comando en Linux?

Tengo que crear muchas carpetas con el permiso completo 777 .

Comandos

mkdir path/foldername chmod 777 path/foldername

No me gusta crear y dar permiso en dos comandos. ¿Puedo hacer esto en un solo comando?


IMO, es mejor usar el comando de install en tales situaciones. Intentaba hacer que systemd-journald persistiera en todos los reinicios.

install -d -g systemd-journal -m 2755 -v /var/log/journal


Puede escribir un script de shell simple, por ejemplo:

#!/bin/bash mkdir "$1" chmod 777 "$1"

Una vez guardado, y el indicador ejecutable habilitado, puede ejecutarlo en lugar de mkdir y chmod:

./scriptname path/foldername

Sin embargo, la respuesta de Alex es mucho mejor porque genera un proceso en lugar de tres. No sabía sobre la opción -m .


Solo para ampliar y mejorar algunas de las respuestas anteriores:

Primero, verifico la página man de mkdir para GNU Coreutils 8.26 - nos da esta información sobre la opción ''-m'' y ''-p'' (también se puede dar como --mode = MODE y --parents, respectivamente )

... establecer [s] modo de archivo (como en chmod), no a = rwx - umask

... no hay error si existe, crea directorios principales según sea necesario

Las declaraciones son vagas y poco claras en mi opinión. Pero, básicamente, dice que puedes hacer el directorio con permisos especificados por "notación numérica chmod" (octals) o puedes ir "al revés" y usar a / u umask.

Nota al margen: digo "al revés", ya que el valor de umask es exactamente lo que parece: una máscara , que oculta / elimina permisos en lugar de "otorgarlos" como con la notación octal numérica de chmod.

Puede ejecutar umask con el comando shell-built para ver cuál es su umask de 3 dígitos; para mí, es 022 . Esto significa que cuando ejecuto mkdir yodirectory en una carpeta determinada (por ejemplo, mahome) y lo stat , obtengo una salida que se parece a esto:

755 richard:richard /mahome/yodirectory # permissions user:group what I just made (yodirectory), # (owner,group,others--in that order) where I made it (i.e. in mahome) #

Ahora, para agregar solo un poquito más sobre esos permisos octales. Cuando crea un directorio, "su sistema" toma su directorio predeterminado perms ''[que se aplica a los nuevos directorios (su valor debe ser 777)] y aplica bofetadas en su (u) máscara, efectivamente ocultando algunas de esas permanentes''. Mi umask es 022 - ahora si "restamos" 022 de 777 (restar técnicamente es una sobreimplicación y no siempre es correcto) en realidad estamos desactivando permanentes o enmascarándolos ) ... obtenemos 755 como se dijo (o "statted") ) antes.

Podemos omitir el ''0'' delante de los octalles de 3 dígitos (para que no tengan que ser 4 dígitos) ya que en nuestro caso no quisimos (o más bien no mencionamos) ningún stickybits, setuids o setgids (es posible que desee examinar esos, por cierto, podrían ser útiles ya que va a 777). Entonces, en otras palabras, 0777 implica (o es equivalente a) 777 (pero 777 no es necesariamente equivalente a 0777, ya que 777 solo especifica los permisos, no los setúidos, setgids, etc.)

Ahora, para aplicar esto a su pregunta en un sentido más amplio, ya tiene (ya) algunas opciones. Todas las respuestas anteriores funcionan (al menos según mis coreutils). Pero puede (o es muy probable que) tenga problemas con las soluciones anteriores cuando desee crear subdirectorios (directorios anidados) con 777 permisos a la vez. Específicamente, si hago lo siguiente en mahome con una umask de 022:

mkdir -m 777 -p yodirectory/yostuff/mastuffinyostuff # OR (you can swap 777 for 0777 if you so desire, outcome will be the same) install -d -m 777 -p yodirectory/yostuff/mastuffinyostuff

yodirectory perms 755 para el yodirectory y el yostuff , con solo 777 perms para el mastuffinyostuff . Así que parece que el umask es todo lo que se ha abofeteado en el yodirectory y el yostuff ... para evitar esto podemos usar una subshell:

( umask 000 && mkdir -p yodirectory/yostuff/mastuffinyostuff )

y eso es. 777 perms for yostuff, mastuffinyostuff, y yodirectory.


puede usar el siguiente comando para crear un directorio y otorgar permisos al mismo tiempo

mkdir -m777 path/foldername


install -d -m 0777 /your/dir

debería darte lo que quieres Tenga en cuenta que cada usuario tiene derecho a escribir agregar y eliminar archivos en ese directorio.