歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下groupadd命令無法添加用戶和組的解決

Linux下groupadd命令無法添加用戶和組的解決

日期:2017/2/28 14:54:48   编辑:Linux教程

今天需要給一個linux服務器安裝mysql,在安裝mysql的時候,出現錯誤提示:

[root@localhost softwaretools]# rpm -ivh MySQL-server-5.5.23-1.rhel5.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
chown: “mysql:mysql”: 無效的用戶
chown: “mysql:mysql”: 無效的用戶

因為mysql在安裝的時候需要創建mysql組和mysql用戶,看到這樣的錯誤,於是想到了,手工創建組和用戶,然後再重裝mysql。

結果執行命令:

[root@localhost softwaretools]# groupadd mysql
groupadd:無法打開組文件(groupadd: unable to open group file)

此時就奇怪了,當前用的明明是root用戶,為什麼沒有創建組和用戶的權限呢。

接下來,就是一堆百度、谷歌,各種博客論壇。

得出一點點結論:

1,添加用戶需要用到passwd和shadow這兩個文件
2,添加組需要用到shadow和gshadow這兩個文件

此時第一感覺,可能是文件權限的問題,使用 ls -l 命令發現權限正常。

奇怪的很了,於是又需要找度娘和谷哥,最終發現問題,找到了2個命令(lsattr和chattr),是因為隱藏權限在作怪:

對這2個命令的簡單做下說明:

對於某些有特殊要求的檔案(如服務器日志)還可以追加隱藏權限的設定。這些隱藏權限包括: Append only (a), compressed (c), no dump (d), immutable (i), data journalling (j),secure deletion (s), no tail-merging (t), undeletable (u), no atime updates (A), synchronous directory updates (D), synchronous updates (S), and top of directory hierarchy (T).

lsattr命令是查看隱藏權限設定情況的,chattr是變更隱藏權限的命令。

首先使用使用lsattr查看了一下這幾個文件:

[root@localhost ~]# lsattr /etc/passwd
------------- /etc/passwd
[root@localhost ~]# lsattr /etc/group
----i-------- /etc/group
[root@localhost ~]# lsattr /etc/shadow
------------- /etc/shadow
[root@localhost ~]# lsattr /etc/gshadow
----i-------- /etc/gshadow

可以看到文件被設置的 i 這個隱藏權限,i:設定文件不能被刪除、改名、設定鏈接關系,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助。

既然這樣只要把i權限去掉就應該好了。

使用命令chattr命令修改文件隱藏權限,執行如下命令:

chattr -i /etc/gshadow

chattr -i /etc/group

然後手工添加了一個用戶進行測試,結果可以正常執行了。

最後又將mysql徹底卸載後,重裝,一切順利。

Copyright © Linux教程網 All Rights Reserved