解决linux下无法添加用户和组的问题(groupadd命令不可用)

今天需要给一个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彻底卸载后,重装,一切顺利。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

catoop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值