FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 07-05-2012, 03:00 PM
"Albert W. Hopkins"
 
Default Kernel compiles and you

On Wed, 2012-07-04 at 22:22 -0400, Mike Frysinger wrote:
> On Wednesday 04 July 2012 21:36:02 Albert W. Hopkins wrote:
> > Might it be better if you could tell portage to look for kernel
> builds
> > in another location than /usr/src/linux. Perhaps you can already and
> I'm
> > not aware.
>
> export KBUILD_OUTPUT=...

That'll work. Thanks!
 
Old 07-05-2012, 08:07 PM
Dan Douglas
 
Default Kernel compiles and you

On Wednesday, July 04, 2012 10:30:20 PM Peter Stuge wrote:
> You may recall there was a kernel build system bug which ran -rf /
> which would be bad if you built as root.

So there isn't anything during the build that requires writing outside the
source tree? Since I use a custom script for automating the build, there would
be no problem with having it run everything in the sandbox itself up to
installing the modules?
--
Dan Douglas
 
Old 07-06-2012, 06:32 AM
Tobias Klausmann
 
Default Kernel compiles and you

Hi!

On Thu, 05 Jul 2012, Dan Douglas wrote:
> On Wednesday, July 04, 2012 10:30:20 PM Peter Stuge wrote:
> > You may recall there was a kernel build system bug which ran
> > -rf / which would be bad if you built as root.
>
> So there isn't anything during the build that requires writing
> outside the source tree? Since I use a custom script for
> automating the build, there would be no problem with having it
> run everything in the sandbox itself up to installing the
> modules?

Correct. The only targets that write outside the tree are:
install modules_install firmware_install headers_install

Plus, possibly, arch-specific targets. I only know about
x86/amd64 and alpha.

Regards,
Tobias
 
Old 07-08-2012, 10:49 AM
Duncan
 
Default Kernel compiles and you

Michał Górny posted on Wed, 04 Jul 2012 22:38:50 +0200 as excerpted:

> On Wed, 4 Jul 2012 20:06:58 +0200 Tobias Klausmann <klausman@gentoo.org>
> wrote:
>
>> On Wed, 04 Jul 2012, Michał Górny wrote:
>> > There's a very simple yet custom solution I'm using. Shortly saying:
>> > checkout the kernel git to /usr/src/linux and chown to your user. As
>> > far as it goes, it's superior to having kernel sources installed by
>> > ebuilds.
>> >
>> > I just have to remember to do 'git fetch' from time to time and 'git
>> > merge' whenever a new version is tagged.
>>
>> It is also beyond the package manager's control. That means users who
>> want to just configure their kernel (and run point releases otherwise)
>> have to actively check for new tags/versions.
>
> True. I think that's the direction I should look into improving.
>
>> Aside from that the git tree is not exactly lightweight: my current 2.6
>> checkout weighs in at 1.4G whereas the unpacked tar is 512M.
>
> Well, that's the other problem. On the other hand, you usually have to
> have that 1G free anyway unless you intend to manually unmerge the
> previous *-sources before installing the new one. And the time needed to
> do that... git is so much faster.

I'll second the git being faster bit. What's especially nice about it is
that checking out and building any arbitrary tag (release or rc), or for
that matter, doing a bisect down to an individual commit, if you're
trying to track down some issue or other, is really easy. [1]

But the main reason for this reply is to add this idea:

Here, I have my regular user, and I have my admin-hat user. My regular
user has sudo locked down quite strictly, with a password required for
anything not specific parameter locked, etc. But, the one thing the
regular usr CAN do, is sudo (with password) to the admin user.
Additionally, my regular user isn't in the portage, wheel, etc, groups
either (and polkit is generally locked down for it as well), so it really
is quite privilege-locked, EXCEPT that it can sudo to admin.

The admin user then has unrestricted passwordless sudo access. Basically
root, except that I can type the command unprivileged first, then when
for instance the rm gives me the expected permissions error, I can see
that it's what I did indeed intend to rm, and arrow-up, home, sudo in
front, to actually do it.

The admin user is then what I use to git pull and build the kernel, so
that's the only user (other than root) with write access to the kernel
sources. My normal user doesn't have that access, thus avoiding the
normal-user-writable security issue mentioned in your (klausman's) blog.
Since that admin user then has unrestricted passwordless sudo, sudoing
(from that admin user) to root for the actual install is trivial.


Meanwhile, I actually have a set of kernel maintenance helper scripts
that I use to update, configure (either oldconfig for the update or just
to change something...), build and install the kernel. They're not ready
for use by the general public yet, but they're a reasonable start,
including a configuration file for most stuff one might want to change
(where the kernel dir is located, where the output dir is located so as
to keep the sources dir itself clean if so desired, whether to auto-
mount /boot for installation, etc). There's even provision for
automatically applying patches from a user patches dir! =:^)

Since I've been running a git kernel for several years now, the git-
kernel scripts are current, but I did start on the scripts back when I
was still using tarballs, so there's scripts that automate most of that,
as well, tho they're a bit stale now as I've not actually run/tested them
in a couple years (but I did try to update them for the 3.0 kernel, etc).

If you'd like, I can email them. As I said, they're not really fit for
public consumption yet, but it's a reasonable start including a config
file, and I use it for maintaining my systems (both x86 and amd64,
separate output dirs based on the bash ARCH variable) here, with a
maturity and development over several years, so if you're interested in
/making/ them fit for public consumption, it'd certainly save quite some
days work over starting from scratch.

Obviously I'm running/testing the scripts as a gentoo user, but other
than perhaps some of the config file comments, there's not a whole lot
specific to gentoo about 'em.

---
[1] I routinely run live-git kernels, but don't like to run anything
before rc1 until some days later, just in case. So when a release comes
out, I'll often update a couple days into the new cycle, and then simply
checkout and build the release tag. Then sometime after rc1 or rc2, I
update again, and test from there. I figure if I need to bisect
anything, news of any too drastic data-eating bugs pre-rc1 should be
available, and I can then bisect back into the previously blackout period
with a bit more confidence.

--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
 

Thread Tools




All times are GMT. The time now is 09:50 AM.

VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org