¿Puede explicar brevemente los conceptos principales y las herramientas de línea de comandos utilizados para administrar los permisos de archivos?
¿Puede explicar brevemente los conceptos principales y las herramientas de línea de comandos utilizados para administrar los permisos de archivos?
Respuestas:
Cada archivo tiene derechos para tres categorías diferentes:
Los derechos significan el derecho a leer el archivo, el derecho a escribir en el archivo o el derecho a ejecutar el archivo en el caso de un script o programa.
En la CLI, puedes
chown
, p. ej.chown guillermooo
chgrp
, p. ej.chgrp root
chmod
, p. ej. chmod u+w filename.ext
(Agrega permiso de escritura para el propietario del archivo filename.ext
)Si desea obtener más información sobre cada una de estas herramientas, abra un terminal y escriba man [tool]
, por ejemplo man chmod
.
chown guillermooo
no debería ser esto chown guillermooo filename
?
Advertencia: Cambiar los permisos de archivos y directorios es potencialmente dañino y puede hacer que su sistema sea inestimable. Cuando se ejecuta de forma recursiva como root en la ruta incorrecta, podemos llegar a un punto desde el que tendremos que reinstalar Ubuntu. Por lo tanto, es una buena idea no cambiar los permisos fuera de los directorios HOME, y ejecutar los comandos de forma recursiva como root debe evitarse siempre que sea posible.
Ubuntu ha heredado el concepto de permisos de Unix cuando para archivos o directorios hay tres tareas que podemos permitir o denegar:
( Recorrer un directorio significa esencialmente usarlo como parte del nombre de una ruta. Consulte https://unix.stackexchange.com/a/13891 o https://unix.stackexchange.com/questions/21251 para obtener más explicaciones).
Además, tenemos tres casos sobre a quién otorgamos un permiso:
Ahora para obtener la combinación de estos ordenados, usamos un sistema binario donde cada bit define un permiso. Esto se puede mostrar mejor en la siguiente tabla
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
Ahora si queremos por ejemplo
a) el propietario de un archivo (= usuario) tiene r ead, w rito, y e x ecute permiso,
b) Grupo concedió el archivo r ead y e x permisos ecute, y
c) todos los demás sólo deben tener r acceso EAD.
Entonces el permiso de archivo resultante será:
u g o
rwx r-x r--
Para obtener esto en los números octales, por ejemplo. para el chmod
comando o cuando tenemos que entender un mensaje de error, necesitamos completar la tabla anterior de la siguiente manera:
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
Cada número de permiso debe agregarse para resumir para un usuario (4 + 2 + 1 = 7), grupo (4 + 0 + 1 = 5) y otros (4 + 0 + 0 = 4). El número resultante es:
u g o
7 5 4
Ahora tenemos dos opciones para cambiar los bits de permiso con chmod
:
chmod u+rwx g+rx o+r filename
o mucho más simple con
chmod 751 filename
Ambos comandos harán lo mismo.
El permiso predeterminado de un archivo recién creado en nuestro hogar será 664 (-rw-rw-r--).
Si queremos que los archivos sean ejecutables como programas, tendremos que cambiar este permiso.
Tenga en cuenta que también tendremos que cambiar el permiso del directorio en el que puede estar este ejecutable. Solo si ambos, el archivo y el bit ejecutable del directorio están configurados, se nos permitirá ejecutar este archivo como un programa.
Al copiar un archivo en nuestro hogar, perderá sus permisos, que serán reemplazados por nuestros propios permisos predeterminados (a menos que copiemos usando opciones avanzadas, por ejemplo, una opción de archivo).
También tenga en cuenta que el archivo puede heredar su permiso de su punto de montaje, resp. Opciones de montaje. Esto es importante cuando se montan unidades formateadas de Windows que no admiten permisos de Unix.
Pronto nos damos cuenta de que esto era solo la mitad de la historia. También tenemos que ordenar las pertenencias. Para hacer esto, cada archivo o carpeta tiene un propietario definido y una membresía de grupo definida.
Cada vez que creamos un archivo, seremos el propietario de un archivo, y el grupo del archivo también seremos nosotros. Con ls -l
podemos ver los permisos, la propiedad y el grupo como se ve en el siguiente resultado de ejemplo:
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
- Solo se nos permite cambiar los permisos, los grupos o la propiedad de un archivo que es nuestro.
Si no somos el propietario del archivo, recibiremos un Permission denied
error. Solo root puede cambiar esto para todos los archivos. Es por eso que tenemos que usarlo sudo
al editar permisos de archivos que no son nuestros. Hay dos comandos integrados para hacerlo chown
para usuarios y chgrp
grupos.
Para cambiar la propiedad de un archivo de cualquiera a otro, takkat
podemos emitir este comando:
sudo chown takkat testfile
Para cambiar el grupo de un archivo a takkat
emitimos
sudo chgrp takkat testfile
Lea las páginas de manual de los comandos para obtener más detalles y opciones. También hay esta guía más elaborada y recomendada para leer más:
También encuentre algunas preguntas relacionadas aquí: