New World file system layout: Difference between revisions

From techdocs
Jump to navigation Jump to search
No edit summary
No edit summary
Line 41: Line 41:
|-
|-
|/usr/local/infrastructure/debpkgs_lists
|/usr/local/infrastructure/debpkgs_lists
|CSG-managed lists of Debian packages to install
|-
|-
|/usr/local/infrastructure/etc
|/usr/local/infrastructure/etc
|CSG-maintained configuration files for CSG-developed systems
|-
|-
|/usr/local/infrastructure/lib
|/usr/local/infrastructure/lib
|CSG-maintained library files for CSG-developed systems
|-
|-
|/usr/local/infrastructure/mlalias
|/usr/local/infrastructure/mlalias
Line 50: Line 53:
|-
|-
|/usr/local/infrastructure/priv
|/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 <code>sudo</code> and, in fact, Old World-<code>priv</code> scripts can be copied into New World and then, when the New World <code>priv</code> is used to run them, it transparently converts them to work with sudo
|-
|-
|/usr/local/infrastructure/privbin
|/usr/local/infrastructure/privbin
|Support components of the priv-to-sudo compiler
|-
|-
|/usr/local/infrastructure/vlab
|/usr/local/infrastructure/vlab
Line 65: Line 70:
|-
|-
|/usr/local/priv
|/usr/local/priv
|[[priv]] scripts
|Looks like old files
|-
|-
|/usr/local/qemu_machines
|/usr/local/qemu_machines

Revision as of 13:37, 21 August 2023

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/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
/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