4-User, Group
4-User, Group
4-User, Group
LPI
Li
C1
nuxAdmi
nist
rat
or
User
,Gr
oup
t
.me/
Behzad_
Abyar
i
ﺑﻪ ﻧﺎم ﺧﺪا
ﺑﺮاي ﻣﺸﺎﻫﺪه ﺗﻤﺎﻣﯽ ﯾﻮزرﻫﺎي ﻣﻮﺟﻮد در ﻟﯿﻨﻮﮐﺲ ﺑﺎ catﮐﺮدن ﻓﺎﯾﻞ /etc/passwdﻣﯽﺗﻮاﻧﯿﻢ ﺗﻤﺎﻣﯽ ﯾﻮزرﻫﺎي ﻣﻮﺟﻮد در ﻟﯿﻨﻮﮐﺲ را ﻣﺸﺎﻫﺪه ﮐﻨﯿﻢ.
ﯾﻮزرﻫﺎﯾﯽ از ﻗﺒﯿﻞ ﺳﯿﺴﺘﻤﯽ ،ﯾﻮزرﻫﺎﯾﯽ ﮐﻪ ﺑﻪ وﺳﯿﻠﻪ اﭘﻠﯿﮑﯿﺸﻦﻫﺎ اﯾﺠﺎد ﺷﺪهاﻧﺪ و ﯾﻮزرﻫﺎﯾﯽ ﮐﻪ ﺧﻮدﻣﺎن اﯾﺠﺎد ﮐﺮده اﯾﻢ ﮐﻪ در اﯾﻦ دوره ﺗﻤﺮﮐﺰ ﻣﺎ ﺑﺮ
روي ﯾﻮزرﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ﺧﻮدﻣﺎن اﯾﺠﺎد ﻣﯽﮐﻨﯿﻢ.
در اﯾﻦ ﻟﯿﺴﺖ ﻃﻮﻻﻧﯽ ﮐﻪ ﺑﺨﺸﯽ از آن در ﺗﺼﻮﯾﺮ آﻣﺪه ﺟﺰﺋﯿﺎت ﻣﺨﺘﻠﻔﯽ از ﺗﻤﺎﻣﯽ ﯾﻮزرﻫﺎ آورده ﺷﺪه اﺳﺖ.
ﺑﺮاي اﯾﻨﮑﻪ ﯾﮏ ﯾﻮزر ﻣﺠﺰا را ﺑﺒﯿﻨﯿﻢ ﺑﺮش ﺳﻄﺮي ﻣﯽزﻧﯿﻢ.
اﯾﻦ ﺳﻄﺮ ﺷﺎﻣﻞ 7ﺳﺘﻮن اﺳﺖ ﮐﻪ ﺑﺎ :از ﻫﻢ ﻣﺠﺰا ﺷﺪه اﺳﺖ ﮐﻪ ﺑﻪ ﺗﻮﺿﯿﺢ اﯾﻦ ﺳﺘﻮنﻫﺎ ﻣﯽﭘﺮدازﯾﻢ.
ﺳﺘﻮن اول ﻧﺎم ﮐﺎرﺑﺮ اﺳﺖ -ﺳﺘﻮن دوم xﻧﻤﺎد ﭘﺴﻮرد اﺳﺖ ﮐﻪ ﺑﺪﻟﯿﻞ ﻣﺴﺎﺋﻞ اﻣﻨﯿﺘﯽ در ﻓﺎﯾﻞ دﯾﮕﺮي ﺑﻪ ﺻﻮرت Hashﺷﺪه ذﺧﯿﺮه ﻣﯽﺷﻮد -ﺳﺘﻮن
ﺳﻮم UIDﻣﺮﺑﻮط ﺑﻪ ﯾﻮزر اﺳﺖ) (Unique IDﮐﻪ در Linuxﻫﺎي RedHat Baseاز 500و در Linuxﻫﺎي Debian Baseاز 1000ﺷﺮوع
ﻣﯽﺷﻮد ﯾﻌﻨﯽ در اﯾﻨﺠﺎ ﯾﻮزر behzadاوﻟﯿﻦ ﯾﻮزر ﺳﺎﺧﺘﻪ ﺷﺪه ﺗﻮﺳﻂ ﻣﺎ در ﺣﯿﻦ ﻧﺼﺐ ﺳﯿﺴﺘﻢ اﺳﺖ ﮐﻪ 1000 UIDﺑﻪ آن اﺧﺘﺼﺎص داده ﺷﺪه
اﺳﺖ .اﻋﺪاد ﻣﺎﻗﺒﻞ ﺑﻪ ﯾﻮزرﻫﺎي ﺳﯿﺴﺘﻤﯽ و اﭘﻠﯿﮑﯿﺸﻦﻫﺎ اﺧﺘﺼﺎص ﻣﯽﯾﺎﺑﺪ -ﺳﺘﻮن ﭼﻬﺎرم ﻣﺮﺑﻮط ﺑﻪ ﮔﺮوه اﺻﻠﯽ ﯾﻮزر اﺳﺖ ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ در ﻫﻨﮕﺎم
ﺳﺎﺧﺖ ﻫﺮ ﯾﻮزر ﻣﯽﺑﺎﯾﺴﺖ اﻟﺰاﻣﺎً ﯾﮏ ﮔﺮوه اﺻﻠﯽ ﺑﺮاي ﯾﻮزر ﻣﺸﺨﺺ ﺷﻮد و ﺳﺎﯾﺮ ﮔﺮوهﻫﺎﯾﯽ ﮐﻪ ﯾﻮزر ﻋﻀﻮ آن ﻣﯽﺷﻮد ﮔﺮوهﻫﺎي ﻓﺮﻋﯽ آن ﯾﻮزر ﻣﺤﺴﻮب
ﻣﯽﺷﻮد .اﻟﺒﺘﻪ اﮔﺮ در ﻫﻨﮕﺎم ﺳﺎﺧﺖ ﯾﻮزر ﮔﺮوه اﺻﻠﯽ ﻣﻌﺮﻓﯽ ﻧﺸﻮد ﻟﯿﻨﻮﮐﺲ ﯾﮏ ﮔﺮوه ﺑﺎ ﻧﺎم ﯾﻮزر ﻣﻮرد ﻧﻈﺮ ﺳﺎﺧﺘﻪ و آن ﯾﻮزر را ﻋﻀﻮ ﻫﻤﺎن ﮔﺮوه ﺑﻪ
ﻋﻨﻮان ﮔﺮوه اﺻﻠﯽ ﯾﻮزر ﻣﯽﮐﻨﺪ .ﮔﺮوهﻫﺎ ﻧﯿﺰ ﻣﺎﻧﻨﺪ ﯾﻮزرﻫﺎ Group IDدارﻧﺪ ﮐﻪ ﺑﻪ اﺧﺘﺼﺎر GIDﻣﯽﮔﻮﺋﯿﻢ و ﻣﺎﻧﻨﺪ UIDﻗﻮاﻧﯿﻦ ﺷﻤﺎرهﻫﺎ درﺑﺎره آﻧﻬﺎ
ﻧﯿﺰ ﺻﺪق ﻣﯽﮐﻨﺪ -ﺳﺘﻮن ﭘﻨﺠﻢ در واﻗﻊ Descriptionاﺳﺖ -ﺳﺘﻮن ﺷﺸﻢ آدرس Home Directoryﮐﺎرﺑﺮ را ﻧﺸﺎن ﻣﯽدﻫﺪ -ﺳﺘﻮن ﻫﻔﺘﻢ آدرس
ﻓﺎﯾﻞ اﺟﺮاﯾﯽ Default shellﻣﺮﺑﻮط ﺑﻪ ﯾﻮزر اﺳﺖ.
اﯾﻦ دو ﻓﺮﻣﺎن ﺑﺪﯾﻦ ﺻﻮرت ﻫﺴﺘﻨﺪ ﮐﻪ ﻓﺮﻣﺎن whereisﻧﺸﺎن ﻣﯽدﻫﺪ ﮐﻪ ﯾﮏ دﺳﺘﻮر در ﮐﺪام Subdirectoriesواﻗﻊ ﺷﺪه اﺳﺖ و ﻓﺮﻣﺎن which
ﻧﺸﺎن ﻣﯽدﻫﺪ ﮐﻪ اﯾﻦ دﺳﺘﻮر از ﮐﺠﺎ اﺟﺮا ﻣﯽﺷﻮد.
Page 1 of 6
ﮔﺮوهﻫﺎ در ﻟﯿﻨﻮﮐﺲ ﻧﯿﺰ ﺑﻪ ﻣﺎﻧﻨﺪ ﯾﻮزرﻫﺎ در ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ آدرس /etc/groupﻧﮕﻬﺪاري ﻣﯽﺷﻮﻧﺪ ﮐﻪ ﺑﺨﺸﯽ از آن در زﯾﺮ ﻣﺸﺨﺺ اﺳﺖ.
ﻫﺮ ﺧﻂ ﻧﺸﺎن دﻫﻨﺪه ﯾﮏ ﮔﺮوه اﺳﺖ و از ﭼﻬﺎر ﺳﺘﻮن ﮐﻪ ﺑﺎ :از ﻫﻢ ﺟﺪا ﺷﺪهاﻧﺪ ﺗﺸﮑﯿﻞ ﺷﺪه اﺳﺖ.
ﺳﺘﻮن اول ﻧﺎم ﮔﺮوه اﺳﺖ -ﺳﺘﻮن دوم ﭘﺴﻮرد ﮔﺮوه اﺳﺖ ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ در ﻟﯿﻨﻮﮐﺲ ﻣﯽﺗﻮاﻧﯿﻢ ﺑﺮاي ﻫﺮ ﮔﺮوه ﭘﺴﻮرد ﺑﮕﺬارﯾﻢ ﮐﻪ اﮔﺮ ﻻزم ﺑﻮد ﻣﻮﻗﺖ ﺑﻪ
ﯾﻮزري ﻏﯿﺮ از ﯾﻮزرﻫﺎي ﻋﻀﻮ ﮔﺮوه دﺳﺘﺮﺳﯽ دﻫﯿﻢ ﺑﺎ ﮔﺬاﺷﺘﻦ ﭘﺴﻮرد روي ﮔﺮوه و دادن ﭘﺴﻮرد ﺑﻪ ﯾﻮزر ﺟﺪﯾﺪ اﯾﻦ دﺳﺘﺮﺳﯽ را ﺑﻪ آن ﻣﯽدﻫﯿﻢ و ﺑﺎ
ﺗﻐﯿﯿﺮ ﭘﺴﻮرد اﯾﻦ دﺳﺘﺮﺳﯽ را ﻏﯿﺮﻓﻌﺎل ﻣﯽﮐﻨﯿﻢ در اﺻﻞ اﯾﻦ دﺳﺘﺮﺳﯽ ﺑﺮاي زﻣﺎن ﮐﻮﺗﺎه ﮐﻪ ﻧﺨﻮاﻫﯿﻢ ﯾﻮزر را ﻋﻀﻮ ﮔﺮوه ﮐﻨﯿﻢ ﮐﺎرﺑﺮد دارد -ﺳﺘﻮن ﺳﻮم
GIDﻣﺮﺑﻮط ﺑﻪ ﮔﺮوه اﺳﺖ ) -(Group IDﺳﺘﻮن ﭼﻬﺎرم ﯾﻮزرﻫﺎﯾﯽ را ﻧﺸﺎن ﻣﯽدﻫﺪ ﮐﻪ اﯾﻦ ﮔﺮوه ،ﮔﺮوه ﻓﺮﻋﯽ آﻧﻬﺎ ﻣﺤﺴﻮب ﻣﯽﺷﻮد.
ﺑﺮاي اﯾﺠﺎد ﮔﺮوه از ﻓﺮﻣﺎن groupaddاﺳﺘﻔﺎده ﻣﯽﮐﻨﯿﻢ.
ﺑﺮاي ﺳﺎﺧﺖ ﯾﮏ ﯾﻮزر ﺟﺪﯾﺪ ﺑﻪ ﻃﺮﯾﻖ زﯾﺮ ﻋﻤﻞ ﻣﯽﮐﻨﯿﻢ) .ﻧﺎم ﯾﻮزر amirو ﮔﺮوه اﺻﻠﯽ آن ITو دو ﮔﺮوه دﯾﮕﺮ ﮔﺮوه ﻓﺮﻋﯽ آن اﺳﺖ(
Page 2 of 6
ﺑﺮاي ﻣﺜﺎل ﻣﺎ ﺑﺮاي ﯾﻮزر daniyalﻫﻢ ﺑﻪ ﺷﮑﻞ ﺑﺎﻻ ﻋﻤﻞ ﻣﯽﮐﻨﯿﻢ.
ﺑﺮاي اﯾﻨﮑﻪ ﺑﺒﯿﻨﯿﻢ ﮐﻪ ﯾﮏ ﯾﻮزر ﻋﻀﻮ ﭼﻪ ﮔﺮوهﻫﺎﯾﯽ اﺳﺖ از ﻓﺮﻣﺎن groupsاﺳﺘﻔﺎده ﻣﯽﮐﻨﯿﻢ .اﻟﺒﺘﻪ اﯾﻦ ﻓﺮﻣﺎن ﮔﺮﭼﻪ اوﻟﯿﻦ ﮔﺮوه را ﺑﻪ ﻋﻨﻮان ﮔﺮوه
اﺻﻠﯽ ﻧﺸﺎن ﻣﯽدﻫﺪ وﻟﯽ در ﺑﻌﻀﯽ ﻣﻮاﻗﻊ ﻣﻤﮑﻦ اﺳﺖ ﮐﻪ ﺑﻪ درﺳﺘﯽ ﻧﺸﺎن دﻫﻨﺪه ﮔﺮوه اﺻﻠﯽ ﻧﺒﺎﺷﺪ.
ﻓﺮﻣﺎن ﺑﻬﺘﺮي ﮐﻪ ﺑﻪ درﺳﺘﯽ ﮔﺮوه اﺻﻠﯽ و ﮔﺮوﻫﻬﺎي ﻓﺮﻋﯽ ﯾﮏ ﯾﻮزر را ﻧﺸﺎن ﻣﯽدﻫﺪ idاﺳﺖ.
ﺗﺎ اﻻن دو ﯾﻮزري ﮐﻪ ﺳﺎﺧﺘﯿﻢ ﺑﺪون ﭘﺴﻮرد اﺳﺖ .اﻣﺎ ﻗﺒﻞ از ﮔﺬاﺷﺘﻦ ﭘﺴﻮرد ﺑﻪ ﻣﺴﯿﺮي ﮐﻪ ﭘﺴﻮرد ﯾﻮزرﻫﺎ ﺑﻪ ﺻﻮرت Hashﺷﺪه در آن ﻧﮕﻬﺪاري
ﻣﯽﺷﻮد ﻣﯽروﯾﻢ/etc/shadow :
ﭘﯿﺶ از اﯾﻦ ﯾﺎد ﮔﺮﻓﺘﯿﻢ ﮐﻪ ﺑﺎ ﻓﺮﻣﺎن passwdﻣﯽﺗﻮاﻧﯿﻢ ﺑﺮاي ﯾﻮزر ﭘﺴﻮرد ﺗﻌﺮﯾﻒ ﮐﻨﯿﻢ .ﺑﺎ اﺳﺘﻔﺎده از ﻫﻤﯿﻦ ﻓﺮﻣﺎن ﺑﺮاي ﯾﻮزر amirﭘﺴﻮرد ﺗﻌﺮﯾﻒ
ﮐﺮده و ﻧﺘﯿﺠﻪ را در ﻓﺎﯾﻞ shadowﻣﺸﺎﻫﺪه ﻣﯽﮐﻨﯿﻢ.
Page 3 of 6
* ﮐﺎرﺑﺮ rootﺑﻪ ﻫﻤﻪ ﯾﻮزرﻫﺎ ارﺟﻌﯿﺖ دارد ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ از ﮐﺎرﺑﺮ روت ﺑﻪ ﻫﺮ ﯾﻮزري ﺗﻐﯿﯿﺮ ﮐﺎرﺑﺮي دﻫﯿﻢ از ﻣﺎ ﭘﺴﻮرد ﯾﻮزر را ﻧﻤﯽﭘﺮﺳﺪ.
ﺑﺮاي ﺗﻌﺮﯾﻒ ﭘﺴﻮرد ﺑﺮاي ﮔﺮوه از دﺳﺘﻮر gpasswdاﺳﺘﻔﺎده ﻣﯽﮐﻨﯿﻢ .در ﻣﺜﺎل زﯾﺮ ﺑﺮاي ﮔﺮوه Developerﭘﺴﻮرد ﮔﺬاﺷﺘﯿﻢ و ﺳﭙﺲ ﺑﺎ catﮐﺮدن
ﻓﺎﯾﻞ /etc/gshadowﮐﻪ ﻣﺤﻞ ﻧﮕﻬﺪاري ﭘﺴﻮرد ﮔﺮوهﻫﺎ اﺳﺖ ﻣﯽﺑﯿﻨﯿﻢ ﮐﻪ در ﺳﺘﻮن دوم ﻣﺸﺎﺑﻪ ﻓﺎﯾﻞ shadowﺑﺮاي ﯾﻮزرﻫﺎ ﭘﺴﻮرد Hashﺷﺪه
ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ﺣﺎل آﻧﮑﻪ ﺑﺮاي ﮔﺮوه Phytonﮐﻪ ﭘﺴﻮردي ﺗﻌﺮﯾﻒ ﻧﮑﺮدهاﯾﻢ ﺳﺘﻮن دوم ! اﺳﺖ.
ﺑﺮاي ﻗﻔﻞ ﮐﺮدن ﯾﺎ ﻏﯿﺮ ﻓﻌﺎل ﮐﺮدن ﯾﮏ ﯾﻮزر ﺑﻪ دو ﻃﺮﯾﻖ ﻣﯽﺗﻮاﻧﯿﻢ ﻋﻤﻞ ﮐﻨﯿﻢ اول ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر usermodﺑﺎ ﺳﻮﺋﯿﭻ -Lﮐﺎرﺑﺮ را ﻏﯿﺮ ﻓﻌﺎل
ﻣﯽﮐﻨﯿﻢ و ﺑﺎ ﺳﻮﺋﯿﭻ -Uآن را از ﺣﺎﻟﺖ ﻏﯿﺮ ﻓﻌﺎل ﺑﺎزﻣﯽﮔﺮداﻧﯿﻢ .ﮐﻪ در اﯾﻦ ﺣﺎﻟﺖ ﻟﯿﻨﻮﮐﺲ ﯾﮏ ! ﺑﻪ اﺑﺘﺪاي اﻟﮕﻮرﯾﺘﻢ Hashﻓﺎﯾﻞ ﭘﺴﻮرد ﯾﻮزر اﺿﺎﻓﻪ
Page 4 of 6
ﮐﺮده و در اﺻﻞ ﭘﺴﻮرد آن را ﺑﻼاﺳﺘﻔﺎده ﻣﯽﮐﻨﺪ و ﻣﺎ در ﻫﻨﮕﺎم ﺳﻮﺋﯿﭻ از ﯾﻮزري ﻏﯿﺮ از ) rootﭼﻮن ﯾﻮزر روت ﺑﺪون ﭘﺴﻮرد ﺑﻪ ﻫﺮ ﯾﻮزري ﺳﻮﺋﯿﭻ
ﻣﯽﮐﻨﺪ( ﺑﺎ ﭘﯿﻐﺎم Authentication failureﻣﻮاﺟﻪ ﻣﯽﺷﻮﯾﻢ.
دوﻣﯿﻦ روش ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر passwdاﺳﺖ ﮐﻪ ﺑﺎ ﺳﻮﺋﯿﭻ -lﯾﻮزر را ﻏﯿﺮﻓﻌﺎل و ﺑﺎ ﺳﻮﺋﯿﭻ -uﯾﻮزر را ﻣﺠﺪد ﻓﻌﺎل ﻣﯽﮐﻨﺪ .در ﺗﺼﻮﯾﺮ زﯾﺮ اﺑﺘﺪا ﯾﻮزر
daniyalرا ﻏﯿﺮ ﻓﻌﺎل ﮐﺮده و اﻟﮕﻮرﯾﺘﻢ ﭘﺴﻮرد آن را ﻣﯽﺑﯿﻨﯿﻢ ﮐﻪ ﺑﺎ ! ﺷﺮوع ﻣﯽﺷﻮد و ﻧﻤﯽﺗﻮاﻧﯿﻢ ﺑﺎ اﯾﻦ ﯾﻮزر وارد ﺷﻮﯾﻢ ،ﺳﭙﺲ ﺑﺎ ﻓﻌﺎل ﮐﺮدن ﻣﺠﺪد
ﯾﻮزر daniyalﻣﯽﺑﯿﻨﯿﻢ ﮐﻪ در اﺑﺘﺪاي اﻟﮕﻮرﯾﺘﻢ ﭘﺴﻮرد آن ! ﺣﺬف ﺷﺪه و ﻣﯽﺗﻮاﻧﯿﻢ ﺑﻪ ﺻﻮرت ﻋﺎدي ﺑﺎ ﯾﻮزر ﻣﻮرد ﻧﻈﺮﻣﺎن وارد ﺷﻮﯾﻢ.
ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﺎن userdelﻣﯽﺗﻮاﻧﯿﻢ اﻗﺪام ﺑﻪ ﺣﺬف ﯾﮏ ﯾﻮزر ﮐﻨﯿﻢ اﻟﺒﺘﻪ ﻣﯽﺗﻮاﻧﯿﻢ Home Directoryﯾﻮزر را ﺑﺴﺘﻪ ﺑﻪ ﻧﯿﺎز ﯾﺎ ﺷﺮاﯾﻂ ﻧﮕﻬﺪارﯾﻢ.
ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر ﻣﺎ از ﻣﯿﺎن دو ﯾﻮزري ﮐﻪ ﺳﺎﺧﺘﯿﻢ ﯾﮑﯽ را ﺑﺎ ) Home Directory(daniyalو دﯾﮕﺮي را ﺑﺪون ) Home Directory(amirﺣﺬف
ﻣﯽﮐﻨﯿﻢ.
Page 5 of 6
در ﻣﺒﺎﺣﺚ اﻣﻨﯿﺖ ﻣﻤﮑﻦ اﺳﺖ ﻧﯿﺎزﻣﻨﺪ اﯾﻦ ﺑﺎﺷﯿﻢ ﺗﺎ shadowingرا ﻏﯿﺮ ﻓﻌﺎل ﮐﻨﯿﻢ ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ ﭘﺴﻮرد ﯾﻮزرﻫﺎ و ﮔﺮوهﻫﺎ در دو ﻓﺎﯾﻞ shadowو
gshadowذﺧﯿﺮه ﻧﺸﻮد و در ﻓﺎﯾﻞ passwdو groupذﺧﯿﺮه ﺷﻮد).ﺑﻪ ﺟﺎي (xﺑﺎ زدن دﺳﺘﻮر pwunconvاﯾﻦ ﺧﺎﺻﯿﺖ ﻓﻌﺎل ﻣﯽﺷﻮد و ﻓﺎﯾﻞ
shadowاز ﺑﯿﻦ ﻣﯽرود .ﺑﺎ زدن دﺳﺘﻮر pwconvاﯾﻦ ﺧﺎﺻﯿﺖ ﻏﯿﺮ ﻓﻌﺎل ﻣﯽﺷﻮد و ﻓﺎﯾﻞ shadowﺑﺎزﮔﺮداﻧﯽ ﻣﯽﺷﻮد.
ﺑﺮاي ﮔﺮوهﻫﺎ دﺳﺘﻮر ﻣﺸﺎﺑﻪ ﺑﺮاي ﺣﺬف و ﺑﺎزﮔﺮداﻧﯽ ﻓﺎﯾﻞ gshadowدو دﺳﺘﻮر grpunconvو grpconvﻣﯽﺑﺎﺷﺪ.
Page 6 of 6