[
https://issues.apache.org/jira/browse/GUACAMOLE-1957?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17852054#comment-17852054
]
Nick Couchman edited comment on GUACAMOLE-1957 at 6/4/24 2:15 PM:
------------------------------------------------------------------
[~shargan] There is a bit of nuance to this bug that I think is worth noting.
Originally I did not think it was a bug at all, but a little investigation
leads me to see what I think is actually at the core of it. However, I think
it's important to clarify the ways in which the permissions system is working
as designed:
* Users who have the right to create connections, whether as System
Administrators, or with the "Create Connections" permission, will be the
"owner" of that connection, and will have administrative rights to it. This
results in *four* permissions entries being created in the
guacamole_connection_permission table for this user/connection pair: READ,
UPDATE, DELETE, and ADMINISTER.
* Removing the "System Administrator" or "Create Connections" (et al) rights
does not - and should not - remove ownership of created connections or
permissions to those connections.
* The connections that the user created are shown at the bottom of the user
administration page as connections for which that user has permissions.
Again, all of those items are working as expected and intended. The only piece
of this that I believe makes this a bug is that, when you clear the checkbox
for that connection in the user administration page, only the "READ" permission
is cleared from the database - the remaining entries, for UPDATE, DELETE, and
ADMINISTER, are left in the database, resulting in the behavior you're seeing.
This means that:
* While the user cannot read the connection, and, so, cannot see it in the GUI,
there is still a chance that the user would be able to update, delete, or
otherwise affect it due to the fact that they retain other permissions to the
connection.
* If you add "READ" access back for the user, they will not only be able to
read (use, connect to) the connection, they will also be able to update it.
My opinion is that clearing the checkbox for the connection should clear *all*
of the permissions in the database for the connection (or other object), not
just the READ permission. However, this highlights another aspect of the
permissions system, and that's that the GUI only manages a small subset of the
permissions - for example, you cannot assign a user "Administer", "Update", or
"Delete" permissions to a specific connection, connection group, etc., in the
GUI - you have to manually create the entries in the database. There are some
limitations to the current setup. In this case, this is a bug that stems from
those (designed, or at least expected) limitations.
was (Author: [email protected]):
[~shargan] There is a bit of nuance to this bug that I think is worth noting.
Originally I did not think it was a bug at all, but a little investigation
leads me to see what I think is actually at the core of it. However, I think
it's important to clarify the ways in which the permissions system is working
as designed:
* Users who have the right to create connections, whether as System
Administrators, or with the "Create Connections" permission, will be the
"owner" of that connection, and will have administrative rights to it. This
results in *four* permissions entries being created in the
guacamole_connection_permission table for this user/connection pair: READ,
UPDATE, DELETE, and ADMINISTER.
* Removing the "System Administrator" or "Create Connections" (et al) rights
does not - and should not - remove ownership of created connections or
permissions to those connections.
* The connections that the user created are shown at the bottom of the user
administration page as connections for which that user has permissions.
Again, all of those items are working as expected and intended. The only piece
of this that I believe makes this a bug is that, when you clear the checkbox
for that connection in the user administration page, only the "READ" permission
is cleared from the database - the remaining entries, for UPDATE, DELETE, and
ADMINISTER, are left in the database, resulting in the behavior you're seeing.
This means that:
* While the user cannot read the connection, and, so, cannot see it in the GUI,
there is still a chance that the user would be able to update, delete, or
otherwise affect it due to the fact that they retain other permissions to the
connection.
* If you add "READ" access back for the user, they will not only be able to
read (use, connect to) the connection, they will also be able to update it.
My opinion is that clearing the checkbox for the connection should clear *all*
of the permissions in the database for the connection (or other object), not
just the READ permission. However, this highlights another aspect of the
permissions system, and that's that the GUI only manages a small subset of the
permissions - for example, you cannot assign a user "Administer", "Update", or
"Delete" permissions to a specific connection, connection group, etc. There are
some limitations to the current setup. In this case, this is a bug that stems
from those (designed, or at least expected) limitations.
> Permissions system behaving unexpectedly
> ----------------------------------------
>
> Key: GUACAMOLE-1957
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-1957
> Project: Guacamole
> Issue Type: Bug
> Affects Versions: 1.5.5
> Environment: Guacamole and guacd installed using official docker
> images.
> Reporter: Adam
> Priority: Minor
>
> If an user have any administrative permissions assigned to him, either
> directly or inherited from a group, and created anything using this
> permissions (user, group, connection, etc.), he can make administrative
> actions on these items even after administrative permissions are detached
> from him directly or by removing from group from which these permissions were
> inherited.
> This effectively makes user a lifelong administrator of items he created,
> even after this user does not have these permissions anymore.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)