Linux Users and Groups

From CompleteNoobs
Jump to navigation Jump to search
Please Select a Licence from the LICENCE_HEADERS page
And place at top of your page
If no Licence is Selected/Appended, Default will be CC0

Default Licence IF there is no Licence placed below this notice! When you edit this page, you agree to release your contribution under the CC0 Licence

LICENCE: More information about the cc0 licence can be found here:
https://creativecommons.org/share-your-work/public-domain/cc0

The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.

You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.

Licence:

Statement of Purpose

The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").

Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.

For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.

1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:

   the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
   moral rights retained by the original author(s) and/or performer(s);
   publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;
   rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;
   rights protecting the extraction, dissemination, use and reuse of data in a Work;
   database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
   other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.

2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.

3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.

4. Limitations and Disclaimers.

   No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
   Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
   Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
   Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.

Understanding Users and Groups in Linux

In Linux, users and groups are essential concepts for managing system access and permissions. This guide will provide an in-depth explanation of users and groups in Linux, helping complete noobs to understand their roles and how they are used in the operating system.

Users

In Linux, a user is an entity that can log into the system and interact with it. Users can be either human beings or system processes that require access to system resources. Each user has a unique identifier called a User ID (UID), which is a number assigned by the system.

There are three types of users in Linux:

  • Regular users: Regular users are the most common type of user accounts. They have limited access to the system and are typically created for individuals who use the system for everyday tasks.
  • System users: System users are created for managing system processes and services. These users have limited access to the system and are not intended for human interaction. They are used to isolate and secure different system services.
  • Superuser (root): The superuser, also known as the root user, has complete access to the entire system. The root user can perform any operation on the system, including modifying system files, installing software, and creating or deleting users. It is crucial to use the root user account sparingly and only when necessary, as it can potentially cause significant harm to the system if misused.

Groups

A group in Linux is a collection of users who share certain permissions and access rights. Groups are useful for managing multiple users who need similar access to resources or files. Each group has a unique identifier called a Group ID (GID), which is a number assigned by the system.

Users can belong to one or more groups, and each group can have multiple members. By default, when a new user is created, a group with the same name as the user is also created. This group is referred to as the user's primary group.

Managing User and Group

Users

More info and options for users can be found at the Users page

Managing users and groups in Linux typically involves the following tasks:

  • Creating users: To create a new user, you can use the useradd command followed by the username. This command creates a new user account and sets up the user's home directory, default shell, and primary group.

useradd newuser


  • Modifying users': To modify an existing user's properties, you can use the usermod command. For example, you can add a user to a new group or change their primary group.

usermod -aG newgroup newuser


  • Deleting users: To delete a user account, use the userdel command followed by the username. This command will remove the user from the system and, with the -r option, delete the user's home directory and mail spool.

userdel -r newuser


  • Changing user passwords: To set or change a user's password, use the passwd command followed by the username.

passwd newuser

Group

  • Creating groups: To create a new group, use the groupadd command followed by the group name.

groupadd newgroup

  • Modifying groups: To modify an existing group's properties, use the groupmod command. For example, you can change the group name or GID.

groupmod -n newgroupname oldgroupname

  • Deleting groups: To delete a group, use the groupdel command followed by the group name.

groupdel newgroup


  • Listing users and groups: To list all the users on the system, you can use the getent command with the passwd database:

getent passwd

Similarly, to list all the groups on the system, use the getent command with the group database:

getent group

Another way to list users and groups is by checking the /etc/passwd and /etc/group files, respectively. These files store user and group information in a human-readable format.


File Ownership and Permissions

Understanding users and groups is essential for managing file ownership and permissions. In Linux, each file and directory has an owner and a group associated with it. The owner is usually the user who created the file, and the group is the primary group of the owner.

File permissions in Linux are defined for three categories of users:

  • User (u): The owner of the file
  • Group (g): The group associated with the file
  • Other (o): All other users on the system

For each category, there are three types of permissions:

  • Read (r): The ability to read the contents of a file or list the contents of a directory
  • Write (w): The ability to modify a file or create, modify, and delete files within a directory
  • Execute (x): The ability to run a file as a program or access a directory

You can view file ownership and permissions using the ls -l command. The output will display the permissions, owner, group, and other file information.

To change file ownership, use the chown command:

chown newuser:newgroup filename

To modify file permissions, use the chmod command. Permissions can be specified using numeric or symbolic notation:

chmod u+x filename       # Adds execute permission for the user (owner)
chmod 755 filename        # Sets read, write, execute for the user, and read and execute for the group and others

By understanding and effectively managing users, groups, and permissions in Linux, you can ensure a secure and well-organized system.

Sudo and su commands

The sudo and su commands in Linux are used to perform tasks with elevated privileges, typically as the root user. These commands are essential for system administration tasks that require higher permissions.

sudo

  • Sudo: The sudo command allows a permitted user to execute a command as the superuser or another user, as specified in the /etc/sudoers file.

Some examples:

  • Run a command as the root user:

sudo command

  • Update the package list and upgrade packages (requires root privileges):

sudo apt update && sudo apt upgrade

  • Edit a system configuration file using the nano text editor:

sudo nano /etc/hosts

Options:

  • -u: Run the command as a specific user. Replace username with the desired user:

sudo -u username command

  • -k: Invalidate the user's cached credentials:

sudo -k

  • -l: List the commands the current user is allowed to run:

sudo -l

su

  • Su: The su command allows you to switch to another user's account or become the superuser (root). When used without any options or arguments, it defaults to switching to the root user.

Examples:

  • Switch to the root user:

su

  • Switch to another user account. Replace username with the desired user:

su username

Options:

  • -c: Run a single command as another user, then return to the original user. Replace username with the desired user, and command with the command to be executed:

su -c 'command' username

  • -l or --login: Start a login shell, which simulates a full login as the specified user:

su -l username

Both sudo and su have their own benefits and use cases. Generally, sudo is preferred for its granular control over user permissions and auditability. The su command is useful for switching between user accounts or running a series of commands as another user. Always exercise caution when using these commands, as elevated privileges can lead to unintended system changes.