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
m (Tweak page sorting)
 
(29 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__
  
{{Infobox table
+
This tutorial covers the concept of users (and groups) in the multi-user operating system Linux.
| REAL-NAME    = HPC.NRW
+
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.
| image  =  Hpc.nrw_small.png ‎
 
| Feldnamehead1 = Other HPC Courses
 
| Feldname2 = GPU      | Daten3 = Introduction to GPU Programming
 
| Feldname3 = GPROF    | Daten4 = [https://hpc-wiki.info/hpc/GPROF_Tutorial Gprof Tutorial]
 
| Feldnamehead2 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Introduction to Linux in HPC]
 
| Feldname5 = 1. | Daten6 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Historical_Background Historical Background]
 
| Feldname6 = 2. | Daten7 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/The_Command_Line The Command Line]
 
| Feldname7 = 3. | Daten8 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Directory_structure Directory structure]
 
| Feldname8 = 4. | Daten9 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Files Files]
 
| Feldname9 = 5. | Daten10 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Text_display_search Text display search]
 
| Feldname10 = 6. | Daten11 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Processes_and_permissions Processes and permissions]
 
| Feldname11 = 7. | Daten12 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/The_vim_text_editor The vim text editor]
 
| Feldname12 = 8. | Daten13 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Shell_scripting_environment_variables Shell scripting environment variables]
 
| Feldname13 = 9. | Daten14 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/System_configuration_files System configuration files]
 
| Feldname14 = 10. | Daten15 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Various_tips Various tips]
 
| Feldname15= 11. | Daten16 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Beyond_the_cluster Beyond the cluster]
 
| Feldname16= 12. | Daten17 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Linux_in_HPC Linux in HPC]
 
| Feldname17= 12. | Daten18 = [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/SSH_Login SSH Login]
 
}}
 
  
 
=== 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-->   
 
=== 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  
 
{{hidden begin  
Line 49: Line 96:
 
=== Exercises in Terminal (slide 89) === <!--T:5-->   
 
=== Exercises in Terminal (slide 89) === <!--T:5-->   
  
  1. Create an empty file, make it read-only, make it executable.
+
  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.
 +
    |}
 +
 
 +
 
 +
2. Create an empty file, make it read-only, make it executable.
 
   {| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 
   {| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 
     | <strong>Answer:</strong>
 
     | <strong>Answer:</strong>
Line 64: Line 124:
 
           chmod a+r file.txt adds the read 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.
 
           chmod a+x file.txt makes file.txt executable for all users.
    |}
 
 
2. Start a process (e.g. sleep 10m)
 
  {| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 
    | <strong>Answer:</strong>
 
    |-
 
    |
 
      Use a second console to look at it in top.
 
      Kill it.
 
      Hint:
 
        To kill the started process (e.g. sleep 10m):
 
        1. Go to the terminal that started the process.
 
        2. Press Ctrl-C to kill it.
 
    |}
 
 
3. Start a process, bring it into background/foreground.
 
  {| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 
    | <strong>Hint:</strong>
 
    |-
 
    |
 
      To bring a process to background:
 
        Press Ctrl-Z (pause the process).
 
        Type bg (bring it to background).
 
      To bring a process to foreground:
 
        Type fg (bring it to foreground).
 
 
     |}
 
     |}
  
  
<div style='text-align: left;float:left;width:33%;'>{{Clickable button|[https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Text_display_search Previous Page]|color=white}}</div>
+
{{Tutorial Navigation
<div style='text-align: center;float:left;width:33%;'>{{Clickable button|[https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Main Menu Page]|color=white}}</div>
+
| previous = [[Introduction_to_Linux_in_HPC/Text_display_search | Text Display and Search ]]
<div style='text-align: right;float:left;width:33%;'>{{Clickable button|[https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/The_vim_text_editor Next Page]|color=white}}</div>
+
| main = [[Introduction_to_Linux_in_HPC | Overview ]]
 +
| next = [[Introduction_to_Linux_in_HPC/Processes | Processes ]]
 +
}}

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