ºìÁªLinuxÃÅ»§
Linux°ïÖú

LinuxÕ˺ŹÜÀí

·¢²¼Ê±¼ä:2014-07-08 10:34:16À´Ô´:ºìÁª×÷Õß:velcbo
Ò»¡¢Óû§±êʶ·û£ºUIDÓëGID

ÿ¸öµÇ¼Óû§ÖÁÉÙ¶¼»áÈ¡µÃÁ½¸öID£¬Ò»¸öÊÇÓû§ID(UserID£¬UID)£¬Ò»¸öÊÇÓû§×éID(GroupID£¬GID)¡£

ÿ¸öÎļþ¶¼»áÓÐËùÓÐÕßIDÓëÓû§×éID£¬µ±ÏÔʾÎļþÊôÐÔʱ£¬ÏµÍ³»áÒÀ¾Ý/etc/passwdÓë/etc/groupµÄÄÚÈÝ£¬ÕÒµ½UIDºÍGID¶ÔÓ¦µÄÕ˺ÅÓë×éÃûÏÔʾ³öÀ´¡£UIDÓëÕ˺ÅÊÇÒ»Ò»¶ÔÓ¦µÄ¡£



¶þ¡¢Óû§Õ˺Å

¸úÓû§Õ˺ÅÓйصÄÁ½¸öÎļþ°üÀ¨/etc/passwdºÍ/etc/shadow£¬¾ßÌåÈçÏ£º

1./etc/passwdÎļþ½á¹¹£º´ËÎļþÿһÐдú±íÒ»¸öÕ˺Å

²é¿´/etc/passwdÎļþµÄÊôÐÔ£¬ÎļþµÄȨÏÞΪrootÓû§¿ÉÒÔ¶Áд£¬ÆäËüÓû§ÎªÖ»¶Á£º

[root@hs-uf21 ~]# ll /etc/passwd

-rw-r--r-- 1 root root 2767 Apr 21 21:00 /etc/passwd

²é¿´/etc/passwdÎļþÄÚÈÝ£¬¹²ÓÐ7¸ö×ֶΣ¬Ã¿¸ö×Ö¶ÎʹÓ÷ֺš°:¡±¸ô¿ª£¬·Ö±ðÊÇ£º

[root@hs-uf21 ~]# head /etc/passwd

root : x : 0 : 0 : root : /root : /bin/bash

[ 1 ] [2] [3] [4] [ 5 ] [ 6 ] [ 7 ]

......

[1]£ºÕ˺ÅÃû³Æ

[2]:ÃÜÂë

[3]:UID

[4]:GID

[5]:Óû§ÐÅϢ˵Ã÷

[6]:Ö÷Îļþ¼Ð

[7]:Shell



2./etc/shadowÎļþ½á¹¹£º

²é¿´/etc/shadowÎļþµÄÊôÐÔ£¬ÎļþµÄȨÏÞΪrootʹÓÃÖ»¶Á£º

[root@hs-uf21 ~]# ll /etc/shadow

-r-------- 1 root root 1684 Apr 10 21:28 /etc/shadow

²é¿´/etc/shadowÎļþµÄÄÚÈÝ£¬¹²ÓÐ9¸ö×ֶΣ¬Ã¿¸ö×Ö¶ÎʹÓ÷ֺš°:¡±¸ô¿ª£¬·Ö±ðÊÇ£º

[root@hs-uf21 ~]# head /etc/shadow

root:$1$yI2Xb6os$9C5hnN3POy6sdl0TY8FZv.:15805:0:99999:7:::

......

[1]£ºÕ˺ÅÃû³Æ

[2]:ÃÜÂë

[3]:×î½ü¸üÐÂÃÜÂëµÄÈÕÆÚ

[4]:ÃÜÂë²»¿ÉÒÔ±»¸ü¸ÄµÄÌìÊý

[5]:ÃÜÂëÐèÒªÖØÐ¸ü¸ÄµÄÌìÊý

[6]:ÃÜÂëÐèÒª¸ü¸ÄÆÚÏÞǰµÄ¾¯¸æÌìÊý

[7]:ÃÜÂë¹ýÆÚºóµÄÕ˺ſíÏÞʱ¼ä£¨ÃÜÂëʧЧÈÕ£©

[8]:Õ˺ÅʧЧÈÕÆÚ

[9]:ϵͳ±£Áô

Èý¡¢Óû§×é

¸úÓû§×éÏà¹ØµÄÁ½Îļþ°üÀ¨/etc/groupºÍ/etc/gshadow,¾ßÌåÈçÏ£º

1./etc/groupµÄÎļþ½á¹¹£º

²é¿´/etc/groupÎļþµÄÄÚÈÝ£º¹²4¸ö×ֶΣ¬Ã¿¸ö×Ö¶ÎʹÓ÷ֺš°:¡±¸ô¿ª£¬·Ö±ðÊÇ£º

[root@hs-uf21 etc]# head -n 2 group

root:x:0:root

bin:x:1:root,bin,daemon

[1]:Óû§×éÃû

[2]:Óû§×éÃÜÂë

[3]:GID

[4]:´ËÓû§×éÖ§³ÖµÄÕ˺ţ¬¿ÉÒÔÓжà¸öÕ˺ÅͬÊôÓÚÒ»¸ö×é



²é¿´OracleÓû§ÐÅÏ¢ÓëÓû§×éÐÅÏ¢

[root@hs-uf21 ~]# grep oracle /etc/passwd /etc/group/etc/gshadow

/etc/passwd:oracle:x:501:502::/home/oracle:/bin/bash

/etc/group:dba:x:501:oracle



ÓÐЧÓû§×éÓë³õʼÓû§×é

ʹÓÃgroupsÃüÁî²é¿´oracleÓû§Ö§³ÖµÄÓû§×飬µÚÒ»¸öÏÔʾµÄÓû§×éΪÓÐЧÓû§×飺

[oracle@hs-uf21 ~]$ groups

oinstall dba

¸Ä±äoracleÓû§µÄÓÐЧÓû§×飬ʹÓÃnewgrpÃüÁ

[oracle@hs-uf21 ~]$ newgrpdba

[oracle@hs-uf21 ~]$ groups

dba oinstall



Óû§Ð´´½¨ÎļþµÄËùÊô×éÃûΪµ±Ç°ÓÐЧÓû§×飺

[oracle@hs-uf21 ~]$ touch test.txt

[oracle@hs-uf21 ~]$ ll

-rw-r--r-- 1oracle dba 0 Apr 21 21:40 test.txt



2./etc/gshadowµÄÎļþ½á¹¹£º

²é¿´/etc/gshadowµÄÄÚÈÝ£º¹²4¸ö×ֶΣ¬Ã¿¸ö×Ö¶ÎʹÓ÷ֺš°:¡±¸ô¿ª£¬·Ö±ðÊÇ£º

[root@hs-uf21 etc]# head -n 2 gshadow

root:::root

bin:::root,bin,daemon

[1]:Óû§×éÃû

[2]:Óû§×éÃÜÂë

[3]:Óû§×é¹ÜÀíÔ±ÓÐÕ˺Å

[4]:¸ÃÓû§×éµÄËùÊôÕ˺ţ¨Óë/etc/groupÏàͬ£©

ËÄ¡¢Õ˺ŹÜÀí

1.ÐÂÔöÓû§useradd:

Óï·¨£ºuseradd [-u UID] [-g ³õʼÓû§×é] [-G ´ÎÒªÓû§×é] [-mM][-c Óû§ËµÃ÷] [-d Óû§Ö÷Îļþ¼Ð£¨¾ø¶Ô·¾¶£©] [-s shell] Óû§Õ˺Å

²ÎÊý£º

[-u]:ºóÃæ½ÓUID£¬ÊÇÒ»×éÊý×Ö£¬Ö±½ÓÖ¸¶¨Ò»¸ö´ý¶¨µÄUID¸øÕâ¸öÕ˺Å

[-g]:ºóÃæ½ÓÓû§³õʼÓû§×éÃûinitialgroup

[-G]:ºóÃæ½Ó´ÎÒª×éÃû£¬¼´´ËÕ˺ݹ¿ÉÒÔ¼ÓÈëµÄ×éÃû

[-m]:Ç¿ÖÆ£¡Òª´´½¨Óû§Ö÷Îļþ¼Ð£¨ÆÕͨÕ˺ÅĬÈÏ£©

[-M]:Ç¿ÖÆ£¡²»Òª´´½¨Óû§Ö÷Îļþ¼Ð£¨ÏµÍ³Õ˺ÅĬÈÏ£©

[-c]:

[-d]:Ö¸¶¨Ä³¸öĿ¼ΪÓû§µÄÖ÷Îļþ¼Ð£¬¶ø²»Ê¹ÓÃĬÈÏÖµ£¬±ØÐèʹÓþø¶Ô·¾¶

[-r]:´´½¨Ò»¸öϵͳÕ˺ţ¬Õâ¸öÕ˺ŵÄUID»áÓÐÏÞÖÆ£¨²Î¿¼/etc/login.defs£©

[-s]:ºóÃæ½Óshell,ÈôûÓÐÖ¸¶¨¸ÕĬÈÏÊÇ/bin/bash

[-e]:ºóÃæ½ÓÒ»¸öÈÕÆÚ£¬ÉèÖôËÕ˺ŵÄʧЧÈÕ£¬¸ñʽΪ¡°YYYY-MM-DD¡±´ËÏî»áдÈëshadowµÄµÚ°Ë¸ö×Ö¶Î

[-f]:ºóÃæ½ÓshadowµÄµÚÆß¸ö×ֶΣ¬Ö¸¶¨ÃÜÂëÊÇ·ñ»áʧЧ£¬0ΪÁ¢¿ÌʧЧ£¬-1ΪÓÀÔ¶²»Ê§Ð§

[-D]:²é¿´useraddÃüÁîµÄĬÈÏÖµ



²é¿´useraddÃüÁîµÄĬÈÏÖµ£º

[root@hs-uf21 etc]# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel



ÐÂÓû§user1(ʹÓÃϵͳĬÈϲÎÊý):

[root@hs-uf21 etc]# useradd user1

[root@hs-uf21 etc]# grep user1 passwd shadow groupgshadow

passwd:user1:x:502:503::/home/user1:/bin/bash

shadow:user1:!!:15817:0:99999:7:::

group:user1:x:503:

gshadow:user1:!::

¸øÓû§user1ÉèÖÃÃÜÂ룺

[root@hs-uf21 etc]# passwd user1

Changing password for user user1.

New UNIX password:

BAD PASSWORD: it is too short

Retype new UNIX password:

passwd: all authentication tokens updatedsuccessfully.

²é¿´user1Óû§µÄÖ÷Îļþ¼Ð£ºÄ¬ÈÏȨÏÞÊÇ700

[root@hs-uf21 etc]# ll -d /home/user1

drwx------ 4user1 user1 4096 Apr 22 21:27 /home/user1



×¢Ò⣺ʹÓÃrootÓû§ÉèÖÃÆäËüÓû§µÄÃÜÂë

˵Ã÷£º´´½¨ÆÕͨÓû§Ê±£¬UIDĬÈÏÊÇ´óÓÚ500µÄ£¬²¢ÇÒ»áн¨Ò»¸ö¸úÓû§ÃûÏàͬµÄÓû§×é×öΪ´ËÓû§µÄ³õʼÓû§×é





ÐÂÓû§user2£¬²¢Ö¸¶¨UIDΪ114£¬Ö¸¶¨³õʼÓû§×éΪusers,Ç¿ÖÆ²»´´½¨Ö÷Îļþ¼Ð£º

[root@hs-uf21 etc]# useradd -u 114 -g users -M user2

[root@hs-uf21 etc]# ll -d /home/user2

ls: /home/user2: No such file or directory

[root@hs-uf21 etc]# grep user2 passwd shadow group

passwd:user2:x:114:100::/home/user2:/bin/bash

shadow:user2:!!:15817:0:99999:7:::



×¢Ò⣺ָ¶¨³õʼÓû§×éºó£¬groupÎļþÖÐûÓÐuser2µÄÏà¹ØÐÅÏ¢



ʹÓÃ-r²ÎÊý´´½¨Ò»¸öϵͳÕ˺ţº

[root@hs-uf21 etc]# useradd -r user3

[root@hs-uf21 etc]# ll -d /home/user3

ls: /home/user3: No such file or directory

[root@hs-uf21 etc]# grep user3 passwd shadow group

passwd:user3:x:115:115::/home/user3:/bin/bash

shadow:user3:!!:15817::::::

group:user3:x:115:



×¢Ò⣺ĬÈÏ´´½¨ÏµÍ³Õ˺ŵÄUIDÊÇСÓÚ500µÄ£¬²¢ÇÒûÓд´½¨Óû§Ö÷Îļþ¼Ð£¬Í¬Ê±Ð´´½¨¸úÓû§Í¬ÃûµÄÓû§×é×öΪ´ËÓû§µÄ³õʼÓû§×é



´´½¨ÐÂÓû§Éæ¼°µÄÎļþ£º

Óû§Õ˺ÅÓëÃÜÂë²ÎÊý·½ÃæµÄÎļþ£º/etc/passwd¡¢/etc/shadow

Óû§×éÏà¹Ø·½ÃæµÄÎļþ£º/etc/group ¡¢/etc/gshadow

Óû§Ö÷Îļþ¼Ð£º/home/Õ˺ÅÃû³Æ



useradd²Î¿¼Îļþ£º/etc/default/useradd£¨Ò²¿ÉÒÔʹÓÃÃüÁîuseradd -D²é¿´£©

[root@hs-uf21 etc]# cat /etc/default/useradd

# useradd defaults file

GROUP=100 <<==ĬÈÏÓû§×é

HOME=/home <<==ĬÈÏÖ÷Îļþ¼ÐËùÓÐĿ¼

INACTIVE=-1 <<==ÃÜÂëʧЧÈÕ

EXPIRE= <<==Õ˺ÅʧЧÈÕ

SHELL=/bin/bash <<==ĬÈÏshell

SKEL=/etc/skel <<==Ö¸¶¨Óû§Ö÷Îļþ¼ÐµÄ²Î¿¼»ù׼Ŀ¼



UID/GID¼°ÃÜÂë²ÎÊýµÄ²Î¿¼Îļþ£º/etc/login.defs

[root@hs-uf21 etc]# cat /etc/login.defs

MAIL_DIR /var/spool/mail <<==Óû§Ä¬ÈÏÓʼþÐÅÏä·ÅÖÃĿ¼

PASS_MAX_DAYS 99999 <<==/etc/shadowÄڵĵÚ5ÁУ¬ÉèÖöà¾ÃÐèÒª¸ü¸ÄÃÜÂëµÄÌìÊý

PASS_MIN_DAYS 0 <<==/etc/shadowÄڵĵÚ4ÁУ¬ÉèÖöà¾Ã²»¿ÉÖØÐÂÉèÖÃÃÜÂëµÄÌìÊý

PASS_MIN_LEN 5 <<==ÃÜÂë×î¶ÌµÄ×Ö·û³¤¶È£¬ÒѾ­±»pamÄ£Ê½Ìæ´ú£¬Ê§È¥Ð§ÓÃ

PASS_WARN_AGE 7 <<==/etc/shadowÄڵĵÚ6ÁУ¬ÉèÖÃÃÜÂë¹ýÆÚǰµÄ¾¯¸æÌìÊý

UID_MIN 500 <<==Óû§×îСµÄUID,СÓÚ500µÄUIDΪϵͳ±£Áô

UID_MAX 60000 <<==Óû§×î´óµÄUID

GID_MIN 500 <<==Óû§×Ô¶¨Òå×éµÄ×îСGID,СÓÚ500µÄΪϵͳ±£Áô

GID_MAX 60000 <<==Óû§×Ô¶¨Òå×éµÄ×î´óGID

CREATE_HOME yes <<==ÔÚ²»¼Ó-M¼°-mʱ£¬ÊÇ·ñÖ÷¶¯´´½¨Óû§Ö÷Îļþ¼Ð



2.Óû§ÉèÖÃÃÜÂ룺passwd/chage

passwd:

Óï·¨£ºpasswd[--stdin][-l][-u][-S][-n ÈÕÊý][-x ÈÕÊý][-wÈÕÊý][-i ÈÕÆÚ] Õ˺Å

²ÎÊý£º

[--stdin]:

[-l]:LockµÄÒâ˼£¬»á½«/etc/shadowµÚ¶þÁÐ×îÇ°Ãæ¼ÓÉÏ¡°!¡±Ê¹ÓÃÃÜÂëʧЧ

[-u]:Óë-lÊÇÏà¶ÔµÄ£¬UnlockµÄÒâ˼

[-S]:ÁгöÃÜÂëµÄÏà¹Ø²ÎÊý£¬¼´shadowÎļþÄڵĴ󲿷ÖÐÅÏ¢

[-n]:ºóÃæ½ÓÌìÊý£¬ÐÞ¸ÄshadowÎļþµÄµÚ4ÁУ¬¶à¾Ã²»¿ÉÒÔÐÞ¸ÄÃÜÂëµÄÌìÊý

[-x]:ºóÃæ½ÓÌìÊý£¬ÐÞ¸ÄshadowÎļþµÄµÚ5ÁУ¬¶à¾Ã±ØÐèÒª¸Ä¶¯ÃÜÂëµÄÌìÊý

[-w]:ºóÃæ½ÓÌìÊý£¬ÐÞ¸ÄshadowÎļþµÄµÚ6ÁУ¬ÃÜÂë¹ýÆÚǰµÄ¾¯¸æÌìÊý

[-i]:ºóÃæ½ÓÈÕÆÚ£¬ÐÞ¸ÄshadowÎļþµÄµÚ7ÁУ¬ÃÜÂëʧЧÈÕÆÚ



ÐÞ¸ÄOracleÓû§µÄÃÜÂ룺

[root@hs-uf21 ~]# passwdoracle

Changing password for user oracle.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updatedsuccessfully.



×¢Ò⣺ҪÐÞ¸ÄÆäËüÓû§µÄÃÜÂ룬ÐèҪʹÓá°passwd Õ˺š±µÄ¸ñʽ£¬passwdºóÃæ²»½ÓÓû§±íʾÐÞ¸Ä×Ô¼ºµÄÃÜÂë¡£µ«Ò»°ãÓû§ÐÞ¸Ä×Ô¼ºµÄÃÜÂëʱ£¬ÐèÒªÏÈÊäÈë×Ô¼ºµÄÔ­ÃÜÂ룬¶ørootÓû§²»Óá£LinuxʹÓÃpamģʽÀ´¹ÜÀíÃÜÂ룬Õâ¸ö¹ÜÀíµÄ»úÖÆÐ´ÔÚ/etc/pam.d/passwdµ±ÖС£



ʹÓñê×¼ÊäÈëÐÞ¸ÄÓû§µÄÃÜÂ룺

[root@hs-uf21 ~]# echo "oracle" | passwd --stdin oracle

Changing password for user oracle.

passwd: all authentication tokens updated successfully.



×¢Ò⣺ʹÓÃ--stdinÐÞ¸ÄÓû§ÃÜÂëʱ£¬²»ÐèÒªÔÙ´ÎÊäÈëÃÜÂë¡£µ«ÊÇÐÞ¸ÄÐÅÏ¢»á±»¼Ç¼µ½historyÖС£



chage:change user password expiry information

Óï·¨£ºchage [-ldEImMW] Õ˺Å

²ÎÊý£º

[-l]:Áгö¸ÃÕ˺ŵÄÏêϸÃÜÂë²ÎÊý¡£

[-d]:ºóÃæ½ÓÈÕÆÚ£¬ÐÞ¸ÄshadowÎļþµÄµÚ3ÁУ¨×î½üÒ»´Î¸ü¸ÄÃÜÂëµÄÈÕÆÚ£©£¬¸ñʽ¡°YYYY-MM-DD¡±¡£

[-E]:ºóÃæ½ÓÈÕÆÚ£¬ÐÞ¸ÄshadowÎļþµÄµÚ8ÁУ¨Õ˺ÅʧЧÈÕÆÚ£©£¬¸ñʽ¡°YYYY-MM-DD¡±¡£

[-I]:ºóÃæ½ÓÌìÊý£¬ÐÞ¸ÄshadowÎļþµÄµÚ7ÁУ¬ÃÜÂëʧЧÈÕÆÚ

[-m]:ºóÃæ½ÓÌìÊý£¬ÐÞ¸ÄshadowÎļþµÄµÚ4ÁУ¬¶à¾Ã²»¿ÉÒÔÐÞ¸ÄÃÜÂëµÄÌìÊý

[-M]:ºóÃæ½ÓÌìÊý£¬ÐÞ¸ÄshadowÎļþµÄµÚ5ÁУ¬¶à¾Ã±ØÐèÒª¸Ä¶¯ÃÜÂëµÄÌìÊý

[-W]:ºóÃæ½ÓÌìÊý£¬ÐÞ¸ÄshadowÎļþµÄµÚ6ÁУ¬ÃÜÂë¹ýÆÚǰµÄ¾¯¸æÌìÊý



²é¿´oracleÓû§µÄÃÜÂëÐÅÏ¢£º

[root@hs-uf21 ~]# chage -l oracle

Minimum: 0

Maximum: 99999

Warning: 7

Inactive: -1

Last Change: Apr 24, 2013

Password Expires: Never

Password Inactive: Never

Account Expires: Never



3.usermod:

Óï·¨£ºusermod[-cdegGlsuLu] username

˵Ã÷£ºusermodµÄ²ÎÊý»ù±¾ÒªuseraddÏàͬ¡£



4.userdel:

Óï·¨£ºuserdel[-r] username

²ÎÊý£º

[-r]:Á¬Í¬Óû§µÄÖ÷Îļþ¼ÐҲɾ³ý



ɾ³ýuser3Óû§¼°ÆäÖ÷Îļþ¼Ð£º

[root@hs-uf21 ~]# userdel -r user3

userdel: error removing directory /home/user3

[root@hs-uf21 ~]# ll -a /home/user3

ls: /home/user3: No such file or directory



5.idÃüÁ²é¿´Óû§µÄ»òÕß×Ô¼ºÏà¹ØµÄUID/GIDµÈÐÅÏ¢

Óï·¨£ºid[username]



²é¿´oracleÓû§µÄUID/GIDµÈÐÅÏ¢£º

[root@hs-uf21 ~]# id oracle

uid=501(oracle) gid=502(oinstall)groups=502(oinstall),501(dba)



²é¿´µ±Ç°Óû§µÄUID/GIDµÈÐÅÏ¢£º

[root@hs-uf21 ~]# id

uid=0(root) gid=0(root)groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

You have new mail in /var/spool/mail/root

Îå¡¢Óû§Éí·ÝÇл»



1.suÃüÁî

Óï·¨£ºsu [-lm] [-c ÃüÁî] [username]

²ÎÊý£º

[- ]:µ¥´¿Ê¹ÓÃ- ±íʾʹÓÃlogin-shellµÄ±äÁ¿Îļþ¶ÁȡʽÀ´µÇ¼ϵͳ£¬Èç¹ûûÓÐÓû§Ãû£¬Ôò±íʾÇл»ÎªrootÉí·Ý¡£

[-l]:Óë - ÀàËÆ£¬µ«ºóÃæÐèÒª½ÓÓûÇл»µÄÓû§Õ˺ţ¬Ò²ÊÇlogin-shellµÄ·½Ê½

[-m]:±íʾʹÓÃĿǰµÄ»·¾³ÉèÖ㬶ø²»¶ÁÈ¡ÐÂÓû§µÄÅäÖÃÎļþ

[-c]:½ö½øÐÐÒ»´ÎÃüÁºóÃæ½ÓÐèÒªÖ´ÐеÄÃüÁî



×¢Ò⣺ÈôÒªÍêÕûµØÇл»µ½ÐÂÓû§µÄ±äÁ¿£¬±ØÐëʹÓá°us - username¡±»òÕß¡°su -l username¡±µÄ·½Ê½£¬²¢ÇÒʹÓÃrootÇл»³ÉΪÈκÎÓû§Ê±£¬²¢²»ÐèÒªÊäÈëÐÂÓû§Ãû¡£



2.sudoÃüÁî

sudo¿ÉÒÔÒÔÆäËüÓû§µÄÉí·ÝÖ´ÐÐÃüÁͨ³£ÊÇʹÓÃrootµÄÉí·ÝÀ´Ö´ÐÐÃüÁ£¬µ«²¢·ÇËùÓÐÈ˶¼Äܹ»Ö´ÐÐsudo£¬½öÓÐ/etc/sudoersÄÚµÄÓû§²ÅÄÜÖ´ÐÐsudoÃüÁî¡£

Óï·¨£ºsudo [-b] [-u ÐÂÓû§Õ˺Å]

²ÎÊý£º

[-b]:½«ºóÃæµÄÃüÁîÈÃϵͳ×ÔÐÐÖ´ÐУ¬¶ø²»ÓëĿǰµÄshell²úÉúÓ°Ïì

[-u]:ºóÃæ¿ÉÒÔ½ÓÓûÇл»µÄÓû§£¬ÈôÎÞ´ËÏîÔò´ú±íÇл»Éí·ÝΪroot



rootÓû§Ê¹ÓÃsudoÃüÁîÒÔuser1µÄÉí·ÝÔÚ/home/user1/ÏÂÃæ´´½¨µÄtest.txtÎļþËùÊôÓû§Îªuser1:

[root@hs-uf21 ~]# sudo -u user1 touch/home/user1/test.txt

[root@hs-uf21 ~]# ll -a /home/user1/test.txt

-rw-r--r-- 1 user1 user1 0 Apr 23 22:29 /home/user1/test.txt



3.visudoÓë/etc/sudoers

ÈôÏëÒª³ýÁËrootÖ®ÍâµÄÆäËûÕ˺ÅʹÓÃsudoÃüÁîÖ´ÐÐÊôÓÚrootµÄȨÏÞÃüÁÔòrootÐèÒªÏÈʹÓÃvisudoÈ¥ÐÞ¸Ä/etc/sudoersÎļþ£¬ÈøÃÕ˺ÅÄܹ»Ê¹ÓÃÈ«²¿»ò²¿·ÖµÄrootµÄÃüÁÄÜ¡£Ò²¿ÉÒÔÖ±½ÓʹÓÃvi»òÕßvim±à¼­£¬µ«sudoersÎļþÓÐ×Ô¼ºµÄÓï·¨½á¹¹£¬Èç¹ûÉèÖôíÎó»áµ¼ÖÂsudoÃüÁîÎÞ·¨Ê¹Óá£



ϵͳĬÈÏÖ»ÓÐrootÓû§²Å¿ÉÒÔÖ´ÐÐsudoÃüÁ

[Oracle@hs-uf21 ~]$ sudo -u user1 touch/home/user1/test.txt

Password:

oracle is not in the sudoers file. This incident will be reported.



ʹÓÃvisudoÃüÁîÐÞ¸Ä/etc/sudoersÎļþ£¬Ê¹oracleʹÓÿÉÒÔʹÓÃsudoÖ´ÐÐrootÓû§µÄÈ«²¿ÃüÁ

[root@hs-uf21 ~]# visudo

# sudoers file.

root ALL=(ALL) ALL

oracle ALL=(ALL) ALL <<==Ôö¼Ó´ËÐÐ

[root@hs-uf21 ~]# su - oracle

[oracle@hs-uf21 ~]$ sudo -u user1 touch/home/user1/test2.txt

[oracle@hs-uf21 ~]$ sudo ls -al /home/user1/test2.txt

-rw-r--r-- 1 user1 user1 0 Apr 23 22:43 /home/user1/test2.txt



˵Ã÷£º

root ALL=(ALL) ALL

[Óû§Õ˺Å][µÇ¼ÕßµÄÀ´Ô´Ö÷»úÃû][(¿ÉÇл»µÄÉí·Ý)][¿ÉÖ´ÐеÄÃüÁî]

[Óû§Õ˺Å]£ºÏµÍ³µÄÄǸöÕ˺ſÉÒÔʹÓÃsudoÃüÁĬÈÏÕ˺ÅÖ»ÓÐroot¡£

[µÇ¼ÕßµÄÀ´Ô´Ö÷»úÃû]£ºÕâ¸öÕ˺ÅÓÉÄÇ̨Ö÷»úÁ¬½Óµ½±¾LinuxÖ÷»ú£¬Ä¬ÈÏroot¿ÉÒÔÀ´×ÔÈκÎÒ»Ì¨ÍøÂçÖ÷»ú¡£

[(¿ÉÇл»µÄÉí·Ý)]£ºÕâ¸öÕ˺ſÉÒÔÇл»³ÉʲôÉí·ÝÀ´Ö´ÐкóÐøµÄÃüÁĬÈÏroot¿ÉÒÔÇл»³ÉʹÓÃÓû§¡£

[¿ÉÖ´ÐеÄÃüÁî]£ºÕâ¸öÃüÁî±ØÐëʹÓþø¶Ô·¾¶£¬Ä¬ÈÏroot¿ÉÒÔÇл»ÈκÎÉí·Ý£¬ÇÒÖ´ÐÐÈκÎÃüÁî¡£



ÓÃoracleÓû§²é¿´/etc/shadowÎļþ»áÌáʾûÓÐȨÏÞ£¬µ«Ê¹ÓÃsudo¿ÉÒԲ鿴£º

[oracle@hs-uf21 ~]$ head -n 10 /etc/shadow

head: cannot open `/etc/shadow' for reading:Permission denied

[oracle@hs-uf21 ~]$ sudo head -n 10 /etc/shadow

Password:

root:$1$yI2Xb6os$9C5hnN3POy6sdl0TY8FZv.:15805:0:99999:7:::

.........



ÀûÓÃÓû§×éÒÔ¼°ÃâÃÜÂëµÄ¹¦ÄÜ´¦Àívisudo:

[root@hs-uf21 ~]# visudo

# sudoers file.

# %wheel ALL=(ALL) ALL

%user1 ALL=(ALL) ALL <<==Ôö¼Ó´ËÐÐ,ʹÓÃÓû§×é¿ÉÒÔʹÓÃÓû§×éuser1ÏÂÃæµÄÓû§¿ÉÒÔʹÓÃsudoÃüÁî



[user1@hs-uf21 ~]$ head /etc/shadow

head: cannot open `/etc/shadow' for reading:Permission denied

[user1@hs-uf21 ~]$ sudo head /etc/shadow

Password:

root:$1$yI2Xb6os$9C5hnN3POy6sdl0TY8FZv.:15805:0:99999:7:::

bin:*:15805:0:99999:7:::



ʹÓÃvisudo±à¼­/etc/sudoersÎļþ£¬¿ÉÒÔÈÃÓû§ÃâÊä³öÃÜÂëÖ´ÐÐsudoÃüÁ

[root@hs-uf21 ~]# visudo

# sudoers file.

# %wheel ALL=(ALL) NOPASSWD: ALL

%user1 ALL=(ALL) NOPASSWD: ALL

[root@hs-uf21 ~]# su user1

[user1@hs-uf21 root]$ sudo head /etc/shadow

root:$1$yI2Xb6os$9C5hnN3POy6sdl0TY8FZv.:15805:0:99999:7:::

×¢Ò⣺±¾´ÎʹÓÃsudoÖ´ÐÐÃüÁîûÓÐÊäÈëÃÜÂë¡£



ÓÐÏÞÖÆµÄ²Ù×÷ÃüÁ



[root@hs-uf21 ~]# visudo

# User privilege specification

root ALL=(ALL) ALL

oracle ALL=(ALL) ALL

adminpwd ALL=(root) /usr/bin/passwd

[adminpwd@hs-uf21 ~]$ sudo passwd user1

Changing password for user user1.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updatedsuccessfully.

Ö»Ö´ÐÐsudopasswdʱÌáʾ¸ü¸ÄrootÓû§µÄÃÜÂ룺

[adminpwd@hs-uf21 ~]$ sudo passwd

Changing password for user root.

New UNIX password:



ʹÓÃvisudoÃüÁîÐÞ¸Ä/etc/sudoersÎļþ£¬È«adminpwdÓû§Ö»ÄÜʹÓóýÁËrootµÄÖ®ÍâµÄÆäËüÓû§µÄÃÜÂ룺

[root@hs-uf21 ~]# visudo

# User privilege specification

root ALL=(ALL) ALL

oracle ALL=(ALL) ALL

#adminpwd ALL=(root) /usr/bin/passwd <<==´ËÐиü¸ÄΪÏÂÃæµÄд·¨

adminpwd ALL=(root) !/usr/bin/passwd,!/usr/bin/passwdroot,/usr/bin/passwd [A-Za-z]*

[root@hs-uf21 ~]# su - adminpwd

[adminpwd@hs-uf21 ~]$ sudo passwd

Sorry, user adminpwd is not allowed to execute'/usr/bin/passwd' as root on hs-uf21.



ͨ¹ý±ðÃûÉèÖÃvisudo:

[root@hs-uf21 ~]# visudo

# sudoers file.

# User alias specification

User_Alias ADMINPWD = oracle, adminpwd,user1

# Cmnd alias specification

Cmnd_Alias ADMINCMD =!/usr/bin/passwd,!/usr/bin/passwd root,/usr/bin/passwd [A-Za-z]*

# User privilege specification

root ALL=(ALL) ALL

#oracle ALL=(ALL) ALL

#adminpwd ALL=(root) !/usr/bin/passwd,!/usr/bin/passwdroot,/usr/bin/passwd [A-Za-z]*

ADMINPWD ALL=(root) ADMINCMD





[root@hs-uf21 ~]# su oracle

[oracle@hs-uf21 root]$ sudo head /etc/shadow

Password:

Sorry, user oracle is not allowed to execute'/usr/bin/head /etc/shadow' as root on hs-uf21.

[oracle@hs-uf21 root]$ sudo passwd

Sorry, user oracle is not allowed to execute'/usr/bin/passwd' as root on hs-uf21.

[oracle@hs-uf21 root]$ sudo passwd user3

Changing password for user user3.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updatedsuccessfully.



×¢Ò⣺User_Alias£¬Cmnd_Alias£¬Host_AliasµÄÃû³ÆÒ»¶¨ÒªÊ¹Óôóд¡£

×÷Õߣºzhang_ruihua
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ