Funciones | |
asmlinkage long | sys_uselib (const char *library) |
Llamada al sistema uselib. No fue modificada pero usa may_open() y permission(). | |
int | do_execve (char *filename, char **argv, char **envp, struct pt_regs *regs) |
Llamada al sistema execve. No fue modificada pero usa, prepare_binprm() y open_exec() la que a su vez usa permission(). | |
asmlinkage long | sys_mknod (const char *filename, int mode, dev_t dev) |
Llamada al sistema mknod. No fue modificada pero usa vfs_mknod() la cual usa may_create(). | |
asmlinkage long | sys_mkdir (const char *pathname, int mode) |
Llamada al sistema mkdir. No fue modificada pero usa vfs_mkdir() la cual usa may_create(). | |
asmlinkage long | sys_rmdir (const char *pathname) |
Llamada al sistema rmdir. No fue modificada pero usa funciones que usan may_delete()). | |
asmlinkage long | sys_unlink (const char *pathname) |
Llamada al sistema unlink. No fue modificada pero usa funciones que usan may_delete(). | |
asmlinkage long | sys_symlink (const char *oldname, const char *newname) |
Llamada al sistema symlink. No fue modificada pero usa funciones que usan may_create(). | |
asmlinkage long | sys_link (const char *oldname, const char *newname) |
Llamada al systema link. No fue modificada pero usa vfs_link() que a su vez usa may_create(). | |
asmlinkage long | sys_rename (const char *oldname, const char *newname) |
Llamada al sistema rename. No fue modificada pero usa otras funciones que usan may_create() y may_delete(). | |
asmlinkage long | sys_truncate (const char *path, unsigned long length) |
Llamada al sistema truncate. No fue modificada pero usa permission(). | |
asmlinkage long | sys_truncate64 (const char *path, loff_t length) |
Llamada al sistema truncate64. No fue modificada pero usa permission(). | |
asmlinkage long | sys_access (const char *filename, int mode) |
Llamada al sistema access. Esta función no fue modificada, sin embargo usa permission(). | |
asmlinkage long | sys_chdir (const char *filename) |
Llamada al sistema chdir. | |
asmlinkage long | sys_fchdir (unsigned int fd) |
Llamada al systema fchdir. No fue modificada pero usa permission(). | |
asmlinkage long | sys_chroot (const char *filename) |
Llamada al sistema chroot. No fue modificada pero usa permission(). | |
asmlinkage long | sys_fchmod (unsigned int fd, mode_t mode) |
Llamada al sistema fchmod. | |
asmlinkage long | sys_chmod (const char *filename, mode_t mode) |
Llamada al sistema chmod. | |
asmlinkage long | sys_chown (const char *filename, uid_t user, gid_t group) |
Llamada al sistema chown. | |
asmlinkage long | sys_lchown (const char *filename, uid_t user, gid_t group) |
Llamada al sistema lchown. | |
asmlinkage long | sys_fchown (unsigned int fd, uid_t user, gid_t group) |
Llamada al sistema fchown. | |
asmlinkage long | sys_open (const char *filename, int flags, int mode) |
Llamada al sistema open. No fue modificada pero usa (indirectamente) may_open(). | |
asmlinkage long | sys_creat (const char *pathname, int mode) |
Llamada al sistema creat. No fue modificada pero usa sys_open(). | |
asmlinkage long | sys_close (unsigned int fd) |
Esta llamada no fue modificada. Se la incluye por completitud. Está especificada en el modelo. | |
asmlinkage long | sys_stat (char *filename, struct __old_kernel_stat *statbuf) |
Llamada al sistema stat. | |
asmlinkage long | sys_newstat (char *filename, struct stat *statbuf) |
Llamada al sistema newstat. Ídem sys_stat() con la diferencia que esta llamada utiliza la función cp_new_stat(). | |
asmlinkage long | sys_lstat (char *filename, struct __old_kernel_stat *statbuf) |
Llamada al sistema lstat. | |
asmlinkage long | sys_newlstat (char *filename, struct stat *statbuf) |
Llamada al sistema newlstat. Ídem sys_lstat() con la diferencia que esta llamada utiliza la función cp_new_stat(). | |
asmlinkage long | sys_fstat (unsigned int fd, struct __old_kernel_stat *statbuf) |
Llamada al sistema fstat. | |
asmlinkage long | sys_newfstat (unsigned int fd, struct stat *statbuf) |
Llamada al sistema newfstat. Ídem sys_fstat() con la diferencia que esta llamada utiliza la función cp_new_stat(). | |
asmlinkage long | sys_stat64 (char *filename, struct stat64 *statbuf, long flags) |
Llamada al sistema stat64. Ídem sys_stat() pero para los sistemas de archivos de 64 bits. | |
asmlinkage long | sys_lstat64 (char *filename, struct stat64 *statbuf, long flags) |
Llamada al sistema lstat64. Ídem sys_lstat() pero para los fileystems de 64 bits. | |
asmlinkage long | sys_fstat64 (unsigned long fd, struct stat64 *statbuf, long flags) |
Llamada al sistema fstat64. Ídem sys_fstat() pero para los sistemas de archivos de 64 bits. | |
asmlinkage long | sys_setuid (uid_t uid) |
Cambia el uid sólo si los archivos abiertos verifican seguridad simple, confinamiento y DAC para el nuevo usuario. |
|
Llamada al sistema chdir. Se modificó la semántica de esta llamada en cuanto a los permisos que se necesitan para ejecutarla. Usa permission(). |
|
Llamada al sistema fchmod. El código de esta llamada se comentó completamente ya que no cumple con la precondición de la operación del modelo chmod. fchmod ejecutaba el mismo código que sys_chmod() pero sobre un archivo abierto. Ahora devuelve siempre -EPERM (operación no permitida). |
|
Llamada al sistema chmod. Cambia los permisos del grupo ALLGRP y del usuario y grupo dueño tradicional, en la ACL de un archivo.
|
|
Llamada al sistema chown. Cambia el usuario dueño tradicional y grupo primario tradicional de un archivo. Esta llamada utiliza la funcion chown_common() la cual fue modificada para cumplir con la nueva especificación.
|
|
Llamada al sistema lchown. Cambia el usuario dueño tradicional y grupo primario tradicional a un enlace. Esta llamada utiliza la función chown_common() la cual fue modificada para cumplir con la nueva especificación.
|
|
Llamada al sistema fchown. El código de esta llamada se comentó completamente ya que no cumple con la precondición de la operación del modelo chown. fchown ejecutaba el mismo código que sys_chown() pero sobre un archivo abierto. Ahora devuelve siempre -EPERM (operación no permitida). |
|
Llamada al sistema stat. Devuelve información de estado de un archivo. Esta llamada utiliza la función cp_old_stat() la cual fue modificada para cumplir con la nueva especificación.
|
|
Llamada al sistema lstat. Devuelve información del enlace que se obtiene al seguir los enlaces del path que se pasa como parámetro. Esta llamada utiliza la función cp_old_stat() la cual fue modificada para cumplir con la nueva especificación.
|
|
Llamada al sistema fstat. Devuelve información del inodo al que apunta el descripor de archivo que se pasa como parámetro. Esta llamada utiliza la función cp_old_stat() la cual fue modificada para cumplir con la nueva especificación.
|
|
Cambia el uid sólo si los archivos abiertos verifican seguridad simple, confinamiento y DAC para el nuevo usuario. Este cambio se incluyó debido a que era posible que un usuario se logueara en una terminal con clase de acceso superior a la de aquel (en general debido a que es posible que usando setuid se viole seguridad simple o DAC). El control que se implementó podría debilitarse controlando únicamente seguridad simple y DAC. Es necesario pensar y diseñar cuidadosamente el mecanismo SUID si va a ser incorporado en Lisex.
|