Linux系統修改已有使用者(組)的uid和gid

dbasdk發表於2018-11-05

Linux系統下有時需要在不同主機上掛載共同的NAS,同時要求NAS裡的檔案或資料夾具有一致的屬主屬組,這就要求各個主機上的某些使用者(通常是業務使用者)及使用者組具備相同的uid和gid。如果不同主機的系統沒有按相同的規則建立使用者,那麼就可能需要修改已有使用者(組)的uid和gid,下面結合例項介紹修改方法:


修改前:

有2個使用者tomcat和nginx的資訊如下

uid=501(tomcat) gid=501(tomcat) groups=501(tomcat)

uid=500(nginx) gid=500(nginx) groups=500(nginx)


要求修改為:

uid=501(nginx) gid=501(nginx) groups=501(nginx)

uid=500(tomcat) gid=500(tomcat) groups=500(tomcat)


修改時注意:

1、要先把tomcat和nginx使用者下的應用都停掉;

2、改的時候不能用tomcat、nginx使用者進行SSH登陸;

3、改了之後還要恢復目錄屬主屬組。


修改步驟:

一、root使用者下操作,先改其中一個,這裡選擇的是nginx

先把nginx換成沒有使用的uid和gid

id nginx;groupmod -g 507 nginx;usermod -u 507 -g nginx nginx;id nginx


二、把原來屬主屬組為nginx的檔案及資料夾再次設定屬主屬組為nginx

這一步要特別注意,此案例中tomcat和nginx剛好是要交換uid和gid,所以需要在tomcat使用者改用nginx的uid和gid(這裡是500)之前,將原來屬主屬組為nginx的檔案及資料夾再次設定屬主屬組為nginx(這就要求對相關路徑比較熟悉),以免後面出現混亂。

chown -R nginx:nginx /home/nginx

其它的按實際修改


這裡可以藉助find命令查詢,如查詢根目錄下gid為500的檔案及資料夾

find / -gid 500


三、修改tomcat的uid和gid

之前已將tomcat需要的500騰出,現在可以將tomcat的uid和gid改成500了

id tomcat;groupmod -g 500 tomcat;usermod -u 500 -g tomcat tomcat;id tomcat


四、把原來屬主屬組為tomcat的檔案及資料夾再次設定屬主屬組為tomcat

chown -R tomcat:tomcat /home/tomcat

其它的按實際修改


五、再次修改nginx的uid和gid

之前已將nginx需要的501騰出,現在可以將nginx的uid和gid改成501了

id nginx;groupmod -g 501 nginx;usermod -u 501 -g nginx nginx;id nginx


六、把原來屬主屬組為nginx的檔案及資料夾再次設定屬主屬組為nginx

chown -R nginx:nginx /home/nginx

其它的按實際修改


七、應用恢復並檢查

將之前tomcat和nginx使用者下停掉的應用恢復,看看能否正常啟動,檢查前面是否有遺漏的操作。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2218707/,如需轉載,請註明出處,否則將追究法律責任。

相關文章