New World file system layout

From techdocs
Revision as of 15:30, 21 August 2023 by Plinich (talk | contribs)
Jump to navigation Jump to search

New World computers start life as out-of-the-box standard, minimally-configured Debian systems. The vast majority of software and configuration files on these computers is installed from standard Debian repositories by apt. Thus, to a very large extent, where things are in the file system is pretty-much dictated by Debian. This includes binaries, libaries, man pages and configuration files.

CSE-specific files — such as administration scripts, configuration files, teaching-related files., etc. — are largely located under either /etc or /usr/local. Below is a broad outline of what's where, why and how it gets there.

Path Discussion
/etc System configuration files. Most are left as they are out-of-the-box
/usr/local/acc Passwords used by acc to access Active Directory and CSE's own User Database (UDB)
/usr/local/bin Symlink to extrafiles/bin, i.e., to teaching-administered bin directory
/usr/local/etc CSG-administered configuration and miscellaneous files including ARCH (the local host CPU architecture: Intel, AMD, ARM, etc.)
/usr/local/extrafiles An entire file system sub-tree managed by teaching. Its contents are rsync'd from the cfengine hub holus-bolus. See /usr/local/extrafiles
/usr/local/extrapackages Teaching-administered lists of additional standard Debian packages to be installed beyond the packages specified by CSG
/usr/local/games Debian standard
/usr/local/include Debian standard
/usr/local/infrastructure Directories and files maintained by CSG
/usr/local/infrastructure/acc Duplicate of /usr/local/acc
/usr/local/infrastructure/bin Scripts maintained by CSG. This directory is used instead of /usr/local/bin to minimise confusion for students. The reasoning is that many of them may already be familiar with looking in /usr/local/bin (which teaching administers) while more savvy users (including CSG) will not have problems with looking for scripts in this current directory
/usr/local/infrastructure/bin/autofs_*

/usr/local/infrastructure/bin/cifs_upcall_shim.sh

Automounter support scripts. See automounter operation
/usr/local/infrastructure/bin/start* vx01 only: Configure user networking and run user VM's in /usr/local/qemu_machines for ZZEN9217. Se also ZZEN9217 H6 O.S. Fundamentals for Security: VM platform notes
/usr/local/infrastructure/debpkgs_lists CSG-managed lists of Debian packages to install
/usr/local/infrastructure/etc CSG-maintained configuration files for CSG-developed systems
/usr/local/infrastructure/lib CSG-maintained library files for CSG-developed systems
/usr/local/infrastructure/mlalias Duplicate of /usr/local/mlalias
/usr/local/infrastructure/priv priv scripts and "compiled" versions thereof. "priv" is a New World implemention of an Old World way of allowing users to run scripts as other users (notable root). This is a like sudo and, in fact, Old World-priv scripts can be copied into New World and then, when the New World priv is used to run them, it transparently converts them to work with sudo
/usr/local/infrastructure/privbin Support components of the priv-to-sudo compiler
/usr/local/infrastructure/vlab CSG-developed tools and scripts used to run the VLAB environment
/usr/local/lib Debian standard
/usr/local/man Debian standard, which is a symlink to share/man which actually, in turn, points into teaching-administered file system space. See /usr/local/share (below)
/usr/local/mlalias Passwords used by mlalias to access CSE's User Database (UDB)
/usr/local/priv Looks like old files
/usr/local/qemu_machines Custom QEMU virtual machine images and support scripts. See also /etc/sudoers.d and /usr/local/infrastructure/bin for sudo configurations and start scripts, respectively
/usr/local/sbin Debian standard
/usr/local/share Symlink to extrafiles/share
/usr/local/src Debian standard
/usr/local/tigervnc Version of TigerVNC server as directly downloaded from the TigerVNC website. This is more recent than the version which comes with Debian. Used on VLAB servers
/usr/local/uservms Experimental QEMU virtiual machines used for testing user-created-and-run VM's
/usr/local/vlab Support scripts used for starting up the VLAB environment for each user
/usr/local/vmimages CSG-managed VM's used by students