Difference between revisions of "Introduction to Linux in HPC/Users and permissions"

From HPC Wiki
Introduction to Linux in HPC/Users and permissions
Jump to navigation Jump to search
(Created page with "__TOC__ === Video === <!--T:5--> <youtube width="600" height="400" right>IfD9IPixgpo</youtube> [https://git-ce.rwth-aachen.de/hpc.nrw/ap2/tutorials/linux/-/blob/master/Slid...")
 
m (Tweak page sorting)
 
(37 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Category:Tutorials|User and Permissions (Linux)]]<nowiki />
 +
{{DISPLAYTITLE:Users and Permissions}}<nowiki />
 +
{{Syllabus Introduction to Linux}}<nowiki />
 
__TOC__
 
__TOC__
 +
 +
This tutorial covers the concept of users (and groups) in the multi-user operating system Linux.
 +
It will also explain the various permissions that a file or directory can have, how to determine and change them. As an example, it will show how to make a Python script executable by the user.
  
 
=== Video === <!--T:5-->
 
=== Video === <!--T:5-->
  
<youtube width="600" height="400" right>IfD9IPixgpo</youtube>
+
<youtube width="600" height="340" right>V7laggm16mc</youtube>
 +
 
 +
([[Media:HPC.NRW_Introduction_to_Linux_in_HPC_06_Users_and_Permissions.pdf | Slides as pdf]])
 +
 
 +
=== Quiz === <!--T:5--> 
 +
 
 +
 
 +
{{hidden begin
 +
|title = Who can change the permissions of a file?
 +
}}
 +
<quiz display=simple>
 +
{
 +
|type="()"}
 +
+ the owner of this file
 +
|| Explanation: Correct, the owner of a file can change the permissions of this file.
 +
- every user
 +
|| Explanation: Wrong: users other than the owner of a file cannot change the permissions of a file, because it does not belong to them.
 +
- users in the same group
 +
|| Explanation: Wrong: although they belong to the same group, the cannot change the permissions of a file.
 +
</quiz>
 +
{{hidden end}}
 +
 
 +
{{hidden begin
 +
|title = How is the top-level admin (or superuser) called in Linux?
 +
}}
 +
<quiz display=simple>
 +
{
 +
|type="()"}
 +
- god
 +
|| Explanation: Wrong.
 +
- guru
 +
|| Explanation: Wrong.
 +
+ root
 +
|| Explanation: Exactly!
 +
</quiz>
 +
{{hidden end}}
 +
 
 +
{{hidden begin
 +
|title = Which one of the following is not a file permission?
 +
}}
 +
<quiz display=simple>
 +
{
 +
|type="()"}
 +
- Write
 +
|| Explanation: Wrong.
 +
- Read
 +
|| Explanation: Wrong.
 +
- Execute
 +
|| Explanation: Wrong.
 +
+ Size
 +
|| Explanation: Correct - only read, write and execute are file permissions in Linux.
 +
</quiz>
 +
{{hidden end}}
 +
 
 +
{{hidden begin
 +
|title = Who can change the owner or group of a file?
 +
}}
 +
<quiz display=simple>
 +
{
 +
|type="()"}
 +
- the owner of that file
 +
|| Explanation: Wrong, only root can do that.
 +
- everyone in this group
 +
|| Explanation: Wrong, only root can do that.
 +
+ admin (root)
 +
|| Explanation: Correct, only root can change the owner or group of a file with chown.
 +
</quiz>
 +
{{hidden end}}
 +
 
 +
{{hidden begin
 +
|title = Which command can prevent other users not in your group from writing to input.dat?
 +
}}
 +
<quiz display=simple>
 +
{
 +
|type="()"}
 +
- chmod u-w input.dat
 +
||
 +
+ chmod o-w input.dat
 +
|| Explanation: The chmod command changes file permission. u represents the user who owns the file. g means other users in your group and o stands for other users not in your group. -w means to remove the write permission. Therefore B is the correct answer.
 +
- chmod g-w input.dat
 +
||
 +
</quiz>
 +
{{hidden end}}
 +
 
 +
 
 +
=== Exercises in Terminal (slide 89) === <!--T:5--> 
 +
 
 +
1. List your home-directory, so that you can see users and permissions. Pick a file of your choice and explain 1) whom it belongs, 2) to which group it belongs and 3) what permissions all other users have for this file.
 +
  {| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 +
    | <strong>Answer:</strong>
 +
    |-
 +
    |
 +
      List your home-directory: ls -l $HOME or ll ~
 +
      The owner of a file can be found in the middle, right to the first small number.
 +
      The group follows to the right of the owner.
 +
      The permissions for other users are in the third rwx-grouping, i.e., left to the first small number.
 +
      If these permission state e.g., "r--", then the file is readable from everyone else, but neither writeable nor executable.
 +
    |}
  
[https://git-ce.rwth-aachen.de/hpc.nrw/ap2/tutorials/linux/-/blob/master/Slides/Linux_Intro/Linux_Intro.pdf Linux Introduction]  Slides 67 - 88 (22 pages)
 
  
 +
2. Create an empty file, make it read-only, make it executable.
 +
  {| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 +
    | <strong>Answer:</strong>
 +
    |-
 +
    |
 +
      Create an empty file: touch file.txt.
 +
      make it read-only: chmod a-w file.txt; chmod a-x file.txt; chmod a+r file.txt.
 +
      make it executable: chmod a+x file.txt.
  
=== Slide Layout === <!--T:5-->
+
      Explanation: The touch command can be used to create an empty file. In this example it is file.txt.
 +
          chmod a-w file.txt; chmod a-x file.txt; chmod a+r file.txt means to execute the three commands subsequently.
 +
          chmod a-w file.txt removes the write permission for all users.
 +
          chmod a-x file.txt removes the executable permission for all users.
 +
          chmod a+r file.txt adds the read permission for all users.
 +
          chmod a+x file.txt makes file.txt executable for all users.
 +
    |}
  
  
    page 1:
+
{{Tutorial Navigation
        Linux is a multi-user system.
+
| previous = [[Introduction_to_Linux_in_HPC/Text_display_search | Text Display and Search ]]
        A user is logged in with an account and certain permissions.
+
| main = [[Introduction_to_Linux_in_HPC | Overview ]]
    page 2:
+
| next = [[Introduction_to_Linux_in_HPC/Processes | Processes ]]
        Each file and directory has certain permissions.
+
}}
        root has top permissions.
 
        Normal users may belong to multiple groups.
 
    page 3:
 
        Read permission
 
        Write permission
 
        Execute permission for i) file and ii) directory
 
    page 4 - 12:
 
        Example of ls -l (animation)
 
    page 13 - 16:
 
        Permissions for user, group and other (animation)
 
    page 17:
 
        chown to modify owner/group
 
        chmod to modify permission
 
    page 18:
 
        Process is an instance of a program
 
        top and pstree
 
        Each process has permissions of that user.
 
        Each process has a unique ID (PID).
 
    page 19:
 
        Start command in background command &.
 
        Ctrl-Z and bg
 
        fg brings a job to foreground.
 
    page 20 - 21:
 
        Example of top (animation)
 
    page 22:
 
        Single-letter commands for top
 

Latest revision as of 16:23, 4 December 2020

Tutorial
Title: Introduction to Linux in HPC
Provider: HPC.NRW

Contact: tutorials@hpc.nrw
Type: Multi-part video
Topic Area: HPC Platforms
License: CC-BY-SA
Syllabus

1. Background and History
2. The Command Line
3. Linux Directory Structure
4. Files
5. Text display and search
6. Users and permissions
7. Processes
8. The vim text editor
9. Shell scripting
10. Environment variables
11. System configuration
12. SSH Connections
13. SSH: Graphics and File Transfer
14. Various tips

This tutorial covers the concept of users (and groups) in the multi-user operating system Linux. It will also explain the various permissions that a file or directory can have, how to determine and change them. As an example, it will show how to make a Python script executable by the user.

Video

( Slides as pdf)

Quiz

Who can change the permissions of a file?

the owner of this file
every user
users in the same group

How is the top-level admin (or superuser) called in Linux?

god
guru
root

Which one of the following is not a file permission?

Write
Read
Execute
Size

Who can change the owner or group of a file?

the owner of that file
everyone in this group
admin (root)

Which command can prevent other users not in your group from writing to input.dat?

chmod u-w input.dat
chmod o-w input.dat
chmod g-w input.dat


Exercises in Terminal (slide 89)

1. List your home-directory, so that you can see users and permissions. Pick a file of your choice and explain 1) whom it belongs, 2) to which group it belongs and 3) what permissions all other users have for this file.


2. Create an empty file, make it read-only, make it executable.



<< Text Display and Search

Overview

Processes >>