In Unix -based computer operating systems , init (short for initialization ) is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes . Init is started by the kernel during the booting process; a kernel panic will occur if the kernel is unable to start it, or it should die for any reason. Init is typically assigned process identifier 1.
30-629: In Unix systems such as System III and System V , the design of init has diverged from the functionality provided by the init in Research Unix and its BSD derivatives. Up until the early 2010s, most Linux distributions employed a traditional init that was somewhat compatible with System V, while some distributions such as Slackware use BSD-style startup scripts, and others still such as Gentoo have their own customized versions. Since then, several additional init implementations have been created, attempting to address design limitations in
60-434: A few systems, such as Plan 9 , there is no superuser at all. In Windows NT and later systems derived from it (such as Windows 2000 , Windows XP , Windows Server 2003 , and Windows Vista / 7 / 8 / 10 / 11 ), there must be at least one administrator account (Windows XP and earlier) or one able to elevate privileges to superuser (Windows Vista/7/8/10/11 via User Account Control ). In Windows XP and earlier systems, there
90-461: A given system. On Linux distributions defaulting to runlevel 5 in the table on the right, runlevel 5 invokes a multiuser graphical environment running the X Window System , usually with a display manager like GDM or KDM . However, the Solaris and illumos operating systems typically reserve runlevel 5 to shut down and automatically power off the machine. On most systems, all users can check
120-421: A machine, characterized by the processes and daemons running in each of them. In general, there are seven runlevels, out of which three runlevels are considered "standard", as they are essential to the operation of a system: Aside from these standard ones, Unix and Unix-like systems treat runlevels somewhat differently. The common denominator, the /etc/inittab file, defines what each configured runlevel does in
150-428: A normal user account, since simple typographical errors in entering commands can cause major damage to the system. Instead, a normal user account should be used, and then either the su (substitute user) or sudo (substitute user do) command is used. The su approach requires the user to know the root password, while the sudo method requires that the user be set up with the power to run "as root" within
180-400: A process with elevated privileges. This poses a security risk that led to the development of UAC. Users can set a process to run with elevated privileges from standard accounts by setting the process to "run as administrator" or using the runas command and authenticating the prompt with credentials (username and password) of an administrator account. Much of the benefit of authenticating from
210-451: A prompt will appear to authenticate running a process with elevated privileges. Usually, no user credentials are required to authenticate the UAC prompt in administrator accounts but authenticating the UAC prompt requires entering the username and password of an administrator in standard user accounts. In Windows XP (and earlier systems) administrator accounts, authentication is not required to run
240-453: A root account. Regardless of the name, the superuser always has a user ID of 0. The root user can do many things an ordinary user cannot, such as changing the ownership of files and binding to network ports numbered below 1024. The name root may have originated because root is the only user account with permission to modify the root directory of a Unix system. This directory was originally considered to be root's home directory , but
270-458: A site-specific /etc/rc.local file that is run in a sub-shell near the end of the boot sequence. A fully modular system was introduced with NetBSD 1.5 and ported to FreeBSD 5.0 and successors. This system executes scripts in the /etc/rc.d directory. Unlike System V's script ordering, which is derived from the filename of each script, this system uses explicit dependency tags placed within each script. The order in which scripts are executed
300-572: A standard account is negated if the administrator account's credentials being used has a blank password (as in the built-in administrator account in Windows XP and earlier systems), hence why it is recommended to set a password for the built-in administrator account. In Windows NT , 2000 and higher, the root user is the Administrator account. In Novell NetWare , the superuser was called "supervisor", later "admin". In OpenVMS, "SYSTEM"
330-503: A superuser account is capable of making unrestricted, potentially adverse, system-wide changes. In Unix-like computer OSes (such as Linux ), root is the conventional name of the user who has all rights or permissions (to all files and programs) in all modes (single- or multi-user). Alternative names include baron in BeOS and avatar on some Unix variants. BSD often provides a toor ("root" written backward) account in addition to
SECTION 10
#1732797713283360-423: A system from runlevel 3 to 4 might only start the local X server. Going back to runlevel 3, it would be stopped again. Traditionally, one of the major drawbacks of init is that it starts tasks serially, waiting for each to finish loading before moving on to the next. When startup processes end up Input/output (I/O) blocked, this can result in long delays during boot. Speeding up I/O, e.g. by using SSDs, may shorten
390-471: Is a built-in administrator account that remains hidden when a user administrator-equivalent account exists. This built-in administrator account is created with a blank password. This poses security risks as local users would be able to access the computer via the built-in administrator account if the password is left blank, so the account is disabled by default in Windows Vista and later systems due to
420-441: Is determined by the rcorder utility based on the requirements stated in these tags. When compared to its predecessors, AT&T's UNIX System III introduced a new style of system startup configuration, which survived (with modifications) into UNIX System V and is therefore called the "SysV-style init". At any moment, a running System V is in one of the predetermined number of states, called runlevels . At least one runlevel
450-413: Is no way back. Doing so is sometimes called dropping root privileges and is often done as a security measure to limit the damage from possible contamination of the process. Another case is login and other programs that ask users for credentials and in case of successful authentication allow them to run programs with privileges of their accounts. It is often recommended that root is never used as
480-441: Is simple and easy to edit manually. However, new software added to the system may require changes to existing files that risk producing an unbootable system. BSD init was, prior to 4.3BSD, the same as Research UNIX's init; in 4.3BSD , it added support for running a windowing system such as X on graphical terminals under the control of /etc/ttys . To remove the requirement to edit /etc/rc , BSD variants have long supported
510-512: Is the normal operating state of the system; typically, other runlevels represent single-user mode (used for repairing a faulty system), system shutdown, and various other states. Switching from one runlevel to another causes a per-runlevel set of scripts to be run, which typically mount filesystems, start or stop daemons , start or stop the X Window System , shutdown the machine, etc. The runlevels in System ;V describe certain states of
540-472: Is the superuser account for the OS. On many older OSes on computers intended for personal and home use, anyone using the system had full privileges. Many such systems, such as DOS , did not have the concept of multiple accounts, and although others such as Windows 95 did allow multiple accounts, this was only so that each could have its own preferences profile – all users still had full administrative control over
570-423: The /etc/sudoers file, typically indirectly by being made a member of the wheel , adm , admin , or sudo group. For a number of reasons, the sudo approach is now generally preferred – for example it leaves an audit trail of who has used the command and what administrative operations they performed. Some OSes, such as macOS and some Linux distributions (most notably Ubuntu ), automatically give
600-445: The C shell (csh) and screen editing. Third-party variants of System III include (early versions of) HP-UX , IRIX , IS/3 and PC/IX , PC-UX , PNX , SINIX , Venix and Xenix . Superuser In computing, the superuser is a special user account used for system administration . Depending on the operating system (OS), the actual name of this account might be root , administrator , admin or supervisor . In some cases,
630-505: The UNIX Filesystem Hierarchy Standard now recommends that root's home be at /root . The first process bootstrapped in a Unix-like system, usually called init , runs with root privileges. It spawns all other processes directly or indirectly, which inherit their parents' privileges. Only a process running as root is allowed to change its user ID to that of another user; once it has done so, there
SECTION 20
#1732797713283660-520: The actual name of the account is not the determining factor; on Unix-like systems, for example, the user with a user identifier (UID) of zero is the superuser [i.e., uid=0], regardless of the name of that account; and in systems which implement a role-based security model, any user with the role of superuser (or its synonyms) can carry out all actions of the superuser account. The principle of least privilege recommends that most users and applications run under an ordinary account to perform their work, as
690-440: The current runlevel with either the runlevel or who -r command. The root user typically changes the current runlevel by running the telinit or init commands. The /etc/inittab file sets the default runlevel with the :initdefault: entry. On Unix systems, changing the runlevel is achieved by starting only the missing services (as each level defines only those that are started / stopped). For example, changing
720-544: The delays but it does not address the root cause. Various efforts have been made to replace the traditional init daemons to address this and other design problems, including: As of February 2019, systemd has been adopted by most major Linux distributions. UNIX System III UNIX System III (or System 3 ) is a discontinued version of the Unix operating system released by AT&T 's Unix Support Group (USG). AT&T announced System III in late 1981, and it
750-445: The initial user created the ability to run as root via sudo – but this is configured to ask them for their password before doing administrative actions. In some cases the actual root account is disabled by default, so it can't be directly used. In mobile platform-oriented OSs such as Apple iOS and Android , superuser access is inaccessible by design, but generally the security system can be exploited in order to obtain it. In
780-601: The introduction of User Account Control (UAC). Remote users are unable to access the built-in administrator account. A Windows administrator account is not an exact analogue of the Unix root account – Administrator, the built-in administrator account, and a user administrator account have the same level of privileges. The default user account created in Windows systems is an administrator account. Unlike macOS, Linux, and Windows Vista/7/8/10 administrator accounts, administrator accounts in Windows systems without UAC do not insulate
810-449: The system from most of the pitfalls of full root access. One of these pitfalls includes decreased resilience to malware infections. To avoid this and maintain optimal system security on pre-UAC Windows systems, it is recommended to simply authenticate when necessary from a standard user account, either via a password set to the built-in administrator account, or another administrator account. In Windows Vista/7/8/10/11 administrator accounts,
840-482: The traditional versions. These include launchd , the Service Management Facility , systemd , Runit and OpenRC . Research Unix init runs the initialization shell script located at /etc/rc , then launches getty on terminals under the control of /etc/ttys . There are no runlevels; the /etc/rc file determines what programs are run by init. The advantage of this system is that it
870-591: Was first released outside of Bell Labs in 1982. UNIX System III was a mix of various AT&T Unix systems: Version 7 Unix , PWB/UNIX 2.0, CB UNIX 3.0, UNIX/RT and UNIX/32V . System III supported the DEC PDP-11 and VAX computers. The system was apparently called System III because it was considered the outside release of UNIX/TS 3.0.1 and CB UNIX 3 which were internally supported Bell Labs Unices; its manual refers to it as UNIX Release 3.0 and there were no Unix versions called System I or System II. There
900-467: Was no official release of UNIX/TS 4.0 (which would have been System IV ) either, so System III was succeeded by System V , based on UNIX/TS 5.0. System III introduced new features such as named pipes , the uname system call and command, and the run queue . It also combined various improvements to Version 7 Unix by outside organizations. However, it did not include notable additions made in BSD such as
#282717