El Control De Acceso Enumera el Acl
Una variante obvia de la matriz del control de
acceso es almacenar cada columna con el objeto que representa.
Así, cada objeto ha asociado a él un sistema de pares, con
cada par conteniendo un tema y un sistema de las derechas. El
tema nombrado puede tener acceso al objeto asociado usando
cualesquiera de las esas derechas. Más formalmente:
Deje S ser el sistema de temas, y R el sistema de las
derechas, de un sistema. Un Access Control List (ACL) l es un sistema de pares l = {(s, r): s
incluido en S, r incluidos en R}. Deje el acl ser una función
que determina el Access Control List l asociado a un objeto particular
o. La interpretación del acl(o) del Access Control List =
{(silicio, ri): 1 < = i < = n} es que el silicio sujeto puede
tener acceso a o usando a la derecha en ri.
Una edición es la materia del permiso del defecto.
Si un tema no se nombra en el ACL, no tiene ninguna derecha
sobre el objeto asociado. En un sistema con muchos temas, el ACL
puede ser muy grande. Si muchos temas tienen la misma derecha
sobre el archivo, uno podría definir un "comodín" para emparejar
cualquier tema innomado, y le da las derechas del defecto.
| EJEMPLO: UNICOS 7.0 ACLs tienen entradas de la forma
(usuario, grupo, las derechas). Si el usuario está en el grupo
nombrado, él o ella tiene esas derechas sobre el objeto. Por
ejemplo, el trío (el acebo, maceranch, r) da el acceso leído acebo
del usuario (r) sobre el objeto solamente cuando el acebo tiene
maceranch como su grupo.
Si especifican al usuario o al grupo como "*", ese
carácter se toma para emparejar a todos los usuarios o a todos los
grupos. Así, (acebo, *, r) da acebo leyó el permiso sobre el
objeto sin importar el grupo que ella está adentro; (*, el
maceranch, r) da cualquier permiso leído usuario sobre el objeto
cuando ese usuario está en el maceranch del grupo. |
Abreviaturas de las listas del control de acceso
Algunos sistemas abrevian listas del control de
acceso. La base para el control de acceso del archivo en el
sistema operativo de UNIX está de esta variedad. Los sistemas
de UNIX dividen el sistema de usuarios en tres clases: el dueño
del archivo, el dueño del grupo del archivo, y el resto de los
usuarios. Cada clase tiene un sistema separado de las derechas.
EJEMPLO: Los sistemas de UNIX proporcionan leen (r),
escriben (w), y ejecutan (x) las derechas. Cuando el obispo del
usuario crea un archivo, asuma que está en el vulner del grupo.
Inicialmente, el obispo solicita que él pueda leer en y
escribir al archivo, que se permita a los miembros del grupo leer en
el archivo, y que ningunos otros tienen acceso al archivo.
Entonces los permisos serían rw para el dueño, r para el
grupo, y ninguno para otro.
Los permisos de UNIX se representan como tres tríos.
El primer los correcto del dueño; el segundo, las
derechas del grupo; y el tercero, otras derechas. Dentro
de cada trío, la primera posición es r si se permite el acceso
leído o si no es; la segunda posición es W si escriba el
acceso se permite o si no es; y la tercera posición es x si
ejecute el acceso se permite o si no es. Los permisos para el
archivo del obispo serían rwr.
Una pregunta interesante es cómo los sistemas de UNIX
asignan propiedad del grupo. Tradicionalmente, los sistemas de
UNIX asignan la identificación de grupo principal eficaz del proceso
que crea. Pero en algunos casos esto no es apropiado. Por
ejemplo, suponga la línea trabajos del programa de la impresora
usando permisos del grupo; diga que su grupo es lpdaemon.
Entonces, cuando un usuario copia un archivo en el directorio
spool, el lpdaemon debe poseer el archivo de carrete. La manera
más simple de hacer cumplir este requisito es hacer el grupo del
directorio spool poseído por el lpdaemon y hacer la propiedad del
grupo heredar por todos los archivos creados en ese directorio.
Algunos systemsnotably, systemsaugment de Solaris y de SunOS que
la semántica de los modos de la protección de archivo fijando el
setgid mordió en el directorio cuando cualquier archivo creado en el
directorio debe heredar la propiedad del grupo del directorio que
contiene. |
Las abreviaturas de las listas del control de acceso,
tales como ésos apoyados por el sistema operativo de UNIX, sufren de
una pérdida de granularity. Suponga que un sistema de UNIX
tiene cinco usuarios. Anne desea permitir que Beth lea su
archivo, Caroline para escribirle, Della a leerle y a escribir, y
Elizabeth para ejecutarlo. Porque hay solamente tres sistemas de
permisos y cinco desearon arreglos de las derechas (Alicia
incluyendo), tres tríos son escasos para permitir todos los modos
deseados del acceso. Por lo tanto, Alicia debe comprometerse, y
dé a alguien las más derechas que ella desea o da a alguien las
pocas derechas. Semejantemente, el control de acceso tradicional
de UNIX no permite que uno diga "todos sino a usuario Fran";
para hacer esto, uno debe crear a grupos de todos los usuarios
excepto Fran. Tal arreglo es incómodo, tanto más porque
solamente un administrador de sistema puede crear a grupos.
Muchos sistemas aumentan abreviaturas de ACLs con
verdadero ACLs. Este esquema utiliza las abreviaturas de ACLs
como los controles del permiso del defecto; el ACL explícito
elimina los defectos según lo necesitado. El método exacto
varía.
EJEMPLO: La versión de la IBM del sistema operativo
de UNIX, llamada AIX, utiliza un ACL (llamado "amplió permisos") para
aumentar las abreviaturas tradicionales de UNIX del ACL (llamado los
"permisos bajos"). Desemejante de ACLs tradicional, el AIX ACL
permite que uno especifique permisos de ser agregado o de ser
suprimido del sistema del usuario. Como UNICOS, AIX basa
fósforos en identidad del grupo y del usuario. El algoritmo
específico (usar la terminología de AIX, en la cual los "permisos
bajos" son las abreviaturas de UNIX de ACLs y de "permisos extendidos"
es entradas sin abreviar del ACL) está como sigue.
-
Determínese qué fijó S de permisos que el usuario tiene
de los permisos bajos.
-
Si los permisos extendidos son lisiados, pare. El
sistema S es el sistema del usuario de permisos.
-
Consiga la entrada siguiente en los permisos extendidos.
Si no hay no más, pare. El sistema S es el sistema del
usuario de permisos.
-
Si la entrada tiene el mismo usuario y grupo que el
proceso que solicita el acceso, determínese si la entrada niega el
acceso. Si es así pare. Se niega el acceso.
-
Modifique S según lo dictado por los permisos en la
entrada.
-
Como ejemplo específico, considere la representación
siguiente de los permisos del control de acceso de un sistema de AIX
para el archivo xyzzy.
cualidades: owner(bishop) bajo de los
permisos: group(sys) del rw-: r
-- otros: --- los permisos extendidos
permitidos especifican el permiso del rw- u:holly - W u:heidi, rw- u:matt del permiso de los g=sys niegue - W u:holly, g=faculty
En las líneas extendidas de los permisos, el
primer campo se determina lo que significa la línea ("especifique"
para eliminar los permisos bajos, "permiso" de agregar las derechas, y
"niegue" a las derechas de la cancelación); el segundo campo
indica las derechas implicadas, usando el trío tradicional de UNIX;
y el tercer campo define a usuario ("u:") y grupo ("g:")
implicado.
En este ejemplo, el acebo puede leer xyzzy porque las
primeras y cuartas líneas en la sección extendida de los permisos
eliminan la negación baja del permiso del acceso a otros (la clase de
las cuales acebo sea un miembro). Si el acebo está trabajando
en el grupo de la facultad, ella no puede escribir a xyzzy (la línea
pasada) pero puede leerla (primera línea). El heidi del
usuario, trabajando en el sistema del grupo, puede leer y escribir al
archivo (la línea del grupo en los permisos bajos da el permiso
leído heidi; la primera línea del permiso en los permisos
extendidos que la sección da su el permiso de escritura). De
esta manera, los permisos extendidos aumentan los permisos bajos. |
Creación y mantenimiento de las listas del control de
acceso
Las puestas en práctica específicas de ACLs
diferencian en detalles. Algunas de las ediciones están como
sigue.
-
¿Qué temas pueden modificar el ACL de un objeto?
-
¿Si hay un usuario privilegiado (tal como raíz en el
sistema de UNIX o administrador en Windows NT), los ACLs se aplican a
ese usuario?
-
¿los grupos de ayuda del ACL o los comodines (es decir,
pueden los usuarios ser agrupados en los sistemas basados en una
noción del sistema del "grupo" o en la concordancia con el modelo)?
-
¿Cómo se manejan los permisos contradictorios del control
de acceso? ¿Si las concesiones de una entrada leen privilegios
solamente y otras concesiones escriben los privilegios solamente, que
derecho el tema tiene sobre el objeto?
-
¿Si se permite un ajuste del defecto, los permisos del ACL
lo modifican, o se utiliza el defecto solamente cuando el tema no se
menciona explícitamente en el ACL?
Porque estos isues son críticos al uso correcto de ACLs
en un sistema, lo exploraremos más detalladamente.
¿Qué temas pueden modificar el ACL de un objeto?
Cuando se crea un ACL, las derechas son instantiated.
El jefe entre las estas derechas es el que llamaremos para
poseer. Los poseedores del poseer a la derecha pueden modificar
el ACL.
Crear un objeto también crea su ACL, con un cierto valor
inicial (posiblemente vacío, pero dan más generalmente el creador
inicialmente todas las derechas, incluyendo propio, sobre el nuevo
objeto). Por la convención, el tema con las propias derechas se
permite modificar el ACL. Sin embargo, algunos sistemas permiten
que cualquier persona con el acceso manipule las derechas.
EJEMPLO: El sistema R de la base de datos
emparentada contiene sistemas de n-n-tuples que hacen encima de los
expedientes, y cada elemento de cada n-n-tuple tiene cualidades.
Estos n-n-tuples se almacenan como tablas, con los expedientes
como las filas y las cualidades como las columnas. Cada tabla
define una relación.
Las derechas para manipular una tabla (relación) incluyen
leído (para las filas de la lectura, preguntando con la relación, o
definiendo opiniónes), se ponen al día (para escribir a una tabla),
insertan (para agregar filas), suprimen (para suprimir filas), y gota
(para suprimir las tablas). Cada uno derecho tiene un
modificante, llamado la opción de la concesión, que si el sistema
permite que el poseedor dé la derecha a otra. Cualquier usuario
con el acceso a una tabla puede dar las derechas a cualquier otro
usuario, con tal que la derecha tenga la opción de la concesión.
Por lo tanto, posesión del acceso (y una opción de la
concesión asociada a cada uno la derecha), no propiedad, controles la
transferencia de las derechas. |
¿Los ACLs se aplican a un usuario privilegiado?
Muchos sistemas tienen usuarios con privilegios
adicionales. Los dos conocidos lo más mejor posible son el
super-user de la raíz en los sistemas de UNIX y el usuario del
administrador en Windows NT y 2000 sistemas. Típicamente, ACLs
(o sus formas degeneradas) se aplican en una manera limitada a tales
usuarios.
EJEMPLO: Los sistemas de Solaris UNIX utilizan las
abreviaturas del estándar de ACLs a los sistemas de UNIX y un
verdadero ACL. Las abreviaturas de ACLs se no hacen caso cuando
la raíz es el tema, pero los ACLs llenos se aplican incluso a la
raíz. |
¿los grupos de ayuda del ACL y los comodines?
En su forma, ACLs clásicos no los grupos de ayuda o los
comodines. En la práctica, los sistemas apoyan uno o el otro (o
ambos) para limitar el tamaño del ACL y para hacer la manipulación
de las listas más fácil. Un grupo puede refinar las
características de los procesos para no ser prohibidos el acceso o
ser un sinónimo para un sistema de los usuarios (los miembros del
grupo).
EJEMPLO: En el ejemplo de AIX arriba, recuerde que
eran las líneas extendidas del permiso (que corresponden al máximo
ACL)
permisos extendidos permitidos especifique el rw- u:holly permiso - W u:heidi, g=sys rw- u:matt del permiso niegue - W u:holly, g=faculty
Inicialmente, el sistema del grupo había leído
el permiso solamente en el archivo. La segunda línea agrega el
permiso de escritura para los procesos con heidi de UID y el sistema
de GID. La primera línea da procesos con el acebo de UID leído
y escribe el acceso, a menos que cuando el GID del proceso es la
facultad, en que caso el proceso no puede escribir al objeto (véase
la cuarta línea). |
EJEMPLO: El sistema operativo de UNICOS proporciona
ACLs similar a los de AIX, pero permite comodines. Por ejemplo,
acebo: maceranch: r
significa que un proceso con acebo de UID y
maceranch de GID puede leer el objeto con el cual el ACL es asociado.
La entrada del ACL
acebo: *: r
significa que un proceso con acebo de UID puede
tener acceso al objeto sin importar el grupo que el proceso está
adentro. Y la entrada
*: maceranch: r
significa que cualquier proceso con el maceranch
de GID puede leer el objeto. |
Conflictos
Un conflicto se presenta cuando dos entradas del
Access Control List en el mismo ACL dan diversos permisos al tema.
El sistema puede permitir el acceso si cualquier entrada diera
el acceso, niega el acceso si cualquier entrada negaría el acceso, o
aplica la primera entrada que empareja el tema.
EJEMPLO: Si cualquier entrada en un AIX ACL niega el
acceso, el tema se niega el acceso sin importar la localización de
esa entrada. Si no, si cualquier entrada ha concedido el acceso,
el tema se concede el acceso. Éste es un ejemplo de la
negación que toma precedencia. |
|
EJEMPLO: Las rebajadoras del Cisco aplican la
primera entrada del Access Control List que empareja el paquete
entrante. Si ninguno se aplica, se desecha el paquete entrante.
Éste es un ejemplo del segundo acercamiento, con una regla del
defecto de niega. |
ACLs y permisos del defecto
Cuando coexisten ACLs y las abreviaturas de las
listas del control de acceso o de las derechas de acceso del defecto
(como en muchos sistemas de UNIX), hay dos maneras de determinar las
derechas de acceso. El primer debe aplicar la entrada apropiada
del ACL, si existe una, y aplicar los permisos del defecto o las
abreviaturas de las listas del control de acceso de otra manera.
La segunda manera es aumentar los permisos del defecto o las
abreviaturas de las listas del control de acceso con ésos en la
entrada apropiada del ACL.
EJEMPLO: El AIX amplió permisos baja en la segunda
categoría, porque modifican los permisos bajos. |
EJEMPLO: Si un paquete que entra en una rebajadora
del Cisco es destinado para un anfitrión en una red detrás de la
rebajadora, pero la rebajadora no tiene ninguna entrada de la lista
del acceso que permita que el paquete sea remitido, se desecha el
paquete. Éste es un ejemplo del primer método, porque es el
permiso del defecto niega. |
Revocación de las derechas
La revocación, o la prevención de un tema que
tiene acceso a un objeto, requiere que las derechas del tema estén
suprimidas del ACL del objeto.
Evitar que un tema tenga acceso a un objeto es simple.
La entrada para el tema se suprime del ACL del objeto. Si
solamente se van las derechas específicas a ser suprimidas, se quitan
de la entrada del tema relevante en el ACL.
Si la propiedad no controla dar de las derechas, la
revocación es más compleja.
EJEMPLO: La vuelta al sistema R. Suppose Ana ha dado
las derechas de la actualización de Peter sobre una relación T pero
ahora desea revocarlas. El sistema R sostiene que después de
revocar, el estado de la protección del sistema debe estar como era
antes de que Ana diera a Peter la cualquier derecha.
Específicamente, si se revoca Peter da a Maria las derechas de
la actualización, cuando Ana revoca las derechas de la actualización
de Peter, las derechas de la actualización de Maria a menos que
alguien con excepción de Peter también le haya dado las derechas de
la actualización.
Para poner esto en ejecucio'n, el sistema R define una
relación llamada Sysauth. Las cualidades de esta relación son
(usuario, tabla, donante, leído, relleno, cancelación, gota,
actualización). Los valores de las cualidades que corresponden
a las derechas son timestamps que indican cuando la derecha fue dada
(a excepción de la actualización, que trataremos de más adelante).
Por ejemplo, si Ana diera Peter leyó las derechas sobre los
informes de la relación en el tiempo 10, y Peter los dio a Maria en
el tiempo 20, la tabla estaría como sigue.
| Usuario |
Tabla |
Donante |
Leído |
Peter |
Informes |
Ana |
10 |
Maria |
Informes |
Peter |
20 |
Si Ana revoca las derechas leídas de Peter, y
Maria la obtuviera leyera las derechas de Peter después de que Ana
las diera a Peter, ella leyó las derechas también sería revocada.
Sin embargo, suponga que Michelle también había dado las
derechas leídas Maria sobre informes. Entonces suprimir la fila
pasada en la tabla deja una entrada para Marynamely, la que esta' de
Michelle:
| Usuario |
Tabla |
Donante |
Leído |
Peter |
Informes |
Ana |
10 |
Maria |
Informes |
Michelle |
5 |
Maria puede tan los informes leídos inmóviles.
La derecha de la actualización tiene un valor de todos,
de algunos, o de ningunos. Estos valores refieren al sistema de
las filas que pueden ser cambiadas. Si el valor es algo, un
Syscolauth llamado segunda relación registra las columnas que el tema
puede poner al día. Esta tabla también registra épocas, y la
revocación procede en cuanto a las otras columnas. |
Ejemplo: Listas Del Control De Acceso De Windows NT
Windows NT proporciona las listas del control de
acceso para esos archivos en particiones de NTFS. Windows NT
permite que un usuario o un grupo lea, escriba, se ejecute, suprima,
cambie los permisos de, o tome propiedad de un archivo o de un
directorio. Las estas derechas se agrupan en los sistemas
comúnmente asignados llamados las derechas genéricas. Las
derechas genéricas para los archivos están como sigue.
-
ningún acceso, por el que el tema no pueda tener acceso
al archivo
-
leído, por el que el tema pueda leer o ejecutar
el archivo
-
cambie, por el que el tema pueda leer, ejecutar,
escribir, o suprimir el archivo
-
control completo, por el que el tema tenga todas
las derechas al archivo
Además, el acceso especial derecho genérico
permite la asignación de cualesquiera de los seis permisos.
Los directorios de Windows NT también tienen su propia
noción de las derechas genéricas.
-
ningún acceso, por el que el tema no pueda tener acceso
al directorio
-
leído, por el que el tema pueda leer o ejecutar
archivos dentro del directorio
-
enumere, por el que el tema pueda enumerar el
contenido del directorio y pueda cambiar a un subdirectory dentro de
ese directorio
-
agregue, por el que el tema pueda crear archivos
o subdirectories en el directorio
-
agregue y lea, que combina las derechas
genéricas agrega y leyó
-
cambie, por el que el tema pueda crear, leído,
ejecutar, o escribir archivos dentro del directorio y puede suprimir
subdirectories
-
control completo, por el que el tema tenga todas
las derechas sobre los archivos y subdirectories en el directorio
Como antes, la derecha de acceso especial
genérica permite la asignación de otras combinaciones de permisos.
Cuando los accesos de un usuario un archivo, Windows NT
primero examinan el ACL del archivo. Si el usuario no está
presente en el ACL, y no es un miembro de cualquier grupo enumerado en
el ACL, se niega el acceso. Si no, si cualquier entrada del ACL
niega el acceso de usuario, Windows NT niega el acceso (ésta es una
negación explícita, que se calcula primero). Si el acceso no
se niega explícitamente, y nombran al usuario en el ACL (como un
usuario o miembro de un grupo), el usuario tiene la unión del sistema
de las derechas de cada entrada del ACL en la cual nombren al usuario.
Como ejemplo, suponga que Paul, Quentin, y Regina son
usuarios de un sistema de Windows NT. Paul y Quentin están en
los estudiantes del grupo. Quentin y Regina están en el
personal del grupo. El directorio e:\stuff tiene su Access
Control List fijado a (el personal, agrega), (Quentin, cambio), (los
estudiantes, ningún acceso). Bajo esta lista, la primera
entrada permite a Regina crear subdirectories o archivos en e:\stuff.
La tercera entrada rechaza a todos los miembros de los
estudiantes del grupo de tener acceso al directorio. La segunda
entrada permitiría que Quentin suprimiera subdirectories, excepto que
Quentin está en el grupo de estudiantes, y en Windows NT que un
explícito niega (según lo dado en la tercera entrada) elimina
cualquier concesión del permiso. Por lo tanto, Quentin no puede
tener acceso al directorio.
Ahora, deje Regina crear un plugh del subdirectory en
e:\stuff. Ella entonces rechaza el acceso de Paul, pero desea
permitir que Quentin tenga acceso del cambio. Ella hace el
siguiente.
- Cree e:\stuff \ el plugh; su ACL es (el personal,
agrega), (Quentin, cambio), (los estudiantes, ningún acceso).
- Suprima la entrada pasada en el ACL; de la segunda
entrada, esto da el acceso del cambio de Quentin.
- Agregue la entrada (Paul, ningún acceso) al ACL.
El paso pasado es superfluo, porque Windows NT niega el
acceso por defecto, pero es más seguro agregarlo de todos modos, a
fin de den los estudiantes del grupo las derechas. Si sucediera
eso, Paul conseguiría las esas derechas a menos que (Paul, ningún
acceso) la entrada estuviera presente.
esto es un artículo agregado por Fred Foster
|