per user quotas inside jail?
Konstantin Belousov
kostikbel at gmail.com
Fri Aug 23 18:24:06 UTC 2013
On Fri, Aug 23, 2013 at 01:05:24PM -0500, Valeri Galtsev wrote:
> On Fri, August 23, 2013 11:05 am, Konstantin Belousov wrote:
> > On Fri, Aug 23, 2013 at 09:24:32AM -0500, Valeri Galtsev wrote:
> >> Dear Experts,
> >> After searching the web, reading FreeBSD Docs, trying some hacks found on
> >> some discussion boards... I feel it is not easily possible. Yet, as always
> >> there may be some expert who knows how to do it:
> >> How can one have per user quotas inside jail?
> >> Basically, I would like to give users shell access to some server, but
> that I prefer to have in jail, where I will mount all filesystems they
> need access to... and the only question is: how do I restrict them so
> one
> >> (or few) user doesn't fill up the whole filesystem. My mind is not married
> >> to any particular filesystem, UFS2, XFS, ZFS... - the only thing I
> would
> >> stay away from is NFS exporting on host and then NFS mounting in jail
> (which may be easiest if not the only way quota wise).
> >
> > UFS quotas work regardless of jailed/non-jailed user. The only
> confusing
> > issue is that quotas are per host uid. In other words, if host and jail
> user, or two users from different jails has the same uid, you get one
> quota setting applied and accounted for them.
> >
> > Usual mitigation is to ensure that user uids are globally unique.
> >
>
> Thanks, Konstantin.
>
> Still it doesn't work for me. My system is:
>
> 9.1-RELEASE-p5 amd64
>
> Kernel: the same as GENERIC, with one option added:
>
> options QUOTA # Add disk quota support
>
> filesystem with quota enabled is directly mounted (UFS; rw,userquota) into
> directory inside jail. User (with the same username and UID) exists on the
> host system and in jail. Quotas work on the host system. Quotas don't work
> inside jail, so this user can fill up the whole filesystem when logged
> into jail (jail accepts ssh connections with different hostname...)
>
> Apart from that I tried a hack which I lifted from someone's FreeBSD 7
> hack (only the variable name changed since then), namely:
>
> in kernel, in:
>
> /usr/src/sys/kern/vfs_syscalls.c
>
> I kicked out two lines:
>
> if (!prison_allow(td->td_ucred, PR_ALLOW_QUOTAS))
> return (EPERM);
>
> (which basically obliterate that if done from inside jail as far as I
> understand),
>
> rebuilt and installed this kernel; in file
>
> /etc/rc.d/quota
>
> removed line
>
> # KEYWORD: nojail
>
> Yet, I'm still where I was: quotas work outside jail, not inside jail...
>
> So, I'm at loss. I guess I will have to dive into zfs following Aaron
> Kaufman's suggestion... Sigh.
UFS quotas work per mount. So if jail root is on a filesystem which
has no quotas configured, obviously the thing cannot work.
You did not provided any details of your configuration, which makes
a diagnostic impossible.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-jail/attachments/20130823/39f7d95e/attachment.sig>
More information about the freebsd-jail
mailing list