Browse Source

Startin verbosity logging before user dir creation, since the subs require

verbosity.
master
freesource 23 years ago
parent
commit
2f718bd0c8
  1. 183
      gbootroot

183
gbootroot

@ -452,6 +452,98 @@ $SIG{KILL} = \&signal;
(undef,$container[KERNEL],$container[ABS_APPEND]) = gdkbirdaao(); (undef,$container[KERNEL],$container[ABS_APPEND]) = gdkbirdaao();
my ($sec,$min,$hour,$day,$month,$year) = (localtime)[0,1,2,3,4,5];
my $time = sprintf("%02d:%02d:%02d-%02d-%02d-%04d",
$hour, $min, $sec, $month+1, $day, $year+1900);
# Here's where stuff gets intersting, non-root users can create root_fs,
# which is great for UML, and a boot disk.
if ( $> == 0 ) {
if (!-d "$tmp1/gbootroot_tmp$time") {
$tmp = "$tmp1/gbootroot_tmp$time" if err_custom_perl(
"mkdir $tmp1/gbootroot_tmp$time",
"gBootRoot: ERROR: Could not make temporary directory") != 2;
}
if (!-d "$tmp1/gbootroot_mnt$time") {
$mnt = "$tmp1/gbootroot_mnt$time" if err_custom_perl(
"mkdir $tmp1/gbootroot_mnt$time",
"gBootRoot: ERROR: Could not make mount directory") != 2;
}
# Why?
$tmp = "$tmp1/gbootroot_tmp$time";
}
else {
# The Administrator just needs to add a line like the one below to the
# fstab for each non-root user who wants to be able to create root_fs.
# In this example, `id -u` has to be the actual effective numeric user
# id, and the root_fs has to always be named root_fs when it is being
# made, but it can be renamed afterwards.
#
# /tmp/gboot_non_root_`id -u`/root_fs \
# /tmp/gboot_non_root_`id -u`/loopback \
# auto defaults,noauto,user,loop 0 0
#
# For the boot/root disks the administrator will have to give the user
# special su privileges (mknod) to make special devices. The $main::sudo
# variable can be set to sudo or super, fakeroot won't work.
# These include: /dev/{console,null,ram0,ram1,tty0}
# These two lines need to be added to create the boot_fs and the boot/root
# disk. In this example the user is locked into using one type of device
# for the boot/root
#
# /tmp/gboot_non_root_`id -u`/initrd_image \
# /tmp/gboot_non_root_'id -u1`/initrd_mnt \
# auto defaults,noauto,user,loop 0 0
#
# /dev/fd0 /tmp/gboot_not_root_mnt_`id -u` auto defaults,noauto,user 0 0
my $user = $>;
if (!-d "$tmp1/gboot_non_root_$user") {
$tmp = "$tmp1/gboot_non_root_$user" if err_custom_perl(
"mkdir $tmp1/gboot_non_root_$user",
"gBootRoot: ERROR: Could not make temporary directory") != 2;
}
$tmp = "$tmp1/gboot_non_root_" . $user;
if (!-d "$tmp1/gboot_non_root_mnt_$user") {
$mnt = "$tmp1/gboot_non_root_mnt_$user" if err_custom_perl(
"mkdir $tmp1/gboot_non_root_mnt_$user",
"gBootRoot: ERROR: Could not make mount directory") != 2;
}
$mnt = "$tmp1/gboot_non_root_mnt" . $user;
}
# Verbosity is universal for all methods, and controlled by a scale slider.
# Yard
# 0 --> only the important messages.
# 1 --> all messages.
my $verbosity = 1; # info & sys use this as Global
## One hard copy log file is saved for the session, and the user can also
## save from the verbosity box including saving a selection.
my $verbosefn = "$tmp/verbose"; # All verbosity
#my $verbosefn = "/tmp/verbose"; # Yard - always logged, but 0&1 = STDOUT
# Need this before everything.
Gtk::Rc->parse("/etc/gbootroot/gbootrootrc");
verbosity_box();
start_logging_output($verbosefn,$verbosity); # Yard "tmp dir name"
# "verbosity level"
#-------------------------------
# USER DIRECTORIES
# /tmp # /tmp
home_builder($tmp1); home_builder($tmp1);
@ -544,96 +636,7 @@ sub home_builder {
} }
} # end home_builder } # end home_builder
#-------------------------------
my ($sec,$min,$hour,$day,$month,$year) = (localtime)[0,1,2,3,4,5];
my $time = sprintf("%02d:%02d:%02d-%02d-%02d-%04d",
$hour, $min, $sec, $month+1, $day, $year+1900);
# Here's where stuff gets intersting, non-root users can create root_fs,
# which is great for UML, and a boot disk.
if ( $> == 0 ) {
if (!-d "$tmp1/gbootroot_tmp$time") {
$tmp = "$tmp1/gbootroot_tmp$time" if err_custom_perl(
"mkdir $tmp1/gbootroot_tmp$time",
"gBootRoot: ERROR: Could not make temporary directory") != 2;
}
if (!-d "$tmp1/gbootroot_mnt$time") {
$mnt = "$tmp1/gbootroot_mnt$time" if err_custom_perl(
"mkdir $tmp1/gbootroot_mnt$time",
"gBootRoot: ERROR: Could not make mount directory") != 2;
}
# Why?
$tmp = "$tmp1/gbootroot_tmp$time";
}
else {
# The Administrator just needs to add a line like the one below to the
# fstab for each non-root user who wants to be able to create root_fs.
# In this example, `id -u` has to be the actual effective numeric user
# id, and the root_fs has to always be named root_fs when it is being
# made, but it can be renamed afterwards.
#
# /tmp/gboot_non_root_`id -u`/root_fs \
# /tmp/gboot_non_root_`id -u`/loopback \
# auto defaults,noauto,user,loop 0 0
#
# For the boot/root disks the administrator will have to give the user
# special su privileges (mknod) to make special devices. The $main::sudo
# variable can be set to sudo or super, fakeroot won't work.
# These include: /dev/{console,null,ram0,ram1,tty0}
# These two lines need to be added to create the boot_fs and the boot/root
# disk. In this example the user is locked into using one type of device
# for the boot/root
#
# /tmp/gboot_non_root_`id -u`/initrd_image \
# /tmp/gboot_non_root_'id -u1`/initrd_mnt \
# auto defaults,noauto,user,loop 0 0
#
# /dev/fd0 /tmp/gboot_not_root_mnt_`id -u` auto defaults,noauto,user 0 0
my $user = $>;
if (!-d "$tmp1/gboot_non_root_$user") {
$tmp = "$tmp1/gboot_non_root_$user" if err_custom_perl(
"mkdir $tmp1/gboot_non_root_$user",
"gBootRoot: ERROR: Could not make temporary directory") != 2;
}
$tmp = "$tmp1/gboot_non_root_" . $user;
if (!-d "$tmp1/gboot_non_root_mnt_$user") {
$mnt = "$tmp1/gboot_non_root_mnt_$user" if err_custom_perl(
"mkdir $tmp1/gboot_non_root_mnt_$user",
"gBootRoot: ERROR: Could not make mount directory") != 2;
}
$mnt = "$tmp1/gboot_non_root_mnt" . $user;
}
# Verbosity is universal for all methods, and controlled by a scale slider.
# Yard
# 0 --> only the important messages.
# 1 --> all messages.
my $verbosity = 1; # info & sys use this as Global
## One hard copy log file is saved for the session, and the user can also
## save from the verbosity box including saving a selection.
my $verbosefn = "$tmp/verbose"; # All verbosity
#my $verbosefn = "/tmp/verbose"; # Yard - always logged, but 0&1 = STDOUT
# Need this before everything.
Gtk::Rc->parse("/etc/gbootroot/gbootrootrc");
verbosity_box();
start_logging_output($verbosefn,$verbosity); # Yard "tmp dir name"
# "verbosity level"
# Gtk::check_version expects different arguments than .7004 so will have # Gtk::check_version expects different arguments than .7004 so will have
# to check for the version instead. # to check for the version instead.

Loading…
Cancel
Save