Crear archivo en carpeta: permiso denegado

38

Tengo un problema al copiar archivos a un directorio en Ubuntu 12.04. Creo un directorio en el directorio de inicio para que la ruta a la que quiero copiar sea:

/home/sixven/camp_sms/inputs

Pero cuando ini ejecuta el siguiente comando en la terminal para crear un archivo de muestra de la siguiente manera:

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

No puedo copiar archivos directamente en ese directorio. ¿Cómo puedo asignar permisos con los comandos chown& chmodpara copiar los archivos?

No sé qué usuario y grupo usar.

franvergara66
fuente
¿Cómo creaste el directorio? ¿Por qué está adentro /home/sixven? ¿Por qué no está en su directorio de inicio?
terdon
2
Por lo que ha copiado y pegado, está ejecutando touch como usuario francisco-vergara, pero su directorio está en ¿ /home/sixvenes realmente el hogar del usuario francisco-vergerao pertenece a un sixvenusuario? Debes aclarar qué quieres hacer exactamente. Escribir en la casa de otro usuario? ¿Compartir ese directorio entre un grupo?
Leiaz

Respuestas:

54

En primer lugar, debe saber que el permiso predeterminado de los directorios en Ubuntu es 644, lo que significa que no puede crear un archivo en un directorio que no es el propietario.

está intentando user:francisco-vergaracrear un archivo en un directorio /home/sixven/camp_sms/inputspropiedad de user:sixven.

Entonces, ¿cómo resolver esto?

  1. Puede cambiar el permiso del directorio y permitir que otros creen archivos dentro.

    sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    Este comando cambiará el permiso del directorio de forma recursiva y permitirá a todos los demás usuarios crear / modificar y eliminar archivos y directorios dentro.

  2. Puede cambiar el propietario del barco de este directorio y hacer user:francisco-vergaraque sea el propietario

    sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    Pero así user:sixvenno puede volver a escribir en esta carpeta y, por lo tanto, puede moverse en un bucle infinito circular.

Así que te aconsejo que uses la Opción 1

O si ambos usuarios acceden a este directorio, puede hacer el siguiente truco:

cambiar la propiedad del directorio a user:francisco-vergaray mantener el propietario del grupo group:sixven.

sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

De esta manera, ambos usuarios aún pueden usar el directorio.

Pero como te dije antes, es más fácil y más eficiente usar la opción 1.

Maythux
fuente
11
Resucitando esto para decir: casi nunca deberías 'chmod -R 777' nada. Establecer la propiedad correctamente es una práctica mucho más segura. digitalocean.com/community/tutorials/… askubuntu.com/questions/20105/…
Douglas Adams
12

Para cambiar la propiedad del archivo, haga esto como root:

chown -R user:user /home/sixven

Si decides seguir el camino chmod:

Si sabe que el usuario es parte del grupo del archivo

chmod -R g+rw /home/sixven

De otra manera:

chmod -R o+rw /home/sixven

Pero este camino no es demasiado seguro.

Ghassan
fuente
Funciona como un encanto
Faris Rayhan
1

El UMASK 022 predeterminado (en Ubuntu), por lo que los permisos para / home / username se convierten en 755. e inició sesión como usuario francisco-vergarae intentó crear archivos en el usuario sixyen Home: es decir /home/sixven. no tiene permiso de escritura para Otros usuarios Solo el usuario / grupo de sixventiene acceso de escritura.

si desea acceso de escritura en ese directorio, entonces debe ser parte del Grupo sixvenusando usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven(no use es una mala práctica).

Rahul Patil
fuente
¿No estás apurando un poco las cosas? Todavía no sabemos la situación del OP.
Guntbert