ð Linuxã®ããŒããã·ã§ã³ãšæææš©ã®åºæ¬ãšå®è·µ
ð ã¯ããã«
Linuxã§ã¯ããã¹ãŠã®ãã¡ã€ã«ããã£ã¬ã¯ããªã«ã誰ãããäœãã§ãããããå¶åŸ¡ããä»çµã¿ïŒããŒããã·ã§ã³ïŒãèšå®ãããŠããŸãããã®ä»çµã¿ã¯ã·ã¹ãã ã®å®å
šæ§ãšå®å®æ§ãå®ãããã«éåžžã«éèŠã§ãããé©åã«çè§£ãéçšããããšã§ãäžèŠãªã»ãã¥ãªãã£ãªã¹ã¯ãé¿ããããšãã§ããŸãã
æ¬èšäºã§ã¯ãLinuxã®ããŒããã·ã§ã³ãšæææš©ã®åºæ¬çãªèãæ¹ãããå®åã§ãã䜿ãããã³ãã³ããç¹æ®ãªããŒããã·ã§ã³ããããŠå®è·µäŸãŸã§ãè±å¯ãªäŸãšãšãã«è§£èª¬ããŸãã
ð ããŒããã·ã§ã³ãšã¯ïŒ
Linuxã®ãã¡ã€ã«ããã£ã¬ã¯ããªã¯ã3ã€ã®æš©éã«ããŽãªã«åãããŠããŸãïŒ
- ææè ïŒownerïŒïŒãã¡ã€ã«ãäœæããæ¬äºº
- ã°ã«ãŒãïŒgroupïŒïŒææè ãæå±ããŠããã°ã«ãŒã
- ãã®ä»ïŒothersïŒïŒäžèšä»¥å€ã®ãã¹ãŠã®ãŠãŒã¶ãŒ
åã«ããŽãªã«ã¯ä»¥äžã®3çš®é¡ã®ããŒããã·ã§ã³ãèšå®ã§ããŸãïŒ
- èªã¿åãïŒread = rïŒïŒãã¡ã€ã«ã®äžèº«ãèªãããã£ã¬ã¯ããªã®äžèЧã衚瀺ãã
- æžã蟌ã¿ïŒwrite = wïŒïŒãã¡ã€ã«ãç·šéããããã£ã¬ã¯ããªã«ãã¡ã€ã«ã远å ã»åé€ãã
- å®è¡ïŒexecute = xïŒïŒãã¡ã€ã«ãããã°ã©ã ãšããŠå®è¡ããããã£ã¬ã¯ããªãžã¢ã¯ã»ã¹ãã
ããšãã°ã次ã®ãããªèšè¿°ïŒ
-rwxr-xr--
ããã¯ã
- ææè ïŒrwxïŒèªã¿ã»æžãã»å®è¡ãã¹ãŠå¯èœïŒ
- ã°ã«ãŒãïŒr-xïŒèªã¿ã»å®è¡ã®ã¿ïŒ
- ãã®ä»ïŒr--ïŒèªã¿ã®ã¿ïŒ
ãæå³ããŸãã
ããŒããã·ã§ã³ã®ç¢ºèªã«ã¯ä»¥äžã®ã³ãã³ãã䜿çšããŸãïŒ
ls -l filename
ð æææš©ïŒOwner/GroupïŒã®ä»çµã¿
Linuxã®åãã¡ã€ã«ãšãã£ã¬ã¯ããªã«ã¯ãå¿ ã1äººã®ææè ïŒãŠãŒã¶ãŒïŒãš1ã€ã®ã°ã«ãŒããå²ãåœãŠãããŸããããã«ãããã¢ã¯ã»ã¹å¶åŸ¡ã现ãã管çã§ããŸãã
ææè ã®åœ¹å²
- äœæè ããã®ãŸãŸææè ã«ãªãããšãå€ã
- ææè ã¯ããŒããã·ã§ã³ãèªç±ã«å€æŽã§ãã
ã°ã«ãŒãã®åœ¹å²
- ããŒã éçºæãªã©ãè€æ°äººã§ã¢ã¯ã»ã¹æš©ãå ±æå¯èœ
- æå±ããã°ã«ãŒãã«ãã£ãŠèªã¿æžãå®è¡ãå¶åŸ¡ããã
äŸïŒ
ls -l file.txt
-rw-r--r-- 1 taro staff 1234 Jun 15 10:00 file.txt
ãã®å ŽåïŒ
- ææè ïŒtaro
- ã°ã«ãŒãïŒstaff
- ããŒããã·ã§ã³ïŒææè ã¯rwïŒèªã¿æžãå¯ïŒãã°ã«ãŒãã¯rïŒèªã¿ã®ã¿ïŒããã®ä»ãr
ð§ ããŒããã·ã§ã³ã®å€æŽæ¹æ³
ææè
ã倿ŽïŒchown
sudo chown bob file.txt
file.txt ã®ææè
ã bob ã«å€æŽãããŸãã
ã°ã«ãŒãã倿ŽïŒchgrp
sudo chgrp developers file.txt
ã°ã«ãŒãã developers ã«å€æŽããŸãã
ããŒããã·ã§ã³ã倿ŽïŒchmod
chmod 755 script.sh
ããã¯ã
- ææè ïŒ7ïŒrwxïŒ
- ã°ã«ãŒãïŒ5ïŒr-xïŒ
- ãã®ä»ïŒ5ïŒr-xïŒ
ãšããèšå®ã«ãªããŸãã
æ°å€è¡šçŸã®ä»£ããã«èšå·åœ¢åŒã§ãèšå®å¯èœã§ãïŒ
chmod u=rwx,g=rx,o=rx script.sh
ð ç¹æ®ãªããŒããã·ã§ã³
setuidïŒset user IDïŒ
ãã¡ã€ã«ãå®è¡ãããŠãŒã¶ãŒã§ã¯ãªããææè ã®æš©éã§ããã°ã©ã ãå®è¡ãããã
chmod u+s /usr/bin/example
setgidïŒset group IDïŒ
ãã£ã¬ã¯ããªã«é©çšãããšãæ°ããäœæããããã¡ã€ã«ã«èŠªãã£ã¬ã¯ããªã®ã°ã«ãŒããç¶æ¿ãããã
chmod g+s /project
sticky bit
/tmp ãªã©ã®å
±æãã£ã¬ã¯ããªã§äœ¿çšãä»ã®ãŠãŒã¶ãŒãäœæãããã¡ã€ã«ãåé€ã§ããªãããã«å¶éã
chmod +t /shared
â å®è·µäŸ
äŸ1ïŒWebãµãŒããŒã®ãã£ã¬ã¯ããªãé©åã«èšå®ãã
sudo chown www-data:www-data /var/www/html
chmod 755 /var/www/html
ApacheãnginxãåäœãããŠãŒã¶ãŒã«ææãããä»ã®ãŠãŒã¶ãŒã¯èªã¿åãã®ã¿ãšããæ§æã§ãã
äŸ2ïŒå人çšã®ç§å¯ãã¡ã€ã«ãå®å šã«ä¿è·ãã
touch secret.txt
chmod 600 secret.txt
ãã®èšå®ã«ãããèªåã ããèªã¿æžãå¯èœãšãªããä»ã®ãã¹ãŠã®ãŠãŒã¶ãŒã¯ã¢ã¯ã»ã¹ã§ããŸããã
äŸ3ïŒããŒã ã§å ±æãããããžã§ã¯ããã£ã¬ã¯ããª
sudo chown :devteam /srv/project
chmod 2775 /srv/project
setgid ãä»äžããŠãæ°ãããã¡ã€ã«ãèªåçã« devteam ã°ã«ãŒãã«å±ããããã«ããŸãã
ð ãŸãšã
ããŒããã·ã§ã³ãšæææš©ã¯ãLinuxã«ããããã¡ã€ã«ããã£ã¬ã¯ããªã®å®å
šãªéçšã«æ¬ ãããªãåºç€ã§ããæ£ããçè§£ããé©åã«ç®¡çããããšã§ãã»ãã¥ãªãã£ãé«ããªããããŠãŒã¶ãŒéã®ååãã¹ã ãŒãºã«è¡ããŸãã
宿çã« ls -l ã³ãã³ãã§ç¶æ
ã確èªããå¿
èŠã«å¿ã㊠chmod, chown, chgrp ã䜿ãããªããŸããããç¹ã«WebãµãŒããŒãå
±æãããžã§ã¯ãç°å¢ã§ã¯ãããŒããã·ã§ã³ã®ãã¹ãé倧ãªãã©ãã«ã«ã€ãªããå¯èœæ§ããããããæ
éãªèšå®ãæ±ããããŸãã
ãã®èšäºãåèã«ãèªåã®ç°å¢ã§å®å
šãã€å¹ççãªãã¡ã€ã«ç®¡çãå®çŸããŸããããððð ïž
æ ªåŒäŒç€ŸONE WEDGE
ãServerlessã§äžã®äžããã£ãšæ¥œããã ONE WEDGEã¯Serverlessã·ã¹ãã éçºãäžæ žæè¡ãšããŠWebç³»ã·ã¹ãã éçºãAWS/GCPãå©çšããæ¥åã·ã¹ãã ã»ãµãŒãã¹éçºãPWAãçšããã¢ãã€ã«éçºãAlexaã¹ãã«éçºãªã©ãå æ°ãšæè¡åãæŠåšã«ã客æ§ã«çæ¯ã«åãåã䟡å€åµé äŒæ¥ã§ãã
Discussion