title: "AbantOS Linux Users Guide (Elive/Debian)" author: [See Credits] date: 2017-11-05 subject: "CSCI 2461-70/2482-40 Fall 2017 Final Project" tags: [AbantOS, Elive, Linux, Incident Handling, Final Project] titlepage: true titlpage-color: "D8DE2C" titlepage-text-color: "5F5F5F" abstract: "AbantOS Linux, based on Elive/Debian with the Englightenment Window Manager/GUI. Created by and in support of the Fall 2017 Saint Paul College CSCI 2461-70 Computer Networking 3 - Linux, and 2482-40 Incident Handling & Disaster Recovery classes. " ...
During Week 10 of CSCI 2461-70 and CSCI 2482-40, after significant discussion all students enrolled in these classes unanimiously decided to join efforts and chose as a Collaborative Class Final Project building their own Specialized Linux distribution based on Debian Linux and the Elive project. CSI 2461-70 is focusing on educational components of Linux, and CSCI 2482-40 is focusing on Incident Handling and Disaster Recovery components.
This document serves as a Users Guide to the 2482-40 and 2461-70 classes and associated tools, techniques and processes.
In the African Bantu group Abantos means "Belongs to Human Beings."
AbantOS Linux is based on and created in collaboration with Thanatermesis of the eLiveCD Project.
The name AbantOS is partially an homage to Ubuntu Linux.
This document uses the Eisvogel.tex Template and Pandoc, using a similar method to OWASP's Top 10 method
$ pandoc AbantOS-Elive-UsersGuide-17319-835.md -o ./AbantOS-Elive-UsersGuide-17319-835.pdf --from markdown+multiline_tables --template eisvogel.tex --listings --toc
This work is licensed Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).
All contributors hold their original Copyright 2017.
-
The key points to remember in considering Debianos social dynamics as applied to becoming a package maintainer are these:
- Debian is a volunteer-powered project, and self-motivation and friendly cooperation are crucial.
- Debianos development is consistently evolving, and maintainers must adapt along with it. This adaptation must be self-driven; you canot rely on others to bring you along.
Though many if not all packages necessary for development should come installed with the base Debian installation, itos good to check they are present with aptitude show package or dpkg -s package. The most important package to make sure is installed is build-essential. It should pull in other packages that are necessary for the build environment if theyore not already installed.
Other packages are some measure of helpful and/or necessary for building particular packages down the road. Some are particular compilers for specific languages (i.e. gfortran or gpc) or packages for scripting languages themselves (i.e. perl and python). Others make parts of the process easier (such as the debhelper/dh-make packages or the fakeroot tool) or allow checking for errors after the build (lintian). The full range of additional build packages listed should be installed and understood before proceeding.
This section of chapter 1 includes the debian-policy which is the explanations of the structures and contents of the Debian archive and several OS design issues. It also includes requirements that each package must satisfy to be included in the distribution.
Important documentations that needed to be read for the development are auto tutorial and gnu-standards. If any errors or bugs occur, the maint-guide package can be used to report using report bug.
There are a few documentations that will help solve any problems we encounter during installing packages or using any commands. Available sources to solve any issues are; websites such as lists.debian.org or wiki.debian.org/Teams.
1. Get a copy of the upstream software, usually in a compressed tar format.
* package-version.tar.gz
2. Add Debian-specific packaging medications to the upstream program under the Debian directory, and create a non-native source package.
* package_version.orig.tar.gz
* package_version-revision.debian.tar.gz
* package_version-revision.dsc
3. Build Debian binary packages, which are ordinary installable package files in .deb format. The character separating package and version change from hyphen to underscore. As the following command.
* package_version-revision_arch.deb
1. First, create the first version of a package, outside of Git. Once it done, you can import the package using the import-dsc command.
$ gbp import-dsc /path/to/package_0.1-1.dsc
2. This will give output of its progress and make a few commits as well as have some new files and directories.
$ ls
package/
package_0.1-1.orig.tar.gz
3. git-buildpackage command
* Imported the package into the upstream branch
* This has then been tagged upstream/0.1, which represent package's number
* Imported debian/directory into master and upstream's files
* Tagged the last commit as debian/0.1-1 as it finished package.
When there is a new version upstream, you could use the following steps to update to the latest version of upstream version.
$ gbp import-orig -uscan
$ gbp import-orig /path/to/new-upstream.tar.gz -u 0.2
*if the upstream tarball is already exist in the form of packagename_version.orgi.tar.gz, then the -u option is not required.
The steps to follow after choosing a package to create and in order to check if the package is already in the distribution archive are; the aptitude command, the debian packages web page and the debian package tracker web page. Debian already has packages in the Debian archive which is much larger than that of contributors with upload rights. If you are able to adopt the package, get the sources something like apt-get source but if you are installing new packages in Debian follow the steps below:
1. First step is to confirm that the program works.
2. Second, Make sure no one is working on the package. If no one is working on it, file an ITP bug report to the wnpp pseudo-package using report bug. If someone else is already working on it, contact them if you feel you need to.
3. Third, the software must have a license.
4. Fourth, the program should not introduce security and maintenance concerns into the Debian system. The program should be well documented, should not run setuid root and should not be a daemon.
As a new maintainer, you are encouraged to create simple packages, intermediate complexity packages and high complexity packages. Packaging a high complexity packages requires more knowledge than it takes to build a simple or intermediate packages.
There are a few steps mentioned on this section to get the package and try it out.
1. First step is to find and download the original source code.
2. Second, if your package program comes in tar+gzip format with the extension .tar.gz, format with the extension .tar .bz2 or tar + xz format , it usually contain a directory called package-version with all the sources inside.
3. Third, if your program comes as some other sort of archive, you should unpack it with the appropriate tools and repack it.
1. Simple programs comes with a Makefile which can be compiled by invoking make.
2. Compile and run to make sure your program works so it wonot break something else while its installing or running.
3. You can run make clean to clean up the build directory.
4. You can use the make uninstall to remove all the installed files.
Free software is often written in C or C++, and these often use portable build systems to make them portable across platforms. Autotools is one example of such a build system; it comprises Autoconf, Automake, Libtool, and Gettext. (Cmake is an alternative build system.)
With these build tools, they must be used to generate the Makefile and other required source files first. The program can then be built using make; make install.
The Autotools workflow generally proceeds as:
1. Upstream runs autoreconf -i -f in the source directory and distributes the generated files along with the source.
2. The user obtains the distributed source and runs ./configure && make in the source directory to compile the program in an executable source binary.
Ubuntu is a Linux distro that starts with the breadth of Debian and adds regular releases (every six months) commitment to security updated with nine months of support for every release.
Ubuntu builds on the foundations of Debian's architecture and infrastructure but there are important differences such as, Ubuntu has its own user interface, a separate developer community and different release process. Debian is the rock upon which Ubuntu is built. It is a volunteer project that has developed and maintained a GNV/Linux Operating System of the same name over a decade. Since its launch, the Debian project has grown to comprise more than 1,000 members with official developers status, alongside many more volunteers and contributors. Debian is a free operating system. An operating system is the set of basic programs and utilities that make your computer run. At the core of operating system is a Kernel. The Kernel is the most fundamental program on the computer and does all the basic housekeeping and lets you start other programs. Debian system use Linux Kernel or the BSD Kernel. Today Debian encompasses over 20,000 packages of free open source applications and documentation.
About Ubuntu
Ubuntu is an Open-source project that develops and maintains a cross-platform, open-source operating system based on Debian. Upgrades are released every six months and support is granted by Canonical for up to five years. Canonical also provides commercial support for Ubuntu deployments across the desktop, the server and the cloud.
How does Debian and Ubuntu fit together?
Ubuntu is proud to be based on Debian. Ubuntu developers want to maintain a healthy and collaborative relationship with Debian developers. Ubuntu has brought new users and developers to the GNU/Linux community
How does Ubuntu differ from Debian?
Ubuntu has a narrow focus--community based while Debian is Universal.
Ubuntu has its own community government structure somehow inspired by Debian's but different. (MOTU) The masters of the universe were team formed to look after the creation of the universe component.
Debian for Ubuntu developers
Ubuntu benefits from a strong Debian and Debian benefits from a strong Ubuntu.
Every Debian developer is also an Ubuntu developer because one way to contribute is to contribute to Debian Ubuntu is Debian based.
Edubuntu
A complete Linux based operating System targeted for primary and secondary education. It is freely available with community based support. The Edubuntu community is built on the ideas enshrined in the Edubuntu manifesto: that software, especially for education should be available free of charge and that software tools should be usable by people in their local language and despite any disabilities. [14]
Kubuntu
An official derivative of Ubuntu Linux using ICDE instead of the GNOME or unity interfaces used by default in Ubuntu.
GNOME (GNU Network Object Model Environment, pronounced as NOHM) is a graphical user interface (GUI) and set of computer Desktop applications for users of the Linux computer operating system. Its intended to make a Linux operating system easy to use for non-programmers and generally corresponds to the windows desktop interface and its most common applications. (Wikipedia)
AbantOS uses the Enlightenment Window Manager
>>> help
Downloading Elive from EliveCD.org
- The latest release of Elive can be downloaded from www.elivecd.org. The latest Beta release is the recommended version to download.
- Navigate to the Beta downloads by clicking Download, then Beta.
- For writing Elive to a USB drive, click the button labeled Elive Beta - USB. This is an Elive image specifically for writing to USBs. A window will open asking if you want to open or save the .img file. Click Save File and your browser will download the file.
- When the download finishes, open the folder to which it was saved and take note of the file's location.
Release notes at EliveCD.org
The archive of release notes on the Beta releases of Elive can be found at http://www.elivecd.org/news/releases/beta/. Each entry contains many details on what features of Elive have been updated and improved in each release.
- The recommended USB drive for writing and using Elive is the SanDisk Extreme USB 3.0 32 GB flash drive.
- If you are using Windows, you can write the Elive image to the USB using an image writer application. Elive suggests UsbWriter; other options include the application from Etcher.io or Win32DiskImager.
- With any application, first plug your USB drive into an open USB port on your computer. Using the application, select the Elive image from the location you downloaded it to, then select the correct USB drive and write the image.
- The written image will overwrite any other data contained on the USB drive. In some cases, the USB drive may need to be reformatted first before being able to write a new USB image (for instance, if a previous USB image was written to the drive). You can reformat the drive by right-clicking the drive in the Computer window or using Windows Disk Management.
- Power on your computer with the USB with Elive written to it plugged in. When the initial boot screen of your computer appears, hold down the Boot Menu key to load the boot menu. On many computers this is the F12 key, or one of the other F row keys. A list of common boot menu keys for various manufacturers can be found at http://www.elivecd.org/ufaqs/how-to-tell-the-computer-to-boot-from-another-device/.
- When the boot menu key appears, highlight the USB drive option and press Enter.
- After Elive initiates, the first Elive menu asking the method of installation will appear. For running Elive from the USB, select Live sessions with Persistence. This method will allow you to run Elive direct from the USB without installing the system on your separate hardware, and Persistence will save your configurations of Elive from session to session.
First things first. BIOS stands for Basic Input Output System referred to as BIOS, is software stored on a small memory chip on the motherboard. It give the computer a set of instructions on how to perform some of the basic functions such as booting and keyboard control as well as configure the hardware in a computer including the hard drive, floppy drive, USB, optical drive, CPU, memory to list a few.
References "How to start up Mac from bootable media"
>>> apug
>>> sudo apt-get dist-upgrade
Elive utilizes the Enlightenment Window Manager. Enlightenment utilizes a set of core libraries called (EFL), created specifically for Enlightenment. EFL is being recognized for its forward thinking approaches as users are wanting more from their operating systems UI.
elive-tools are a set of handy and useful tools by Elive, for specialty use in the Elive project
- audio-configurator
- configure individual alsa cards
- bkp (save states)
- elivepaste (pastebin)
- waitfor
- waits on the shell for a process that terminates and exits, its pretty useful for do things like: $ waitfor rebuild-packages && rebuild-iso
- user-manager
- make-cookies-with-chocolate
- Evas
- Core scene graph and rendering
- Elina
- Data strucures and low level helpers
- Edje
- UI layout & animation data files for themes
- Eet
- Data (de)serialization and storage
- Ecore
- Core loop and system abstractions like x11
- Efreet
- Freedesktop.org standards handling
- Eldbus
- D-Bus glue and handling
- Embryo
- Tiny VM and compiler based on pawn
- Eeze
- Device enumeration and access library
- Emotion
- Video decode wrapping, glue and abstraction
- Ethumb
- Thumbnailing handler
- Ephysics
- Physics (bullet) wrapper and Evas glue
- EIO
- Asynchronus I/O handling
- Evas Generic Loaders
- Extra image loaders for complex image types
- Emotion Generic Players
- Extra video decoders (for vlc)
- Elementary
- Widgets and high level abstractions
Elive currently has three theme options available by default.
- Default Theme
- Elive Light Theme
- A light theme
- Lucax Theme
- A dark theme
Right click on the desktop to bring up the menu, hover over Enlightenment to bring up enlightenment sub menu. Hover over about theme and click it, this will show you the current theme. Close the about theme and right click on the desktop again to bring up the menu. Hover over Settings, scroll down and hover over Theme, you will see the three options available. Right click on the Theme you want and wait for it to change, this may take a minute or two depending on the theme. Open windows and applications will lock up during the transition, this is normal.
Right click on the desktop to bring up the menu. Hover over Settings and right click it. A settings window will appear. Right click on Wallpaper, the wallpaper settings will appear. Choose one the the wallpapers and click apply.
There are two methods for doing this that I know of, here are both.
The first method is to download an HD Wallpaper in .gif format. You can download one here: Animated Wallpaper Sample gif. After you finish downloading your animated wallpaper you have to put it in the right directory open a Terminology terminal and navigate to /Downloads, or wherever you have your .gif wallpaper you downloaded. Now you have to move the wallpaper to the /usr/share/enlightenment/data/backgrounds/ . The command to move the file is:
sudo mv "name of file without quotes.gif" /usr/share/enlightenment/data/backgrounds/
Close the terminal and right click on the desktop to bring up the menu, click settings and then Wallpaper. The wallpaper settings will appear and it will open the directory where you just moved your wallpaper. Choose your animated wallpaper and click apply. Close the wallpaper settings.
NOTE: If you didn't see your wallpaper then your command may have been mistyped, don't forget to remove the quotes.
The second method is to download a HD wallpaper .gif and transfer it with the Thunar File Manager. Download your gif using the link above or any you choose in .gif format. Open the thunar file manager and from the home directory click downloads, or navigate to your .gif wallpaper. Open another thunar file manager window by clicking the icon in the dock again. Press (control) and (h) at the same time to show hidden files. Click .e and then e17, now click backgrounds. Drag and drop your animated wallpaper .gif from downloads to the backgrounds directory you just opened. After you transfer the wallpaper press (control) and (h) again to hide the config files. Close the file managers
Right click on the desktop to bring up the menu, click settings and then Wallpaper. The wallpaper settings will appear. In the top left click Personal, now you should see the wallpaper you transferred in the list below, click it. Now click apply and close the wallpaper settings.
There are various reasons for building a repository yourself. You might just have a few packages with local modifications that you want to make available to apt, you may want to run a local mirror with those packages used by several machines to save bandwidth, or you build packages yourself and want to test them prior to publication.
A Debian repository contains several releases. Debian releases are named after characters from the "Toy Story" movies (wheezy, jessie, stretch, ...). The codenames have aliases, so called suites (stable, oldstable, testing, unstable). A release is divided in several components. In Debian these are named main, contrib, and non-free and indicate the licensing terms of the software they contain. A release also has packages for various architectures (amd64, i386, mips, powerpc, s390x, ...) as well as sources and architecture independent packages.
- Root Directory = dists
- Each release subdirectory contains a cryptographically signed Release file and a directory for each component.
- dpkg-scanpackages
$ dpkg-scansources dists/local/custom/source | gzip > dists/local/custom/source/Sources.gz
- dpkg-scansources
$ dpkg-scanpackages dists/local/custom/binary-i586 | gzip > dists/local/custom/binary-i586/Packages.gz
An override file can be optionally specified. If no override file exists/, dev/null must be provided as an explicit argument.
Working with repositories may mean either of two different things:
- You can use a repository with the apt family of programs (apt, apt-get, apt-cache, aptitude) to browse or install packages
echo "deb http://ftp.debian.org/debian stable main contrib non-free" >> /etc/apt/sources.list && apt-get update
- You can set up a repository yourself and add, remove or replace packages in it.
wiki.debian.org/DebianRepository
wiki.debian.org/DebianRepository/Setup
1. Boot process and Troubleshooting
2. System Logging
3. Disk Management and File System Creation
4. Managing Linux Users and Groups
5. Linux Networking (setting up networking and config)
6. Process and Job Management
7. Creating, Viewing and Editing Text Files (Vi)
8. Installing and Updating Software Packages
9. Scheduling and Automating Future tasks
10. Network Storage and Management (NFS, SMB)
11. Service Configuration (DHCP, FTP, DNS, SSH, HTTP etc...)
12. Linux Shell Scripting
To maintain the privacy of users of the Linux system and manage their accounts and supervision, as well as track the problems they will go through, find the solutions to these problems, and inform users the changes, update, and upgrade the system. Even if there is a one user using the system it was always a challenge for the managing users. I will show you some tools and some tasks assigned to add the user to Linux system where you see adding and deleting accounts is an easy process for managing users.
Before we talk about how to creating and deleting a user account I will talk about the most important text file(/etc/passwd) because is processing the all most and necessary details and information about all users in the Linux system.
This file it is open to read only for users, and it is read and writable for root account.
The /etc/passwd file containe only one separate line, limited by a colon (:) for each user account in the system, also it is stored the information for each user using the Linux system. Every time we add new user to the system all details and information for the new user will stored in the same file.
root /h/jamal >>> sudo cat /etc/passwd
jamal: x:1001:1001: jamal Ibrahim, 1,,:/home/jamal :/bin/bash
tyler: x:1002:1002: tyler, 1,,:/home/tyler :/bin/bash
awil: x:1003:1003: awil, 1,,:/home/awil :/bin/bash
jacquie: x:1004:1004: jacquie, 1,,:/home/jacquie :/bin/bash
matthew: x:1005:1005: matthew, 1,,:/home/matthew :/bin/bash
to get depth in the file I will take the entry of my user name jamal.
Jamal : x : 1001 : 1001 : jamal Ibrahim , 1 ,, : /home/jamal : /bin/bash
{---1----}{---2---}{---3-----}{---4----}{---------------5---------------}{----------6------}{-------7-----}
1. **Username field**: This field show the user account name; this user name must be used every time when we log in to the system.
2. **Password field**: Second field is the Password field, not showing the actual password though. The 'x' in this field show the password is encrypted and saved in the /etc/shadow file.
3. **UID field**: Every time when a user account is created, it is assigned with a user id or UID (UID for the user 'jamal' is 1001, in this case) and this field specifies the same.
4. **GID field**: Similar to the UID field, this field specifies which group the user belongs to, the group details being present in /etc/group file.
5. **Comment/Description/User Info field**: This field is the short comment/description/information of the user account.
6. **User Home Directory**: Every time the user sign in to the system, he is taken to his Home directory, where all his personal files reside. This field provides the absolute path to the user's home directory (/home/jamal in this case).
7. **Shell**: This field show, the user has access to the shell mentioned in this field (user 'jamal' has been given access to /bin/bash or simply bash shell).
Elive is based on Debian, the same distribution flavor as Ubuntu, so we use .deb files for our packages and those files collectively live in a repository.
Debian Package Management details can be found in the Debian Manuals
package popcon size description
apt V:871, I:999 3647 Advanced Packaging Tool (APT), front-end for dpkg providing "http", "ftp", and "file" archive access methods (apt-get/apt-cache commands included)
aptitude V:136, I:778 4415 interactive terminal-based package manager with aptitude(8)
tasksel V:40, I:972 374 tool for selecting tasks for installation on the Debian system (front-end for APT)
unattended-upgrades V:188, I:364 254 enhancement package for APT to enable automatic installation of security upgrades
dselect V:4, I:59 2498 terminal-based package manager (previous standard, front-end for APT and other old access methods)
dpkg V:932, I:999 6745 package management system for Debian
synaptic V:70, I:453 7793 graphical package manager (GNOME front-end for APT)
apt-utils V:391, I:997 1103 APT utility programs:
apt-listchanges V:350, I:838 365 package change history notification tool
apt-listbugs V:7, I:12 451 lists critical bugs before each APT installation
apt-file V:13, I:77 82 APT package searching utility -- command-line interface
Table: Debian package management (Manual), List of Debian package management tools
Source: Debian package management manual and Popularity Contest Stats
In order to understand the components of the Elive repository here are a couple commands
for package in $( dpkg -l | awk '{print $2}' ) ;
do if apt-cache policy "$package" 2>/dev/null | grep -qs "repository.elivecd.org" ;
then echo -e "${package%:*} \tis in Elive repos" ;
fi ;
done
cat /var/lib/apt/lists/repository.elivecd.org_*Packages | grep "^Package:" | wc -l
sudo apt-get
-
acptool: replacement of apmtool. For laptop users.
-
afflib- dpg- on-disk format for storing complete forensic information: sudo apt-get install afflib-dbg, allows files to be digitally signed, chain-of-custody and long-term file integrity. Allows disk images containing privacy sensitive material to be stored on the Internet. Posix stricpting (Linux coding).
-
balsa-dbg: get sudo apt-get install balsa-dbg. Mail client from GNOME desktop. Supports both POP3 and IMAP.
-
cython3-dbg: sudo apt-get install cython-dbg. Libraries built against versions of Python configured with pydebug. Allows python configuration.
-
/etcldibbler/client.conf w/new version. DHCPv6 clients: sudo apt-get install dibbler-client
-
sudo apt-get install DVd+rw-tools-dbp
-
sudo apt-get update
-
sudo apt-get install build-essential save files and execute.
-
sudo apt-get install enigma
Talk to potential users!
Project Lead and Troubleshooting How is Ubuntu related to Linux and Debian?
Package Management
User Management
Repository & Systems Administration
Scribe Quality Assurance / Testing
Cat Hearding Editing
Package Management
USB Booting (Mac)
QA: Debian Package Management Workflow
Project Editor Original Draft (2017-10-30) Installation of Elive
Formatting