From 12e828f9d259fe3122702bac0ce454baa3c74c53 Mon Sep 17 00:00:00 2001 From: benny Vasquez Date: Tue, 10 Sep 2024 18:32:07 -0400 Subject: [PATCH 1/7] new guide --- docs/.vuepress/config.js | 7 + docs/beginners/README.md | 18 +++ docs/beginners/file-and-folder-permissions.md | 127 ++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 docs/beginners/README.md create mode 100644 docs/beginners/file-and-folder-permissions.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 2291b7dc8..9c38f77fd 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -154,6 +154,13 @@ module.exports = { '/Comparison', '/FAQ', '/Howto', + { + title: 'Beginner Series', + path: '/beginners/', + children: [ + '/beginners/file-and-folder-permissions', + ] + }, { title: 'openQA Guide', path: '/development/openQA', diff --git a/docs/beginners/README.md b/docs/beginners/README.md new file mode 100644 index 000000000..f77b481f6 --- /dev/null +++ b/docs/beginners/README.md @@ -0,0 +1,18 @@ +--- +title: 'Beginner series' +--- +###### last updated: 2024-09-10 + +# Beginner Series! + +Many new users come to Linux every day, and using AlmaLinux for the first time should be as simple as possible! This serie attempts to explain some of the base level conecepts in simple language so new users won't get immediately overwhelmed. + +- [File and Folder Permissions on AlmaLinux](file-and-folder-permissions.md) + + +# Up next! + +Once you've completed these guides, take a look at any of the other guides that interest you! + +- [Nginx - from beginning to configured!](/series/nginx/) +- [AlmaLinux System Series - various ways to interact with your AlmaLinux environment](/series/system/) \ No newline at end of file diff --git a/docs/beginners/file-and-folder-permissions.md b/docs/beginners/file-and-folder-permissions.md new file mode 100644 index 000000000..f5a1c4fbe --- /dev/null +++ b/docs/beginners/file-and-folder-permissions.md @@ -0,0 +1,127 @@ +--- +title: "AlmaLinux After-Installation Guide" +--- +
+ +| 💡 | Experience Level | ⭐☆☆☆☆ | +|--- | --------- | --------| +###### last updated: 2024-09-10 + +## Introduction + +By design, Linux has several layers of security, from the kernel all the way up to user-facing applications. One of those layers is file and folder permissions. Since the very beginning of Linux, those permissions have been a crucial aspect of security. + +And because Linux is a multi-user operating system, file and folder permissions become even more important. Think about it this way: If any user on a Linux system could access any file or folder owned by another user, security and privacy would be a problem. Because of that, Linux uses a system of permissions and ownership.  + +## Fundamental Concepts + +There are two different methods for changing folder and file permissions on Linux: + +- absolute - which requires users to know the numeric number associated with each permission. +- symbolic - which only requires the use of letters associated with users (user, group, and other)  and permissions (such as read, write, and execute).  + +## Key Takeaways + +To understand file and folder permission, there are three different types of owners: + +- User - the user who is the primary owner of a file or folder. +- Group - any user who's part of a group with access to a file or folder. +- Other - anyone with access to the system. + +There are also three different types of permissions: + +- Read - a user can view and/or copy the contents of a file. +- Write - a user can modify the contents of a file. +- Execute - a user can run the file (if it's an executable app or script). + +The above permissions hold true for both files and folders. + +If you issue the command ls -l within a directory, you'll see all of your files/folders listed along with their permissions. A typical entry might look like this: + +`-rw-rw-r--  1 jackuser jackgroup 0 Jul 16 13:04 testfile` + +Here's the breakdown of that listing: + +* - - the file type +* rw-rw-r-- - the permissions +* 1 - number of hard links +* jack - owner +* jack - group +* 0 - file size +* July 16 13:04 - modification timestamp +* testfile - the filename + +What we want to focus on is the permissions. In our example that's `rw-rw-r--`. How this breaks down is simple. The permissions section is broken into three sections: owner, group, and other, each of which can have read (r), write (w), and/or execute (x) permissions. So our example breaks down like this: + +- owner has read and write permissions. +- group has read and write permissions. +- other has read permissions. + +If you see a `-` character, it means there are no permissions set for that. If the file had full permissions for all users, it would look like this: + +`rwxrwxrwx` + +So, `rwx` for owner, `rwx` for group, and `rwx` for other. + +The question now is, how do we change that? With the chmod command, which has two different modes: absolute and symbolic. The easiest method is symbolic. Why? With absolute mode, you have to remember the following: + +- read permission = 4 +- write permission = 2 +- execute permission = 1 +- no permission = 0 + +To change the permission in absolute mode, you add the permissions you want for each group. For example, if you want owner to have `rwx` permission, the total is 7. If you wanted group to have read and write permission, the total is 6, if you wanted to give other only read permission, the total is 4. String them together and you get 764. To make that change, the command would be: + +`chmod 764 testfile` + +For those who don't want to worry about memorizing the value assigned to each permission, you can use the symbolic method. To use this method, you have to assign by group, which (if you'll remember) are (u)ser, (g)roup, and (o)ther. + +Let's say you want to give the 764 permission to the `testfile` file, using symbolic method. To do that, we'll first change the permission for owner with: + +`chmod u+rwx testfile` + +Next, we assign the rw permission to group with: + +`chmod g+rw testfile` + +Finally, we set the permissions for other with: + +`chmod o+r testfile` + +You could also use - to remove permissions. For example, if you want to remove group write permissions from the file, that command would be: + +`chmod g-w testfile` + +You can also change the permissions for certain or all groups at once. Say you want to give user and group read/write permissions. That could be achieved with: + +`chmod ug+rw testfile` + +If you accidentally give both group and other executable permissions, you could strip it with: + +`chmod go-x testfile` + +You could also string them together like this: + +`chmod ug+rw, o-x testfile` + +One final option is a for all. You could give all users read permission to a file with: + +`chmod a+r testfile` + +But what about folders? It's done the same way, the only difference being that you have the ability to not just change the permissions of the folder but all sub-folders and files within the folder. If you have the folder PROJECT1 and you wanted to give read and write permissions for group to everything within the folder, the command would use the -R (recursive) option like so: + +`chmod -R ug+rw PROJECT1` + +Finally, there's ownership. Every file on a Linux system has both a user and a group ownership. Remember, in our example above, both the user and owner were listed as jack. What if you had a group on your system, called dev1 and you want to change the group ownership to that? Thanks to the chown command, it's very simple: + +`chown :dev1 testfile` + +Notice dev1 is on the right side of the : character. That's because ownership is listed as user:group. If you wanted to change just the user ownership, the command would be something like this: + +`chown olivia: testfile` + +The above command would change the user ownership to olivia. If you want to change both user and group ownership, the command could be: + +`chown olivia:dev1 testfile` + +And that is the basics of file and folder permissions in AlmaLinux. This skill will come in very handy throughout your career as a Linux user or admin. \ No newline at end of file From 74fc099b25a1184cfe1af0b2c78be8cf9e19b830 Mon Sep 17 00:00:00 2001 From: benny Vasquez Date: Tue, 10 Sep 2024 19:17:34 -0400 Subject: [PATCH 2/7] save point --- docs/beginners/README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/beginners/README.md b/docs/beginners/README.md index f77b481f6..823ff467c 100644 --- a/docs/beginners/README.md +++ b/docs/beginners/README.md @@ -7,8 +7,16 @@ title: 'Beginner series' Many new users come to Linux every day, and using AlmaLinux for the first time should be as simple as possible! This serie attempts to explain some of the base level conecepts in simple language so new users won't get immediately overwhelmed. -- [File and Folder Permissions on AlmaLinux](file-and-folder-permissions.md) +- [File and Folder Permissions on AlmaLinux](/beginners/file-and-folder-permissions/) +- [User and group management explained](/beginners/users-and-groups/) +## Related articles + +Some of our other documentation might come in handy, too! + +- [Installation of AlmaLinux](/documentation/installation-guide/) +- [After installing, what comes next?](/documentation/after-installation-guide/) +- [Run AlmaLinux on your Windows device!](/documentation/wsl/) # Up next! From dd3150f8b13e37ff0dbd9d4ceac3992d4c916c98 Mon Sep 17 00:00:00 2001 From: benny Vasquez Date: Tue, 10 Sep 2024 19:41:33 -0400 Subject: [PATCH 3/7] Adding user and group guide --- docs/.vuepress/config.js | 1 + docs/.vuepress/public/images/usergroup1.jpg | Bin 0 -> 47234 bytes docs/.vuepress/public/images/usergroup2.jpg | Bin 0 -> 30300 bytes docs/beginners/users-and-groups.md | 104 ++++++++++++++++++++ 4 files changed, 105 insertions(+) create mode 100644 docs/.vuepress/public/images/usergroup1.jpg create mode 100644 docs/.vuepress/public/images/usergroup2.jpg create mode 100644 docs/beginners/users-and-groups.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 9c38f77fd..04aa22509 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -159,6 +159,7 @@ module.exports = { path: '/beginners/', children: [ '/beginners/file-and-folder-permissions', + '/beginners/users-and-groups', ] }, { diff --git a/docs/.vuepress/public/images/usergroup1.jpg b/docs/.vuepress/public/images/usergroup1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3ef2a45a799b54d6533e59facd991799e17898e3 GIT binary patch literal 47234 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 literal 0 HcmV?d00001 diff --git a/docs/.vuepress/public/images/usergroup2.jpg b/docs/.vuepress/public/images/usergroup2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bbf37248217fcf829857ad94c0c447e6ec58da59 GIT binary patch literal 30300 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 SwQn7BRvNAot;I2WGVl-ITIjj} literal 0 HcmV?d00001 diff --git a/docs/beginners/users-and-groups.md b/docs/beginners/users-and-groups.md new file mode 100644 index 000000000..ffb9e7bfb --- /dev/null +++ b/docs/beginners/users-and-groups.md @@ -0,0 +1,104 @@ +--- +title: "User and group management via the command line and GUI" +--- +
+ +| 💡 | Experience Level | ⭐☆☆☆☆ | +|--- | --------- | --------| +###### last updated: 2024-09-10 + +## Introduction + +AlmaLinux has several key components geared toward security and privacy. Although permissions and ownership tend to get the most attention in that regard, user and group management is just another piece of the puzzle. + +Of course, user and group management isn't only about security, as it's also there to help make the management of assets on your Linux machines even easier. And given that Linux is a multi-user environment, having the tools to properly manage those users and groups is a must.\ +Fortunately, the open-source operating system has everything you need built right in. + +## Fundamental Concepts + +Users and groups can be managed in two ways: + +- The command line interface (CLI) +- The desktop graphical user interface (GUI) + +Which option you use will depend on the access you have to the machine in question and whether or not you prefer the terminal or a GUI. + +## Key Takeaways + +### Managing users from the command line + +The first thing to deal with is user management and we'll start with the command line. Let's say that you need to create a new user and you're doing so after logging into your AlmaLinux server via SSH. + +The process of creating a user is simple. Once you've logged into the server, issue the command: + +`sudo adduser USERNAME` + +::: warning +In this article we use all-caps to indicate something that should be considered a variable - something you should be changing. Usernames, groups, and the like should always be only lowercase, for long term compatibility reasons. +::: + +In this case, `USERNAME` is the user you want to add. The `adduser` command functions differently on various distributions, but on AlmaLinux you at least have to set a password for the user (otherwise they can't log in). To do that, issue the command: + +`sudo passwd -e USERNAME` + +Where `USERNAME` is the name of the new user. + +The -e option is used to automatically expire a user's password. This way, the first time a user logs in, they can set their password. If you don't do this, it means you (or the admin who took care of the task) will know that user's password and that's not either secure or private. + +There are other tasks you can undertake to manage users from the command line, such as: + +- Lock a user account - `sudo passwd -l USERNAME` +- Unlock a user account - `sudo passwd -u USERNAME` +- Delete a user account - `sudo userdel USERNAME` +- Delete a user and their home directory - `sudo userdel -r USERNAME` + +### Managing users from the GUI + +If you prefer a GUI, you're in luck, as AlmaLinux has the tools you need to make managing users simple.\ +To access this feature, open Settings and click Users in the left sidebar. On this page, you first must Unlock the settings by clicking Unlock (Figure 1) and then typing your sudo password. + +![A screenshot of the Users interface of Gnome](/images/usergroup1.jpg) +_You should see all of your current users listed here._ + +Once you've done that, click Add User and then, in the resulting pop-up (Figure 2), fill out the user information. + +![A screenshot of the Password interface on Gnome.](/images/usergroup2.jpg) +_If you go this route, you'll want to use the `passwd -e` command to expire the user's password, so they can set a new one when they next log in._ + +If the new user is to be an administrator, make sure to first click the Administrator tab before adding the information. After completing this, click Add and your user is ready. + +The one caveat to this process is that you can't manage groups via the GUI and you can't expire their password. Because of this, you'll still need to use the command line to finish up. + +## Managing groups from the command line + +Groups are a very powerful feature that makes it possible to more easily control who has access to what files and folders. For example, you could have a group called developers that has access to the `/dev` folder. Any member of that group would have access to the folder and, at any time, you could remove a member from the group to prevent them from accessing those resources. + +That's far easier than trying to manage access to files and folders on a case-by-case basis. + +To add a new group, the command is: + +`sudo groupadd GROUPNAME` + +Where `GROUPNAME` is the name of the group to be added. + +Next, you'll want to add users to the group, which is done with the `usermod` command like so: + +`sudo usermod -aG GROUPNAME USERNAME` + +Where `GROUPNAME` is the name of the group in question and `USERNAME` is the name of the user to be added to the group. The option `a` is for append and `G` is for group. + +Here's a handy trick. You can create a new user and add the user to the required group(s) with a single command. Let's say you want to add the user `nathan` with a primary group `users` and secondary groups `wheel`, `developers`, `admins`, and `staff`. The command for this would be: + +`sudo useradd -g users -G wheel,developers,admins,staff nathan` + +It's important that there are no spaces between group names. + +If you want to remove a user from a group, the command would be: + +`usermod -rG GROUPNAME USERNAME` + +Where `GROUPNAME` is the group to be removed and `USERNAME` is the username. + +Remember, any time you create a new user, you should immediately expire their password, so the user can set one themselves. + +And that's the basics of user and group management in Linux. There's a lot more to learn, so we would recommend viewing the man pages for each command listed here (such as `man adduser`, `man groupadd`, and `man usermod`). \ No newline at end of file From 12aa3ddb4dc7e487302f3a25a4e26dd4b73f19bf Mon Sep 17 00:00:00 2001 From: Parris Lucas <1635152+GrooveCS@users.noreply.github.com> Date: Thu, 19 Dec 2024 18:28:32 +0000 Subject: [PATCH 4/7] Proof Beginners Series Guide --- docs/beginners/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/beginners/README.md b/docs/beginners/README.md index 823ff467c..aea6d6369 100644 --- a/docs/beginners/README.md +++ b/docs/beginners/README.md @@ -5,14 +5,14 @@ title: 'Beginner series' # Beginner Series! -Many new users come to Linux every day, and using AlmaLinux for the first time should be as simple as possible! This serie attempts to explain some of the base level conecepts in simple language so new users won't get immediately overwhelmed. +Numerous new users come to Linux every day, and using AlmaLinux for the first time should be a straightforward experience. This series takes the time to explain base-level concepts in a simple language, providing a reassuring guide for new users so they won't feel immediately overwhelmed. Here is how to manage common issues using AlmaLinux: -- [File and Folder Permissions on AlmaLinux](/beginners/file-and-folder-permissions/) -- [User and group management explained](/beginners/users-and-groups/) +- [File and Folder Permissions](/beginners/file-and-folder-permissions/) +- [User and Group Management](/beginners/users-and-groups/) ## Related articles -Some of our other documentation might come in handy, too! +Some of our other documentation will come in handy, too! - [Installation of AlmaLinux](/documentation/installation-guide/) - [After installing, what comes next?](/documentation/after-installation-guide/) @@ -20,7 +20,7 @@ Some of our other documentation might come in handy, too! # Up next! -Once you've completed these guides, take a look at any of the other guides that interest you! +Once you've completed these guides, here are a few other guides to support you! -- [Nginx - from beginning to configured!](/series/nginx/) -- [AlmaLinux System Series - various ways to interact with your AlmaLinux environment](/series/system/) \ No newline at end of file +- [Nginx - From Beginning to Configure!](/series/nginx/) +- [AlmaLinux System Series - Ways to interact with your AlmaLinux environment](/series/system/) \ No newline at end of file From 3d6388ee14f07bbc5f890481cee3026c2c46c6b3 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 1 Dec 2025 22:54:50 +0000 Subject: [PATCH 5/7] Apply Prettier format --- docs/beginners/README.md | 7 ++- docs/beginners/file-and-folder-permissions.md | 46 +++++++++---------- docs/beginners/users-and-groups.md | 20 ++++---- 3 files changed, 37 insertions(+), 36 deletions(-) diff --git a/docs/beginners/README.md b/docs/beginners/README.md index e9e975175..5f810177e 100644 --- a/docs/beginners/README.md +++ b/docs/beginners/README.md @@ -1,13 +1,12 @@ --- -title: 'Beginner series' +title: "Beginner series" --- - # Beginner Series! -Numerous new users come to Linux every day, and using AlmaLinux for the first time should be a straightforward experience. This series takes the time to explain base-level concepts in a simple language, providing a reassuring guide for new users so they won't feel immediately overwhelmed. Here is how to manage common issues using AlmaLinux: +Numerous new users come to Linux every day, and using AlmaLinux for the first time should be a straightforward experience. This series takes the time to explain base-level concepts in a simple language, providing a reassuring guide for new users so they won't feel immediately overwhelmed. Here is how to manage common issues using AlmaLinux: -- [File and Folder Permissions](/beginners/file-and-folder-permissions/) +- [File and Folder Permissions](/beginners/file-and-folder-permissions/) - [User and Group Management](/beginners/users-and-groups/) ## Related articles diff --git a/docs/beginners/file-and-folder-permissions.md b/docs/beginners/file-and-folder-permissions.md index a2cf2e221..0fb4cf350 100644 --- a/docs/beginners/file-and-folder-permissions.md +++ b/docs/beginners/file-and-folder-permissions.md @@ -12,22 +12,22 @@ And because Linux is a multi-user operating system, file and folder permissions There are two different methods for changing folder and file permissions on Linux: -- absolute - which requires users to know the numeric number associated with each permission. -- symbolic - which only requires the use of letters associated with users (user, group, and other)  and permissions (such as read, write, and execute).  +- absolute - which requires users to know the numeric number associated with each permission. +- symbolic - which only requires the use of letters associated with users (user, group, and other)  and permissions (such as read, write, and execute).  ## Key Takeaways To understand file and folder permission, there are three different types of owners: -- User - the user who is the primary owner of a file or folder. -- Group - any user who's part of a group with access to a file or folder. -- Other - anyone with access to the system. +- User - the user who is the primary owner of a file or folder. +- Group - any user who's part of a group with access to a file or folder. +- Other - anyone with access to the system. There are also three different types of permissions: -- Read - a user can view and/or copy the contents of a file. -- Write - a user can modify the contents of a file. -- Execute - a user can run the file (if it's an executable app or script). +- Read - a user can view and/or copy the contents of a file. +- Write - a user can modify the contents of a file. +- Execute - a user can run the file (if it's an executable app or script). The above permissions hold true for both files and folders. @@ -37,20 +37,20 @@ If you issue the command ls -l within a directory, you'll see all of your files/ Here's the breakdown of that listing: -* - - the file type -* rw-rw-r-- - the permissions -* 1 - number of hard links -* jack - owner -* jack - group -* 0 - file size -* July 16 13:04 - modification timestamp -* testfile - the filename +- - - the file type +- rw-rw-r-- - the permissions +- 1 - number of hard links +- jack - owner +- jack - group +- 0 - file size +- July 16 13:04 - modification timestamp +- testfile - the filename What we want to focus on is the permissions. In our example that's `rw-rw-r--`. How this breaks down is simple. The permissions section is broken into three sections: owner, group, and other, each of which can have read (r), write (w), and/or execute (x) permissions. So our example breaks down like this: -- owner has read and write permissions. -- group has read and write permissions. -- other has read permissions. +- owner has read and write permissions. +- group has read and write permissions. +- other has read permissions. If you see a `-` character, it means there are no permissions set for that. If the file had full permissions for all users, it would look like this: @@ -60,10 +60,10 @@ So, `rwx` for owner, `rwx` for group, and `rwx` for other. The question now is, how do we change that? With the chmod command, which has two different modes: absolute and symbolic. The easiest method is symbolic. Why? With absolute mode, you have to remember the following: -- read permission = 4 -- write permission = 2 -- execute permission = 1 -- no permission = 0 +- read permission = 4 +- write permission = 2 +- execute permission = 1 +- no permission = 0 To change the permission in absolute mode, you add the permissions you want for each group. For example, if you want owner to have `rwx` permission, the total is 7. If you wanted group to have read and write permission, the total is 6, if you wanted to give other only read permission, the total is 4. String them together and you get 764. To make that change, the command would be: diff --git a/docs/beginners/users-and-groups.md b/docs/beginners/users-and-groups.md index ffb9e7bfb..09c8e470e 100644 --- a/docs/beginners/users-and-groups.md +++ b/docs/beginners/users-and-groups.md @@ -1,10 +1,12 @@ --- title: "User and group management via the command line and GUI" --- +
-| 💡 | Experience Level | ⭐☆☆☆☆ | -|--- | --------- | --------| +| 💡 | Experience Level | ⭐☆☆☆☆ | +| --- | ---------------- | ------ | + ###### last updated: 2024-09-10 ## Introduction @@ -18,8 +20,8 @@ Fortunately, the open-source operating system has everything you need built righ Users and groups can be managed in two ways: -- The command line interface (CLI) -- The desktop graphical user interface (GUI) +- The command line interface (CLI) +- The desktop graphical user interface (GUI) Which option you use will depend on the access you have to the machine in question and whether or not you prefer the terminal or a GUI. @@ -47,10 +49,10 @@ The -e option is used to automatically expire a user's password. This way, the f There are other tasks you can undertake to manage users from the command line, such as: -- Lock a user account - `sudo passwd -l USERNAME` -- Unlock a user account - `sudo passwd -u USERNAME` -- Delete a user account - `sudo userdel USERNAME` -- Delete a user and their home directory - `sudo userdel -r USERNAME` +- Lock a user account - `sudo passwd -l USERNAME` +- Unlock a user account - `sudo passwd -u USERNAME` +- Delete a user account - `sudo userdel USERNAME` +- Delete a user and their home directory - `sudo userdel -r USERNAME` ### Managing users from the GUI @@ -101,4 +103,4 @@ Where `GROUPNAME` is the group to be removed and `USERNAME` is the username. Remember, any time you create a new user, you should immediately expire their password, so the user can set one themselves. -And that's the basics of user and group management in Linux. There's a lot more to learn, so we would recommend viewing the man pages for each command listed here (such as `man adduser`, `man groupadd`, and `man usermod`). \ No newline at end of file +And that's the basics of user and group management in Linux. There's a lot more to learn, so we would recommend viewing the man pages for each command listed here (such as `man adduser`, `man groupadd`, and `man usermod`). From c12d89276cee25dfa7bb66e8ec81723b540905ec Mon Sep 17 00:00:00 2001 From: benny Vasquez Date: Mon, 1 Dec 2025 18:01:26 -0500 Subject: [PATCH 6/7] fixing the menu and formatting --- docs/.vuepress/config.js | 14 ++++++++------ docs/beginners/users-and-groups.md | 9 ++------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 4d3d1bc13..ed63288ca 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -199,12 +199,6 @@ module.exports = { "/Comparison", "/documentation/nvidia", "/FAQ", - "/Howto", - { - title: "Beginner Series", - path: "/beginners/", - children: ["/beginners/file-and-folder-permissions"], - }, { title: "openQA Guide", path: "/development/openQA", @@ -213,6 +207,14 @@ module.exports = { title: "Howto Series", path: "/series/", children: [ + { + title: "Beginner Series", + path: "/beginners/", + children: [ + "/beginners/file-and-folder-permissions", + "/beginners/users-and-groups", + ], + }, "/series/LAMP-server", { title: "Nginx Series", diff --git a/docs/beginners/users-and-groups.md b/docs/beginners/users-and-groups.md index 09c8e470e..3514d78bf 100644 --- a/docs/beginners/users-and-groups.md +++ b/docs/beginners/users-and-groups.md @@ -2,13 +2,6 @@ title: "User and group management via the command line and GUI" --- -
- -| 💡 | Experience Level | ⭐☆☆☆☆ | -| --- | ---------------- | ------ | - -###### last updated: 2024-09-10 - ## Introduction AlmaLinux has several key components geared toward security and privacy. Although permissions and ownership tend to get the most attention in that regard, user and group management is just another piece of the puzzle. @@ -60,11 +53,13 @@ If you prefer a GUI, you're in luck, as AlmaLinux has the tools you need to make To access this feature, open Settings and click Users in the left sidebar. On this page, you first must Unlock the settings by clicking Unlock (Figure 1) and then typing your sudo password. ![A screenshot of the Users interface of Gnome](/images/usergroup1.jpg) + _You should see all of your current users listed here._ Once you've done that, click Add User and then, in the resulting pop-up (Figure 2), fill out the user information. ![A screenshot of the Password interface on Gnome.](/images/usergroup2.jpg) + _If you go this route, you'll want to use the `passwd -e` command to expire the user's password, so they can set a new one when they next log in._ If the new user is to be an administrator, make sure to first click the Administrator tab before adding the information. After completing this, click Add and your user is ready. From 956d19554c513d9923830488ddf3b6f7df93f53a Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 1 Dec 2025 23:02:15 +0000 Subject: [PATCH 7/7] Apply Prettier format --- docs/.vuepress/config.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index ed63288ca..119b7569f 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -207,14 +207,14 @@ module.exports = { title: "Howto Series", path: "/series/", children: [ - { - title: "Beginner Series", - path: "/beginners/", - children: [ - "/beginners/file-and-folder-permissions", - "/beginners/users-and-groups", - ], - }, + { + title: "Beginner Series", + path: "/beginners/", + children: [ + "/beginners/file-and-folder-permissions", + "/beginners/users-and-groups", + ], + }, "/series/LAMP-server", { title: "Nginx Series",