Difference between revisions of "Linux Januar 2012/Add users"
m (Created page with "__NOTOC__ Add user '''ny''' with password '''ny''' or whatever username/password you prefer to make public to the students. remember to change all references in the following to ...") |
m |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
+ | =Purpose= | ||
+ | When adding students on a Linux/UNIX box its desirable to let the students choice their own login names. | ||
+ | ==How to add student logins== | ||
+ | Make a username and password public to the students. When the students login they are prompted for desired loginname/password | ||
+ | = Adding the create-students account= | ||
Add user '''ny''' with password '''ny''' or whatever username/password you prefer to make public to the students. remember to change all references in the following to the username you choice. | Add user '''ny''' with password '''ny''' or whatever username/password you prefer to make public to the students. remember to change all references in the following to the username you choice. | ||
==File: /home/ny/.profile== | ==File: /home/ny/.profile== | ||
Line 13: | Line 18: | ||
</source> | </source> | ||
==File: /etc/sudoers== | ==File: /etc/sudoers== | ||
− | Add the following line to '''/etc/sudoers''' using visudo | + | Add the following line to '''/etc/sudoers''' using visudo. |
<source lang=bash> | <source lang=bash> | ||
− | ny ALL = NOPASSWD: /usr/sbin/adduser [a-zA-Z0-9]* | + | ny ALL = NOPASSWD: /usr/sbin/adduser --gecos [a-zA-Z0-9]* [a-zA-Z0-9]* |
</source> | </source> | ||
+ | ;Remark:This line should be commented out when the students have added them selves. | ||
+ | |||
==File: /home/ny/bin/nybruger== | ==File: /home/ny/bin/nybruger== | ||
Create the '''/home/ny/bin''' directory and add the file '''/home/ny/bin/nybruger''' with the following content. (Remember to change mode to executable) | Create the '''/home/ny/bin''' directory and add the file '''/home/ny/bin/nybruger''' with the following content. (Remember to change mode to executable) | ||
Line 25: | Line 32: | ||
echo -e " =============" | echo -e " =============" | ||
echo -e "\n\n\nIndtast dit ønskede bruger login. Et ord indeholdene bogstaver eller/og tal." | echo -e "\n\n\nIndtast dit ønskede bruger login. Et ord indeholdene bogstaver eller/og tal." | ||
− | echo -en "\nBruger login: " | + | LOOP=1 |
− | read LOGIN | + | while test $LOOP -eq 1 |
+ | do | ||
+ | echo -en "\nBruger login: " | ||
+ | read LOGIN | ||
+ | if echo -n $LOGIN | grep -E "^[0-9A-Za-z]*$" >/dev/null 2>&1 | ||
+ | then | ||
+ | if grep $LOGIN /etc/passwd >/dev/null 2>&1 | ||
+ | then | ||
+ | echo -e "Det valgte bruger login er allerede i brug!!!" | ||
+ | else | ||
+ | LOOP=0 | ||
+ | fi | ||
+ | else | ||
+ | echo -e "login navnet skal være ET ord bestående af bogstaver a-z, A-Z eller tal 0-9" | ||
+ | fi | ||
+ | done | ||
+ | |||
sudo /usr/sbin/adduser $LOGIN | sudo /usr/sbin/adduser $LOGIN | ||
if grep $LOGIN /etc/passwd | if grep $LOGIN /etc/passwd | ||
then | then | ||
COUNT=5 | COUNT=5 | ||
− | while test | + | while test $COUNT -gt 0 |
do | do | ||
echo -en "\r Bruger $LOGIN oprettet. Sessionen afsluttes om $COUNT sekunder" | echo -en "\r Bruger $LOGIN oprettet. Sessionen afsluttes om $COUNT sekunder" | ||
− | + | $((COUNT-=1)) 2> /dev/null | |
sleep 1 | sleep 1 | ||
done | done | ||
else | else | ||
COUNT=5 | COUNT=5 | ||
− | while test | + | while test $COUNT -gt 0 |
do | do | ||
echo -en "\r FEJL: Bruger $LOGIN er IKKE oprettet. Sessionen afsluttes om $COUNT sekunder" | echo -en "\r FEJL: Bruger $LOGIN er IKKE oprettet. Sessionen afsluttes om $COUNT sekunder" | ||
− | + | $((COUNT-=1)) 2> /dev/null | |
sleep 1 | sleep 1 | ||
done | done | ||
Line 48: | Line 71: | ||
exit | exit | ||
</source> | </source> | ||
+ | |||
+ | =Security= | ||
+ | Change all files to root ownership so the students cant change the script catching other students passwords etc. | ||
+ | <source lang=bash> | ||
+ | chown root:root /home/ny | ||
+ | chown root:root /home/ny/.profile | ||
+ | chown root:root /home/ny/bin | ||
+ | chown root:root /home/ny/bin/nybruger | ||
+ | </source> | ||
+ | |||
[[Category:Linux]] | [[Category:Linux]] |
Latest revision as of 09:46, 12 September 2018
Purpose
When adding students on a Linux/UNIX box its desirable to let the students choice their own login names.
How to add student logins
Make a username and password public to the students. When the students login they are prompted for desired loginname/password
Adding the create-students account
Add user ny with password ny or whatever username/password you prefer to make public to the students. remember to change all references in the following to the username you choice.
File: /home/ny/.profile
Add the following line to the start of /home/ny/.profile
trap '' 1 2 3 15
Add the following two lines to the end of /home/ny/.profile
/home/ny/bin/nybruger
exit
File: /etc/sudoers
Add the following line to /etc/sudoers using visudo.
ny ALL = NOPASSWD: /usr/sbin/adduser --gecos [a-zA-Z0-9]* [a-zA-Z0-9]*
- Remark
- This line should be commented out when the students have added them selves.
File: /home/ny/bin/nybruger
Create the /home/ny/bin directory and add the file /home/ny/bin/nybruger with the following content. (Remember to change mode to executable)
#!/bin/bash
tput clear
echo -e " Tilføj bruger"
echo -e " ============="
echo -e "\n\n\nIndtast dit ønskede bruger login. Et ord indeholdene bogstaver eller/og tal."
LOOP=1
while test $LOOP -eq 1
do
echo -en "\nBruger login: "
read LOGIN
if echo -n $LOGIN | grep -E "^[0-9A-Za-z]*$" >/dev/null 2>&1
then
if grep $LOGIN /etc/passwd >/dev/null 2>&1
then
echo -e "Det valgte bruger login er allerede i brug!!!"
else
LOOP=0
fi
else
echo -e "login navnet skal være ET ord bestående af bogstaver a-z, A-Z eller tal 0-9"
fi
done
sudo /usr/sbin/adduser $LOGIN
if grep $LOGIN /etc/passwd
then
COUNT=5
while test $COUNT -gt 0
do
echo -en "\r Bruger $LOGIN oprettet. Sessionen afsluttes om $COUNT sekunder"
$((COUNT-=1)) 2> /dev/null
sleep 1
done
else
COUNT=5
while test $COUNT -gt 0
do
echo -en "\r FEJL: Bruger $LOGIN er IKKE oprettet. Sessionen afsluttes om $COUNT sekunder"
$((COUNT-=1)) 2> /dev/null
sleep 1
done
fi
exit
Security
Change all files to root ownership so the students cant change the script catching other students passwords etc.
chown root:root /home/ny
chown root:root /home/ny/.profile
chown root:root /home/ny/bin
chown root:root /home/ny/bin/nybruger