13,420
edits
Changes
no edit summary
{| width="50%" align="right" cellpadding="10"
|- valign="top"
[[Image:grub2_1.png|thumb|right|600px|The purpose of '''Linux servers''' are to run network-based services (i.e. they '''"serve"''' the users that operating in that Linux/Unix system). It is common that these Linux servers are separated (for security purposes) and they are '''run in Command-Line mode only'''. Running these Linux/Unix servers in '''Graphics Mode will make them more vulnerable to penetration from hackers, etc.''' Therefore, it is common that the Linux servers are CLI <u>only</u>, but the Workstations that connect to them within the network are GUI. Therefore, it is important that a Linux/Unix system administrator understand to switch to these different "run-levels". ]]
|}
===Part 2: How do we Manage Runlevels?===
Running servers in graphical mode will make your system most likely to be penetrated. The X-windows framework can be vulnerable to attacks when these servers are connected to the Internet. This is why when you install server versions of Linux, they work in text-based mode only. Desktop versions of Linux are then installed on workstations (working in graphical mode) that connect to the server (for security reasons).
= INVESTIGATION 3: CREATING LINUX COMMANDS VIA SHELL SCRIPTS=
{|width="40%" align="right" cellpadding="10"
|- valign="top"
{{Admon/tip|Bash Shell Scripting Tips:|<br>'''T<u>he case statement</u>'''<ul><li>The case statement is a control-flow statement that works in a similar way as the if-elif-else statement (but is more concise). This statement presents scenerios or "cases" based on values or regular expressions (not ranges of values like if-elif-else statements).<br><br></li><li>After action(s) are taken for a particular scenerio (or "case"), a break statement (''';;''') is used to "break-out" of the statement (and not perform other actions). A default case (*) is also used to catch exceptions.<br><br></li><li>Examples:<br><br>''read -p "pick a door (1 or 2): " pick<br>case $pick in<br> 1) echo "You win a car!" ;;<br> 2) echo "You win a bag of dirt!" ;;<br> *) echo "Not a valid entry"<br> exit 1 ;;<br>esac''<br><br>''read -p "enter a single digit: " digit<br>case $digit in<br> [0-9]) echo "Your single digit is: $digit" ;;<br> *) echo "not a valid single digit"<br> exit 1 ;;<br>esac''<br><br></li></ul>'''<u>The getopts function</u>'''<ul><li>The getopts function allows the shell scripter to create scripts that accept options (like options for Linux commands). This provides the Linux administrator with scripts that provide more flexibility and versatility. A built-in function called '''getopts''' (i.e. get command options) is used in conjunction with a '''while''' loop and a '''case''' statement to carry out actions based on if certain options are present when the shell script is run.<br><br></li><li> The variable '''$OPTARG''' can be used if an option accepts text (denoted in the getopts function with an option letter followed by a colon. Case statement exceptions use the ''':)''' and '''\?)''' cases for error handling.<br><br><li>Example:<br><br>''while getopts abc: name<br>do<br> case $name in<br> a) echo "Action for option \"a\"" ;;<br> b) echo "Action for option \"b\"" ;;<br> c) echo "Action for option \"c\""<br> echo Value is: $OPTARG" ;;<br> :) echo "Error: You need text after -c option"<br> exit 1 ;;<br> \?) echo "Error: Incorrect option"<br> exit 1 ;;<br>esac''<br>done<br><br></li></ul>}}
|}
==Using getopts Function & case statement==
We will now use shell scripting to help automate the task for a Linux adminstrator to create regular user accounts.