linux系统

解决linux下无法添加用户和组的问题[技术]

蚊子今天下午给一台机器安装lamp,在安装mysql的时候,需要先添加mysql用户和组,但在添加组的时候出现了下面的错误

# groupadd mysql
groupadd: unable to open group file

操作了好几次都是这样,于是我就决定直接使用添加用户的方式来达到同时添加组的方法,但同样出现错误

# groupadd mysql
groupadd: unable to open group file

直接使用vi编辑也是不行,在保存的时候报

E45: ‘readonly’ option is set (add ! to override)

这个错误,使用ls -l查看passwd和group的权限

# ls -l passwd
-rw-r–r– 1 root root 1296 Jul 10 01:51 passwd
# ls -l group
-rw-r–r– 1 root root 574 Jul 10 01:51 group

这些权限也都是正确的,于是上google查了一下,看到了lsattr和chattr这两个命令。

对于某些有特殊要求的档案(如服务器日志)还可以追加隐藏权限的设定。这些隐藏权限包括: 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查看了一下这两个文件

# lsattr passwd
—-i——– passwd
# lsattr group
—-i——– group

可以看到这两个文件都被设置的i这个隐藏权限,i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。既然这样只要把i权限去掉就应该好了

# chattr -i passwd
# chattr -i group
# lsattr passwd
————- passwd
# lsattr group
————- group

结果在添加mysql组的时候还是报错

# groupadd mysql
groupadd: unable to open shadow group file

这次发现是shadow文件的问题了,因为添加用户和组都需要修改shadow文件的,那就把shadow文件的权限也改下。

# lsattr shadow
—-i——– shadow
# chattr -i shadow
# lsattr shadow
————- shadow

这次修改完毕本以为就可以了呢,结果发现还是报错

# groupadd mysql
groupadd: unable to open shadow group file

看来还是少考虑了一个文件,就是gshadow,那就再把这个权限也改过来

# lsattr gshadow
—-i——– gshadow
# chattr -i gshadow
# lsattr gshadow
————- gshadow

这下再添加用户和组就可以正常执行了

总结:1,添加用户需要用到passwd和shadow这两个文件
            2,添加组需要用到shadow和gshadow这两个文件

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *