¹ØÓÚlinux/unixÖÐSUID /SGID½âÎö
ÓÉÓÚÓû§ÔÚUNIXϾ³£»áÓöµ½SUID¡¢SGIDµÄ¸ÅÄ¶øÇÒSUIDºÍSGIDÉæ¼°µ½ÏµÍ³°²È«£¬ËùÒÔÓû§Ò²±È½Ï¹ØÐÄÕâ¸öÎÊÌâ¡£
Ò»¡¢ UNIXϹØÓÚÎļþȨÏ޵ıíʾ·½·¨ºÍ½âÎö
SUID ÊÇ Set User ID, SGID ÊÇ Set Group IDµÄÒâ˼¡£
UNIXÏ¿ÉÒÔÓÃls -l ÃüÁîÀ´¿´µ½ÎļþµÄȨÏÞ¡£ÓÃlsÃüÁîËùµÃµ½µÄ±íʾ·¨µÄ¸ñʽÊÇÀàËÆÕâÑùµÄ£º-rwxr-xr-x ¡£ÏÂÃæ½âÎöһϸñʽËù±íʾµÄÒâ˼¡£ÕâÖÖ±íʾ·½·¨Ò»¹²ÓÐʮλ£º
9 8 7 6 5 4 3 2 1 0
- r w x r - x r - x
µÚ9λ±íʾÎļþÀàÐÍ,¿ÉÒÔΪp¡¢d¡¢l¡¢s¡¢c¡¢bºÍ-£º
p±íʾÃüÃû¹ÜµÀÎļþ
d±íʾĿ¼Îļþ
l±íʾ·ûºÅÁ¬½ÓÎļþ
-±íʾÆÕͨÎļþ
s±íʾsocketÎļþ
c±íʾ×Ö·ûÉ豸Îļþ
b ±íʾ¿éÉ豸Îļþ
µÚ8-6λ¡¢5-3λ¡¢2-0λ·Ö±ð±íʾÎļþËùÓÐÕßµÄȨÏÞ£¬Í¬×éÓû§µÄȨÏÞ£¬ÆäËûÓû§µÄȨÏÞ£¬ÆäÐÎʽΪrwx£º
r±íʾ¿É¶Á£¬¿ÉÒÔ¶Á³öÎļþµÄÄÚÈÝ
w±íʾ¿Éд£¬¿ÉÒÔÐÞ¸ÄÎļþµÄÄÚÈÝ
x±íʾ¿ÉÖ´ÐУ¬¿ÉÔËÐÐÕâ¸ö³ÌÐò
ûÓÐȨÏÞµÄλÖÃÓÃ-±íʾ
Àý×Ó£º
ls -l myfileÏÔʾΪ£º
-rwxr-x--- 1 foo staff 7734 Apr 05 17:07 myfile
±íʾÎļþmyfileÊÇÆÕͨÎļþ£¬ÎļþµÄËùÓÐÕßÊÇ fooÓû§£¬¶øfooÓû§ÊôÓÚstaff×飬ÎļþÖ»ÓÐ1¸öÓ²Á¬½Ó£¬³¤¶ÈÊÇ7734¸ö×Ö½Ú£¬×îºóÐÞ¸Äʱ¼ä4ÔÂ5ÈÕ17:07¡£
ËùÓÐÕß foo¶ÔÎļþÓжÁдִÐÐȨÏÞ£¬staff×éµÄ³ÉÔ±¶ÔÎļþÓжÁºÍÖ´ÐÐȨÏÞ£¬ÆäËûµÄÓû§¶ÔÕâ¸öÎļþûÓÐȨÏÞ¡£
Èç¹ûÒ»¸öÎļþ±»ÉèÖÃÁËSUID»òSGID룬»á·Ö±ð±íÏÖÔÚËùÓÐÕß»òͬ×éÓû§µÄȨÏ޵ĿÉÖ´ÐÐλÉÏ
¡£ÀýÈ磺
1¡¢-rwsr- xr-x ±íʾSUIDºÍËùÓÐÕßȨÏÞÖпÉÖ´ÐÐλ±»ÉèÖÃ
2¡¢-rwSr--r-- ±íʾSUID±»ÉèÖ㬵«ËùÓÐÕßȨÏÞÖпÉÖ´ÐÐλûÓб»ÉèÖÃ
3¡¢-rwxr-sr-x ±íʾSGIDºÍͬ×éÓû§È¨ÏÞÖпÉÖ´ÐÐλ±»ÉèÖÃ
4¡¢-rw-r-Sr-- ±íʾSGID±»ÉèÖ㬵«Í¬×éÓû§È¨ÏÞÖпÉÖ´ÐÐλûÓб»Éç
ÆäʵÔÚUNIXµÄʵÏÖÖУ¬ÎļþȨÏÞÓÃ12¸ö¶þ½øÖÆÎ»±íʾ£¬
Èç¹û¸ÃλÖÃÉϵÄÖµÊÇ
1£¬±íʾÓÐÏàÓ¦µÄȨÏÞ£º
11 10 9 8 7 6 5 4 3 2 1 0
S G T r w x r w x r w x
µÚ11 λΪSUID룬µÚ10λΪSGID룬µÚ9λΪstickyλ
£¬µÚ8-0λ¶ÔÓ¦ÓÚÉÏÃæµÄÈý×érwxλ¡£
11 10 9 8 7 6 5 4 3 2 1 0
ÉÏÃæµÄ-rwsr-xr-xµÄֵΪ£º 1 0 0 1 1 1 1 0 1 1 0 1
-rw-r-Sr--µÄֵΪ£º 0 1 0 1 1 0 1 0 0 1 0 0
¸øÎļþ¼Ó SUIDºÍSUIDµÄÃüÁîÈçÏÂ
£º
chmod u+s filename ÉèÖÃSUIDλ
chmod u-s filename È¥µôSUIDÉèÖÃ
chmod g+s filename ÉèÖÃSGIDλ
chmod g-s filename È¥µôSGIDÉèÖÃ
ÁíÍâÒ»ÖÖ·½·¨ÊÇchmodÃüÁîÓð˽øÖƱíʾ·
Ïà¹ØÎĵµ£º
ÅäÖÃÎļþÒ»ÀÀ±í ÎļþλÖü°Ãû³Æ,×÷ÓÃ
¡¡¡¡/etc/rc.d/rc.sysinit
¡¡¡¡ÏµÍ³Æô¶¯Ê±µÄ¹«Ó÷þÎñÅäÖÃ
¡¡¡¡/etc/rc.d/rc.local
¡¡¡¡ÏµÍ³Æô¶¯Ê±µÄ±¾µØ·þÎñÅäÖÃ
¡¡¡¡/etc/bashrc¡¢/etc/profile
¡¡¡¡bash shellµÄ¹«ÓÃÅäÖÃ
¡¡¡¡/home/username/.bashrc
¡¡¡¡¸÷Óû§Ë½ÈËbash shellÅäÖÃ
¡¡¡¡/etc/securetty
¡¡¡¡Öն˰²È«ÉèÖÃ
......
1. tr ÃüÁîµÄ¹¦ÄÜ
trÃüÃûÊǼò»¯Á˵ÄsedÃüÁî¡£ÆäÖ÷ÒªµÄ¹¦ÄܰüÀ¨£º
a. ÓÃÒ»¸ö×Ö·ûÀ´Ìæ»»ÁíÍâÒ»¸ö×Ö·û¡£
b. ɾ³ý×Ö·û´®ÖеÄÖ¸¶¨×Ó´®¡£
c. ºÏ²¢×Ö·û´®ÖÐÖØ¸´´®¡£
2. ³£¼ûµÄÃüÁî¸ñʽ£º
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
-c ÓÃ×Ö·û´®1ÖÐ×Ö·û¼¯µÄ²¹¼¯Ìæ»»´Ë×Ö·û¼¯£¬ ......
Ò»¡¢MakefileµÄ¹æÔò
ÔÚ½²ÊöÕâ¸öMakefile֮ǰ£¬»¹ÊÇÈÃÎÒÃÇÏÈÀ´´ÖÂԵؿ´Ò»¿´MakefileµÄ¹æÔò¡£
target ... : prerequisites ...
command
...
...
targetÒ²¾ÍÊÇÒ»¸öÄ¿±êÎļþ£¬¿ÉÒÔÊÇObject File£¬Ò²¿ÉÒÔÊÇÖ´ÐÐÎļþ¡£
prerequisites¾ÍÊÇ£¬ÒªÉú³ÉÄǸötargetËùÐèÒªµÄÎļþ»òÊÇÄ¿±ê¡£
commandÒ²¾ÍÊÇmakeÐèÒªÖ´ÐеÄÃüÁî¡££¨ÈÎ ......
Äںˣ¬ÊÇÒ»¸ö²Ù×÷ϵͳµÄºËÐÄ¡£Ëü¸ºÔð¹ÜÀíϵͳµÄ½ø³Ì¡¢ÄÚ´æ¡¢É豸Çý¶¯³ÌÐò¡¢ÎļþºÍÍøÂçϵͳ£¬¾ö¶¨×ÅϵͳµÄÐÔÄܺÍÎȶ¨ÐÔ¡£Linux×÷Ϊһ¸ö×ÔÓÉÈí¼þ£¬ÔÚ¹ã
´ó°®ºÃÕßµÄÖ§³ÖÏ£¬Äں˰汾²»¶Ï¸üС£ÐµÄÄÚºËÐÞ¶©Á˾ÉÄں˵Äbug£¬²¢Ôö¼ÓÁËÐí¶àеÄÌØÐÔ¡£Èç¹ûÓû§ÏëҪʹÓÃÕâЩÐÂÌØÐÔ£¬»òÏë¸ù¾Ý×Ô¼ºµÄϵͳ¶ÈÉí¶¨ÖÆÒ»
¸ö¸ü¸ßЧ£¬¸üÎȶ¨ ......
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
/boot/grub/menu.lst GRUB ......