Como usuario novato de Linux, aprenderá sobre los permisos y la propiedad asociados con el archivo y los directorios. Los sistemas operativos tipo Linux / Unix le permiten establecer una combinación de permisos de nueve bits para evitar que otros usuarios accedan a archivos / directorios innecesarios. Son similares a estos permisos especiales para archivos ejecutables conocidos como set UID, set GID y sticky bits.
Comprender los permisos especiales puede resultar un poco abrumador para los aspirantes a administradores de Linux. Aquí aprenderá un poco de información sobre los permisos de archivos regulares y explicará en qué se diferencian de los permisos especiales. También demostramos la funcionalidad SetID, GetID y sticky bits con ejemplos para una comprensión completa.
Permisos regulares de archivos de Linux
Linux usa el comando chmod para asignar / cambiar lectura (r = 4), escribir (w = 2) y ejecutar (x = 1) permisos sobre archivos y carpetas. Es decir, los nueve bits mencionados anteriormente se aplican a las tres categorías principales de grupos de permisos. Los tres primeros son para el usuario propietario del archivo, el segundo conjunto es para el grupo asignado al archivo / directorio y los tres últimos representan a todos los demás usuarios.
Por ejemplo, un archivo normal mostrará todos los tipos de permisos para todas las categorías de usuarios como -rwxrwxrwx. Mientras que - en reemplazo de letras representan la ausencia de ese permiso. Ahora chmod El comando usa números y letras para cambiar los permisos de la siguiente manera:
archivo sudo chmod 755 # para rwxr-xr-x
archivo sudo chmod 644 # para rw-r - r--
archivo sudo chmod a-w # para r-xr-xr-x
sudo chmod a + x archivo # para --x - x - x
Permisos especiales de archivos de Linux
El setuid bit representa un permiso sobre un archivo ejecutable que pueden ejecutar otros usuarios con la autorización del propietario. Por ejemplo, cuando el usuario max ejecuta el comando vi como el usuario John, tendrá los permisos de lectura / escritura de John.
Para identificar archivos con setuid, use el ls comando y busque el s bit en lugar del bit ejecutable X, como sigue.
Establecer bit de UID
El setuid bit representa un permiso sobre un archivo ejecutable que pueden ejecutar otros usuarios con la autorización del propietario. Por ejemplo, cuando el usuario max ejecuta el comando vi como el raíz, él tendrá los permisos de lectura / escritura del raíz. Para identificar archivos con setuid, use el ls comando y busque el s bit en lugar del bit de ejecución X, como sigue:
ls -la / etc / passwd
-rwsr-xr-x 1 raíz raíz 88464 14 de diciembre 12:46 passwd
Algunos otros ejemplos son:
ls -la / bin / gpasswd
-rwsr-xr-x 1 raíz raíz 88464 14 de julio 15:08 gpasswd
ls -la / bin / su
-rwsr-xr-x 1 raíz raíz 67816 21 de julio de 2020 su
ls -la / newgrp
-rwsr-xr-x 1 raíz raíz 44784 14 de julio 15:08 newgrp
ls -la / bin / sudo
-rwsr-xr-x 1 raíz raíz 166056 19 de enero de 2021 sudo
Para establecer el bit setuid para archivos ejecutables, use el comando chmod de la siguiente manera:
chmod u + s / etc / passwd
Para quitar el permiso para ejecutar los archivos de usuarios o propietarios no root:
chmod u-s / etc / passwd
Establecer bit GID
Como se discutió, el bit set uid controla el acceso a los archivos a otros usuarios, mientras que el bit setgid (GID) crea directorios colaborativos. Eso significa que cualquier archivo creado dentro de ese directorio es accesible para el grupo del directorio. Por lo tanto, permite que todos los miembros del grupo ejecuten archivos ejecutables sin los privilegios del propietario y los protege de otros usuarios.
Siga estos pasos para crear un directorio colaborativo en su sistema Linux:
Crea un grupo usando el Groupadd comando con ID de grupo 415 para colaboración:
groupadd -g 415 administradores
Use el comando usermod para agregar Johnal grupo para el acceso / ejecución de archivos.
usermod -aG administradores john
Utilizar el mkdir comando para crear un directorio:
mkdir / tmp / dir_colaborativo
Utilizar el chgrp comando para asignar el directorio al administradores grupo:
chgrp admins / tmp / dir_colaborativo
Utilizar el chmod comando para cambiar el permiso del directorio a 2775. El bit 2 activa el gid establecido, el 7 para asignar rwx completo al usuario y al grupo, mientras que el 5 (r-w) para los demás.
chmod 2775 / tmp / dir_colaborativo
Por último, cambie su cuenta de usuario a John y crear un archivo en el directorio colaborativo para comprobar los permisos de los archivos.
su - john
toque /tmp/collaborative_dir/file.txt
El comando su puede darle un error de autenticación. En este caso, escriba el sudo su comando para cambiar a la raíz y volver a ejecutar su - john para cambiar la cuenta de usuario
Ahora enumere los permisos para verificar los bits GID establecidos para el directorio y el archivo recién creado.
ls -ld / tmp / dir_colaborativo /tmp/dir_collaborative/file.txt
En un escenario típico, un archivo creado por john tendrá asignado un grupo john. Dado que crea el archivo dentro de un directorio de bits GID establecido, asigna permisos al administradores grupo, de modo que cualquiera que pertenezca al grupo, como el usuario chris tendrá acceso a él.Relacionado: Cómo crear nuevos archivos en Linux usando touch
Bits pegajosos
A diferencia de los bits SID y GID, los bits adhesivos difieren en funcionalidad, ya que protegen los archivos y directorios contra el cambio de nombre y la eliminación por parte de otros usuarios. El permiso de archivo normal permite a cualquier usuario con acceso de escritura eliminar o cambiar el nombre del archivo. Mientras que con el bit adhesivo establecido, no es posible a menos que sea el usuario root o el propietario del archivo.
El escenario ideal para el uso de bits adhesivos es el directorio accesible a todos los usuarios para la creación de archivos. Por ejemplo, use el ls -ld comando para comprobar el \ tmp permisos de directorio, de la siguiente manera:
Puedes notar que la parte pegajosa t reemplaza el bit de ejecución X. Siga el conjunto de instrucciones proporcionado para crear un directorio de eliminación restringido:
Ahora cree otro directorio en el /tmp carpeta:
mkdir / tmp / new_dir
Cambie los permisos del archivo a 1777 para configurar el bit pegajosot) y acceso completo al directorio:
chmod 1777 / tmp / new_dir
Ahora copie cualquier archivo del /etc carpeta a /tmp/new_dir y cambiar sus permisos a 666:
cp / etc / / tmp / new_dir
chmod 666 / tmp / new_dir / services
Enumere el directorio y todo su contenido para ver los permisos:
ls -ld / tmp / new_dir / tmp / new_dir / services
Puede notar el bit adhesivo en lugar del bit de ejecución, lo que significa que solo la raíz o el usuario john pueden eliminar el archivo, ya que el archivo está dentro del directorio de bits adhesivos.
Comprensión de los permisos de archivos especiales en Linux
El artículo demuestra cómo configurar estos bits para mejorar la colaboración sobre archivos y directorios compartidos y protegerlos del acceso, ejecución y eliminación no autorizados. Incluso si no crea archivos / directorios con estos bits, comprender los permisos de archivos especiales es útil en muchas situaciones, especialmente en la resolución de problemas o como administrador del sistema. Considerando que, el uso imprudente de estos bits puede causar varias vulnerabilidades de seguridad.
¿Quiere conservar los permisos de los archivos mientras copia archivos en Linux? Aquí se explica cómo hacerlo usando cp y rsync.
Leer siguiente
- Linux
- Gestión de archivos
- Linux
Rumaisa es escritora autónoma en MUO. Ha recorrido un largo camino desde una matemática hasta una entusiasta de la seguridad de la información y está trabajando como analista de SOC. Sus intereses incluyen leer y escribir sobre nuevas tecnologías, distribuciones de Linux y cualquier tema relacionado con la seguridad de la información.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse