Real-Gecko / Filemin

File manager for Webmin written completely in perl
Other
64 stars 16 forks source link

Browse directly to home directory #87

Closed tahder closed 6 years ago

tahder commented 8 years ago

I having an issue as my system don't go directly to home directly. Based on the config module the configuration "Directories accessible to Usermin users" is $HOME.

By the way my setup, i jailed my users in "jailed" directory - /home/jailed/home/user1 as example. On the above configuration $HOME doesn't work which i modified to /home/jailed/home/$USER is working well except it point to /home and you have to click 3 times to reach user1 directory.

Are there any shortcut for it? as it working in other file manager - the java one but users don't wanted to use as keep displaying annoying certificates.

Other issue is also permission, I dont know if related this to https://github.com/Real-Gecko/filemin/issues/82. As per mentioned using java-based file manager I can go directly to each home directories even my permission on /home/jailed is 751 (as I have groups of jailed users named /home/prisoned and /home/imprisoned) which I modified to 755 just to work (refer to 2nd paragraph). In relation to this worried with my ssh access as they can do read to others.

Real-Gecko commented 8 years ago

Filemin's $HOME in settings just means that every user will be locked in his/her UNIX{$HOME}. But the actual folder path of it is provided by Webmin. $USER variable is not parsed by Filemin in any manner as all interaction goes through Webmin. Check your Webmin users' setting. Maybe you'll find a solution. For now I can only recommend to set each user's "chroot" manually. However it may be annoying whe you have lot of 'em. Feel free to post new details if you find some :)

danielblues commented 8 years ago

If you only have one "Directories accessible to Usermin users", as the default $HOME, can we enter directly to that directory? After accessing the module, the user is presented with "home", then "usernme" and finally any usefull files. Thank you for the module it self, very very handy!

Real-Gecko commented 8 years ago

Look, here's how it works: every Webmin/Usermin/Virtualmin user can be synced with UNIX user. So he/she won't be just "virtual" user living inside Webmin, but also will be full featured UNIX user who have "home" directory and all other features UNIX user have. Default "$HOME" in Filemin's "Accessible directories" means that when this user launches Filemin he/she will be locked inside his/her UNIX $HOME. Here's the screenshot of version 1.1.0 of da module opened by Virtualmin domain owner test.loc 11 Who's also a UNIX user, here's screenshot of the same user working from console: 12 So if you have multiple users working in Filemin, each having $HOME in "Accessible directories" each of 'em will be locked inside UNIX $HOME: /home/test.loc for test.loc, /home/jacob for user jacob etc. If you want multiple users be locked inside one directory, you may create a group, setup Filemin permissions for that group and then add desired users to that group. You can also make any user work as some other UNIX user, for example you create UNIX user filemin with home inside /home/filemin, lock him inside $HOME and then make every desired user work as filemin inside Filemin. It is important to have correlated UNIX user as Filemin switches to that user while being executed. Why? Cause main webmin process miniserv.pl is always executed as root, you don't want to give root level access to you file system to anyone, do you? :)

danielblues commented 8 years ago

Thank for the fast reply. It's not a permissions problem, the permissions are right. It's a presentation problem. If I only have access to my $HOME, why does filemim starts with the root folder? Most users don't do unix and only see a link called "home" which say very little to them. Why not a direct chroot to the users folder if it's the only thing they will see? Thanks again.

Real-Gecko commented 8 years ago

Post screenshot of your Filemin ACL settings for particular user.

danielblues commented 8 years ago

With this setting: screenshot from 2016-02-24 09 57 12

I get this: screenshot from 2016-02-24 09 56 57

I would like to get this: (if possible or as an option) screenshot from 2016-02-24 09 59 50

An option to hide hidden files it also be nice, I will open another issue for that.

Thank you

Real-Gecko commented 8 years ago

Upgrade Filemin, instructions are here: https://github.com/Real-Gecko/filemin/wiki Report if things are changed or not after that.

danielblues commented 8 years ago

Just upgraded to 1.1, nice look but same functionality.

Real-Gecko commented 8 years ago

What's the user's home directory in 'Webmin -> System -> Users and groups -> $USERNAME"?

danielblues commented 8 years ago

Is this: screenshot from 2016-02-24 11 41 01

Real-Gecko commented 8 years ago

And what about particular user dfb?

danielblues commented 8 years ago

It's an ldap user: screenshot from 2016-02-24 11 57 35

Real-Gecko commented 8 years ago

Aha, now I see, I did not work with LDAP users. How many LDAP users you have?

danielblues commented 8 years ago

about 1400

Real-Gecko commented 8 years ago

Lol, that's too much for manual handling :) OK, I'll try to figure out why LDAP users have incorrect home setting, it may be Filemin issue as well as Webmin issue.

danielblues commented 8 years ago

Yes, 1400 would be painful. I've set webmin's "Home Directory" from Automatic to "/home/dfb" and the direct chroot works! As I have "homeDirectory" set on ldap to "/home/dfb", the automatic setting should have worked, no? It's probably a webmin issue more the filemin.

brianforan commented 7 years ago

@danielblues were you ever able to jail the users successfully?

knight-rider commented 6 years ago

Any solution? I still have the same issue. Agreed with danielblues, users (of usermin) should see /home/username instead of /home as the root. FYI I'm not using LDAP.

knight-rider commented 6 years ago

I think I FOUND THE BUG! I helped myself by editing filemin-lib.pl from if (scalar(@allowed_paths == 1)) to if (scalar(@allowed_paths)) and now it works like a charm!

jcameron commented 6 years ago

Thanks!

knight-rider commented 6 years ago

FIX: Since the path(s) might be duplicated (thus gives undesirable result), the correct sentence is

if (&unique(@allowed_paths) == 1)

Thanks again for your great work!