லினக்ஸை பூஜ்ஜியத்திலிருந்து கற்பது எப்படி: முதல் கட்டளை முதல் சேவையக நிர்வாகம் வரை திட்டம்
லினக்ஸை பூஜ்ஜியத்திலிருந்து கற்பது அடுக்குகளாக எளிதாகிறது: முதலில் டெர்மினலும் கோப்பு முறைமையும், பின்னர் பயனர்களும் அனுமதிகளும், Bash ஸ்கிரிப்ட்கள், தொகுப்புகள், செயல்முறைகள் மற்றும் systemd, அதன் பின் வட்டுகள், பதிவுகள், பிணையம், SSH, சேவையகப் பாதுகாப்பு. ஒவ்வொரு கட்டத்துக்கும் உங்கள் சொந்த மெய்நிகர் இயந்திரம் அல்லது மலிவான VPS-இல் பயிற்சி தேவை; இறுதி முடிவு நீங்களே நிறுவிப் பாதுகாத்த, சேவை இயங்கும் ஒரு சேவையகம்.
லினக்ஸை பூஜ்ஜியத்திலிருந்து கற்பது தோன்றுவதைவிட எளிது; வரிசை சரியாக இருந்து உடனே பயிற்சி செய்தால். புதியவர்களின் மிகப் பெரிய தவறு, கட்டளைகளைப் பற்றிப் படித்துவிட்டு அவற்றைத் தட்டச்சு செய்யாமல் இருப்பது, அல்லது செயல்முறை மற்றும் அனுமதிகள் என்ன என்று புரியாமலேயே Docker மற்றும் Kubernetes-க்குத் தாவுவது. கீழே ஒன்பது கட்டங்களின் திட்டம் உள்ளது: என்ன கற்க வேண்டும், என்ன பயிற்சி செய்ய வேண்டும், ஒரு கட்டம் முடிந்ததை எப்படி அறிவது.
கால அளவு: நாளொன்றுக்கு ஒரு மணி நேரம் கற்றால் இரண்டு முதல் நான்கு மாதங்கள், ஆனால் ஒவ்வொருவரின் வேகமும் வேறுபடும். வேகத்தைவிட முக்கியம், ஒவ்வொரு கட்டத்துக்குப் பின்னும் நீங்கள் கையால் எதையாவது செய்ய முடிகிறதா என்பது.
கட்டம் 0. சூழலைத் தயார் செய்யுங்கள்
லினக்ஸ் லினக்ஸில்தான் கற்கப்படுகிறது. விருப்பங்கள், எளிமையிலிருந்து நடைமுறை வரை:
- Windows-இல் WSL2 — சில நிமிடங்களில் Ubuntu டெர்மினல். கட்டளைகளுக்கும் ஸ்கிரிப்ட்களுக்கும் நல்லது, ஆனால் systemd மற்றும் பிணையம் சேவையகத்தைப் போல நடந்துகொள்ளாது.
- மெய்நிகர் இயந்திரம் (VirtualBox, VMware, Mac-இல் UTM) Ubuntu Server அல்லது Debian உடன். இதை உடைத்தாலும் பாதிப்பில்லை; snapshot-க்குத் திரும்பலாம்.
- மலிவான VPS ஒரு கிளவுட் வழங்குநரிடமிருந்து. பொது IP உள்ள உண்மையான சேவையகமே பிணையம் மற்றும் பாதுகாப்பு கட்டங்களுக்கான சிறந்த களம்.
தொடக்கத்துக்கான விநியோகம் Ubuntu Server அல்லது Debian: அவற்றுக்கு ஆவணங்களும் பதில்களும் அதிகம். வரைகலை இடைமுகம் தேவையில்லை: சேவையகங்கள் டெர்மினல் மூலமே நிர்வகிக்கப்படுகின்றன; அந்தப் பழக்கத்தை முதல் நாளிலிருந்தே தொடங்குங்கள்.
கட்டம் 1. டெர்மினலும் கோப்பு முறைமையும்
இலக்கு: சுட்டி இல்லாமல் அமைப்பில் நம்பிக்கையுடன் நகர்ந்து, கோப்புகளுடன் வேலை செய்வது.
- வழிசெலுத்தல்:
pwd,ls -la,cd, முழுமையான மற்றும் தொடர்புடைய பாதைகள்,~,.,... - கோப்புகள்:
cp,mv,rm,mkdir -p,touch,cat,less,head,tail -fமூலம் பார்ப்பது. - தேடல்:
find,which,locate. - உதவி:
man,--help. man படிக்கும் திறன் வாழ்நாள் முழுவதும் பயனளிக்கும். - கோப்பகக் கட்டமைப்பு:
/etc,/var/log,/home,/usr,/proc,/dev-இல் என்ன இருக்கிறது; இணைப்பு (mount) மற்றும் inode என்றால் என்ன. - டெர்மினல் உரை எடிட்டர்: ஆரம்பத்தில்
nano, பின்னர்vim-இன் அடிப்படைக் கட்டளைகள் — கிட்டத்தட்ட ஒவ்வொரு சேவையகத்திலும் அது இருக்கும்.
பயிற்சி: கடந்த ஒரு வாரத்தில் மாற்றப்பட்ட /etc-இன் அனைத்து .conf கோப்புகளையும் கண்டறியுங்கள் (find /etc -name "*.conf" -mtime -7). /etc/os-release-ஐத் திறந்து உங்கள் அமைப்பின் பதிப்பைக் கண்டறியுங்கள். /var/log-இல் அமைப்பு என்ன எழுதுகிறது என்று பாருங்கள்.
கட்டம் 2. பயனர்கள், குழுக்கள், அனுமதிகள்
அனுமதிகள் லினக்ஸ் பாதுகாப்பின் அடித்தளம்; "Permission denied" பிழைகளில் பாதிக்கு மூலமும் இதுவே.
ls -lவெளியீட்டைப் படித்தல்: வகை, அனுமதிகள், உரிமையாளர், குழு.chmodகுறியீட்டு மற்றும் எண் வடிவில்,chown,umask.- சிறப்பு பிட்கள்: SUID, SGID, sticky bit — மேலும்
/tmp-இல் எல்லோரும் எழுதலாம், ஆனால் பிறரின் கோப்புகளை ஏன் நீக்க முடியாது. - பயனர்களும் குழுக்களும்:
useradd,usermod -aG,passwd, கோப்புகள்/etc/passwd,/etc/shadow,/etc/group. sudo, sudoers விதிகள்,visudoமூலம் திருத்துதல்.
பயிற்சி: இரண்டு பயனர்களையும் ஒரு பகிர்ந்த திட்டக் கோப்பகத்தையும் உருவாக்குங்கள்; அதில் இருவரும் கோப்புகளை உருவாக்கலாம், மற்றவர்களுக்கு எதுவும் தெரியக்கூடாது. குறிப்பு: ஒரு குழு, chmod 2770, குழு மரபுரிமைக்கான SGID.
கட்டம் 3. Bash மற்றும் உரைக் கருவிகள்
நிர்வாகம் பெரும்பாலும் உரை செயலாக்கம்: பதிவுகள், உள்ளமைவுகள், கட்டளை வெளியீடுகள். இந்தக் கட்டத்தில் டெர்மினல் கட்டளைத் தொகுப்பிலிருந்து வேலை செய்யும் கருவியாக மாறுகிறது.
- திசைமாற்றமும் குழாய்களும்:
>,>>,2>&1,|,xargs. - வடிகட்டிகள்:
grep(வழக்கமான வெளிப்பாடுகளுடன்),sort,uniq -c,wc,cut,sed,awk. - கன்சோலிலிருந்து JSON மற்றும் HTTP:
curlமற்றும்jq. - ஸ்கிரிப்ட்கள்: shebang, மாறிகள், மேற்கோள்கள்,
ifமற்றும்[[ ]]நிபந்தனைகள், சுழல்கள், செயல்பாடுகள், வெளியேறு குறியீடுகள்,set -euo pipefail.
பயிற்சி: ஒரு வரிக் கட்டளையில், வலை சேவையகப் பதிவில் அதிக கோரிக்கைகள் அனுப்பிய பத்து IP முகவரிகளைக் கண்டறியுங்கள்:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
பின்னர் ஒரு காப்புப் பிரதி ஸ்கிரிப்ட் எழுதுங்கள்: ஒரு கோப்பகத்தை தேதி பெயருடன் காப்பகமாக்கும், ஏழு நாட்களுக்கு மேற்பட்ட காப்பகங்களை நீக்கும், பிழை ஏற்பட்டால் பூஜ்ஜியமல்லாத குறியீடு தரும்.
கட்டம் 4. தொகுப்புகள், சூழல், திட்டமிடல்
- தொகுப்பு மேலாளர்:
apt update,apt install,apt remove,apt search,dpkg -l. RHEL குடும்பத்தில்dnf. களஞ்சியம் என்றால் என்ன, கையொப்ப விசைகள் ஏன் தேவை என்று புரிந்துகொள்ளுங்கள். - சூழல் மாறிகள்:
env,export,PATH, கோப்புகள்~/.bashrc,~/.profile,/etc/environment— எது எப்போது படிக்கப்படுகிறது. - திட்டமிடல்:
crontab -e, ஐந்து புலங்களின் தொடரியல், டெர்மினலில் வேலை செய்யும் கட்டளை cron-இல் ஏன் "வேலை செய்யவில்லை" (வேறு சூழல் மற்றும்PATH).
பயிற்சி: களஞ்சியத்திலிருந்து nginx-ஐ நிறுவுங்கள், உங்கள் ஸ்கிரிப்ட் கோப்பகத்தை PATH-இல் சேருங்கள், கட்டம் 3-இன் காப்புப் பிரதி ஸ்கிரிப்ட்டை ஒவ்வொரு இரவும் cron மூலம் இயக்கி, வெளியீட்டை பதிவில் எழுதுங்கள்.
கட்டம் 5. செயல்முறைகளும் systemd-உம்
இங்கே அமைப்பிற்குள் உண்மையில் என்ன நடக்கிறது என்பதைப் புரிந்துகொள்ளத் தொடங்குகிறீர்கள்.
- செயல்முறைகள்:
ps aux,top/htop, PID மற்றும் PPID, நிலைகள், முன்னுரிமைகள் (nice), சிக்னல்கள் மற்றும்kill. - சுமை: load average, நினைவகம் மற்றும் swap (
free -h), D நிலையில் உள்ள செயல்முறையின் பொருள். - பிழைத்திருத்தம்:
lsof— செயல்முறை எந்தக் கோப்புகளையும் போர்ட்டுகளையும் திறந்துள்ளது;strace— அது எந்த system call-களைச் செய்கிறது, எங்கே சிக்குகிறது. - systemd: units,
systemctl status/start/enable,Restart=on-failure-உடன் சொந்த unit file, cron-க்குப் பதில் timers. - பதிவுகள்:
journalctl -u,-f,-b,-p err, சுழற்சி, rsyslog; sysstat மூலம் செயல்திறன் புள்ளிவிவரங்கள் (sar,iostat).
பயிற்சி: ஒரு சிறிய பயன்பாட்டை (குறைந்தது python3 -m http.server) தனிப் பயனரின் கீழ் systemd சேவையாக அமையுங்கள், kill -9 மூலம் செயல்முறையைக் கொல்லுங்கள், systemd அதை மீண்டும் தொடங்கியதை உறுதிசெய்யுங்கள். journal-இல் மறுதொடக்கப் பதிவைக் கண்டறியுங்கள்.
கட்டம் 6. வட்டுகள், LVM, RAID
- சாதனங்களும் பகிர்வுகளும்:
lsblk,blkid,fdiskஅல்லதுparted, ext4 மற்றும் XFS கோப்பு முறைமைகள்,mkfs. - இணைத்தல்:
mount, UUID உடன்/etc/fstab,mount -aமூலம் சரிபார்த்தல். - இடம்:
df -h,df -i,du -sh, வட்டை எது உண்கிறது என்று தேடுதல். - LVM: இயற்பியல் தொகுதிகள் (physical volumes), தொகுதிக் குழுக்கள் (volume groups), தர்க்கத் தொகுதிகள் (logical volumes), சேவையை நிறுத்தாமல் பகிர்வை விரிவாக்குதல்.
mdadmமூலம் மென்பொருள் RAID — நிலைகள் 0, 1, 5, 10 பற்றிய புரிதல், RAID ஒரு காப்புப் பிரதி அல்ல என்பது.
பயிற்சி: மெய்நிகர் இயந்திரத்தில் இரண்டு வட்டுகளைச் சேர்த்து, அவற்றின் மேல் LVM அமைத்து, ஒரு தொகுதியை உருவாக்கி, fstab மூலம் இணைத்து, பின்னர் lvextend -r மூலம் பெரிதாக்குங்கள்.
கட்டம் 7. பிணையம்
- நோய் கண்டறிவதற்குப் போதுமான அளவு TCP/IP மாதிரி: IP, subnet mask, gateway, போர்ட், TCP மற்றும் UDP.
- கட்டளைகள்:
ip a,ip r,ss -tlnp,ping,traceroute/mtr,curl -v,nc. - DNS: தீர்வு எப்படி வேலை செய்கிறது,
/etc/hosts,/etc/resolv.conf,dig,resolvectl. - உங்கள் விநியோகத்தில் பிணைய அமைப்பு (Ubuntu-இல் netplan, மற்றவற்றில் NetworkManager).
- மற்ற அனைத்தும் தோல்வியடையும்போது
tcpdumpமூலம் போக்குவரத்தைப் பிடித்தல்.
பயிற்சி: உங்கள் சேவையகத்தின் ஒவ்வொரு திறந்த போர்ட்டையும் எந்தச் செயல்முறை கேட்கிறது என்று கண்டறியுங்கள். 127.0.0.1-இல் கேட்கும் சேவை ஏன் வெளியிலிருந்து அடைய முடியாது என்று புரிந்துகொண்டு அதைச் சரிசெய்யுங்கள்.
கட்டம் 8. தொலைநிலைப் பணி: SSH மற்றும் கோப்பு பரிமாற்றம்
- SSH: விசைகள் (
ssh-keygen -t ed25519,ssh-copy-id),~/.ssh/configகோப்பு,ssh-agent, போர்ட் முன்செலுத்தல் (ssh -L),ProxyJumpமூலம் bastion. - நகலெடுத்தல்:
scpமற்றும்rsync -avz --delete— ஒத்திசைவுக்கு rsync ஏன் சிறந்தது. - பிணைய கோப்பு முறைமைகள்: லினக்ஸ் சேவையகங்களுக்கிடையே NFS, Windows உடன் பரிமாற்றத்துக்கு SMB (Samba).
பயிற்சி: VPS-இல் விசையால் மட்டும் உள்நுழைவை அமையுங்கள், ~/.ssh/config-இல் குறுகிய பெயரில் விவரியுங்கள், ஒரு கோப்பகத்தை ஒவ்வொரு நாளும் rsync மூலம் சேவையகத்துக்கு ஒத்திசையுங்கள்.
கட்டம் 9. சேவையகப் பாதுகாப்பு
- ஃபயர்வால்: "அனுமதிக்கப்படாத அனைத்தையும் தடு" கொள்கை, எளிய சூழலுக்கு
ufw, உள்ளே என்ன நடக்கிறது என்று புரியnftables. fail2ban: தொடர் தோல்வி உள்நுழைவுகளுக்குப் பின் IP-ஐத் தடுத்தல்,fail2ban-client status sshdமூலம் சரிபார்த்தல்.- sshd உள்ளமைவு: கடவுச்சொல் மற்றும் root உள்நுழைவைத் தடுத்தல்.
- பாதுகாப்பு புதுப்பிப்புகளும் அவற்றின் தானியங்கி நிறுவலும் (Debian மற்றும் Ubuntu-இல் unattended-upgrades).
- GPG: தொகுப்புகள் மற்றும் கோப்புகளின் கையொப்பச் சரிபார்ப்பு, காப்புப் பிரதிகளை குறியாக்கம் செய்தல்.
பயிற்சி: ஃபயர்வாலில் 22, 80, 443 போர்ட்டுகளை மட்டும் திறந்து, fail2ban-ஐ இயக்குங்கள்; ஒரு நாள் கழித்து அதன் நிலையில் எத்தனை முகவரிகள் ஏற்கனவே தடுக்கப்பட்டுள்ளன என்று பாருங்கள்.
இறுதித் திட்டம்: முழு சேவையகத்தை அமையுங்கள்
லினக்ஸை உண்மையில் கற்றீர்களா என்பதற்கு சிறந்த சோதனை: உதவியின்றி பூஜ்ஜியத்திலிருந்து ஒரு சேவையகத்தை உருவாக்குவது:
- புதிய VPS, sudo உள்ள உங்கள் சொந்தப் பயனர், விசையால் SSH உள்நுழைவு, கடவுச்சொல்லும் root-உம் நிறுத்தப்பட்டிருக்க வேண்டும்.
- ஃபயர்வாலும் fail2ban-உம், தானியங்கி பாதுகாப்பு புதுப்பிப்புகளும்.
- வலை சேவையகமும் பயன்பாடும் systemd சேவையாக, தானியங்கி மறுதொடக்கத்துடன்.
- தரவுக்கென தனி வட்டு அல்லது தொகுதி, fstab மூலம் இணைக்கப்பட்டது.
- திட்டமிட்ட காப்புப் பிரதி (cron அல்லது systemd timer) rsync மூலம் வேறொரு கணினிக்கு, பதிவு மற்றும் மீட்புச் சோதனையுடன்.
- சுருக்கமான வழிகாட்டி: இவை அனைத்தையும் மீண்டும் எப்படி அமைப்பது.
இந்தப் பட்டியலை முடித்து ஒவ்வொரு படியையும் விளக்க முடிந்தால், நிர்வாகியாக அல்லது DevOps பொறியாளராகப் பணியாற்றுவதற்கான அடித்தளம் உங்களிடம் உள்ளது. அடுத்த இயல்பான படிகள் கொள்கலன்கள், உள்ளமைவு தானியக்கம், கண்காணிப்பு.
இன்னும் திறமையாகக் கற்பது எப்படி
- கட்டளைகளை நீங்களே தட்டச்சு செய்யுங்கள். கட்டுரையிலிருந்து நகலெடுப்பது நினைவில் நிற்காது; தட்டச்சு செய்வதும் தவறுகள் செய்வதும்தான் நிற்கும்.
- உடையுங்கள், பின்னர் சரிசெய்யுங்கள். மெய்நிகர் இயந்திரத்தில் fstab-ஐயோ
~/.sshஅனுமதிகளையோ கெடுத்து, அமைப்பை மீட்டெடுங்கள். இத்தகைய அனுபவம் நேர்காணல்களில் மதிப்புடையது. - உங்கள் குறிப்புகளை வையுங்கள். உங்கள் சொந்த எடுத்துக்காட்டுகளுடன் கூடிய கட்டளைக் குறிப்பேடு, வேறு யாருடைய குறிப்பேட்டையும்விட பயனுள்ளது.
- பதிவுகளைப் படியுங்கள். லினக்ஸில் கிட்டத்தட்ட ஒவ்வொரு பிரச்சினையும் பதிவில் விளக்கப்பட்டிருக்கும் — முதலில் அங்கே பார்க்கும் பழக்கத்தை வளர்த்துக்கொள்ளுங்கள்.
சுருக்கம்
லினக்ஸை பூஜ்ஜியத்திலிருந்து கற்பது எப்படி என்ற கேள்விக்கு பதில்: அடுக்குகளாக முன்னேறுவது — டெர்மினலும் கோப்புகளும், அனுமதிகள், Bash, தொகுப்புகள், செயல்முறைகளும் systemd-உம், வட்டுகள், பிணையம், SSH, பின்னர் பாதுகாப்பு — ஒவ்வொரு கட்டத்திலும் உங்கள் சூழலில் ஒரு நடைமுறைப் பணியைத் தீர்ப்பது. இறுதி இலக்கு: ஒரு சேவையகத்தை நீங்களே அமைத்துப் பாதுகாத்து, அதில் ஒரு சேவையை இயக்குவது. அறிமுகப் பாடத்திலிருந்து இறுதித் திட்டம் வரை இந்தப் பாதையில்தான் இந்த லினக்ஸ் பாடநெறி அமைக்கப்பட்டுள்ளது.
அடிக்கடி கேட்கப்படும் கேள்விகள்
லினக்ஸை பூஜ்ஜியத்திலிருந்து கற்க எவ்வளவு காலம் ஆகும்?
நாளொன்றுக்கு சுமார் ஒரு மணி நேரம் கற்றால், சில மாதங்களில் சேவையகத்துடன் வேலை செய்வதற்கான அடிப்படைத் திறன் பொதுவாக வந்துவிடும். நம்பிக்கை நடைமுறைப் பணிகளிலிருந்து வருகிறது, எனவே மொத்த மணிநேரத்தைவிட தொடர்ச்சியே முக்கியம்.
லினக்ஸ் கற்க நிரலாக்கம் தெரிந்திருக்க வேண்டுமா?
இல்லை, அது இல்லாமலேயே தொடங்கலாம். ஆனால் Bash ஸ்கிரிப்ட் கட்டத்தில் நீங்கள் உண்மையில் நிரலாக்கம் தொடங்கிவிடுவீர்கள்; அந்தத் திறன் பின்னர் தானியக்கத்தில் பயன்படும்.
Windows-இல் இருந்து கொண்டு லினக்ஸ் கற்க முடியுமா?
முடியும், WSL2 அல்லது மெய்நிகர் இயந்திரம் மூலம். systemd, வட்டுகள், பிணையம் பற்றிய தலைப்புகளுக்கு முழு மெய்நிகர் இயந்திரம் அல்லது VPS பயன்படுத்துவது நல்லது.
கற்பதற்காக கணினியில் லினக்ஸை முதன்மை அமைப்பாக நிறுவ வேண்டுமா?
பயனுள்ளது, ஆனால் கட்டாயமில்லை. நிர்வாகத்துக்கு முக்கியம், வரைகலை டெஸ்க்டாப்பைப் பயன்படுத்துவதைவிட டெர்மினல் மூலம் சேவையக லினக்ஸுடன் வேலை செய்வதுதான்.
தொடக்கநிலையாளருக்கு எந்த விநியோகம் சிறந்தது?
Ubuntu Server அல்லது Debian: அவற்றுக்கு ஆவணங்கள் நிறைய உள்ளன, திறன்கள் மற்ற விநியோகங்களுக்கும் எளிதாக மாறும். RHEL குடும்பத்தின் முக்கிய வேறுபாடு dnf தொகுப்பு மேலாளர்.
“Linux: с нуля до уверенного администрирования” பாடநெறியில் இந்தத் தலைப்பு பயிற்சியுடன் விரிவாக விளக்கப்பட்டுள்ளது.
- Linux: с нуля до уверенного администрирования
- Финал: собираем защищённый и автоматизированный сервер целиком