2017.7.18 linux下用户、组和文件的操作
参考来自:《鸟叔的linux私房菜(基础学习篇)-第14章》
0 目的
在linux下搭建ELK环境时,因为elasticsearch不能在root下操作,所以要为其新增一个用户,以及随之的一些操作。
主要涉及:
1 创建新用户组和新用户
2 将新用户添加到新组
3 创建用户主目录
4 让新用户获得其主目录有文件的拥有权限
5 设置新用户的密码
1 etc/passwd、 etc/shadow、etc/group
1.1 etc/passwd 文件
etc/passwd 保存了账号信息,可以查看现在已经建立好了elkuser的账号。
一行代表一个账号,字段依次为:账号名称,密码(全用x代替,实际存放在etc/shaow中),UID(0为系统管理员,1~499为系统账号,其他为普通账号),GID,用户信息说明,主文件夹(这里为elkuser),shell(默认使用bash)。
1.2 etc/shadow文件
etc/shadow里保存了密码和权限等信息。一行代表一个账号,一共9个字段,详细的就略过了。
1.3 etc/group文件
(1)文件内容
etc/passwd 保存了群组信息,可以查看现在已经建立好了elkgroup的群组。
一行代表一个账号,字段依次为:群组名称,密码(全用x代替,实际存放在etc/shaow中),GID(可以看到和前面passwd中elkuser的GID列数字相同),此用户组支持的账户(可以看到这里为空,后面有解释)。
(2)有效群组和初始群组
a.存储在etc/passwd中GID列对应的群组,即为该账号的initial group。初始群组,不需要写在etc/group文件中的第四列。
实际上,查询一下groups,可以知道elkuser是属于elkgroup的。
b.如果将elkuser加入到另一个群组anothergroup中,那么必须要将elkuser加入到etc/group中对应的行中第四列,即非initial group,必须要显示写在etc/group文件里。
c.现在elkuser同时属于:elkgroup、anothergroup。如果现在要新建一个文件或目录,那么这个新文件的组是elkgroup,还是anothergroup?
输入命令groups,结果中的第一列即为effective group。这个新文件属于这个effective group。
d.切换effective group使用命令:
1 newgrp anothergroup
2 账号管理
2.1 新增用户
1 -u:指定userid 2 -g:指定initial group,没有-g则默认创建和user同名的group 3 -G:指定其他group 4 -m:强制创建主文件夹,与user同名 5 其他的-xxx命令略。
2.2 设置密码
使用useradd创建用户时,默认情况下,账户是被锁定的。因为密码没有设置。ps:这里提示的密码过短的错误可以无视。修改密码也可以用这个命令。
不加后面的用户名lyhtest,表示修改当前用户的密码,所以一定要小心!
2.3 修改用户
1 -l:修改username 2 -d:修改主目录 3 -g:修改initial group 4 -G:修改普通group
修改了名字之后,同时要注意的是lyhtestuser的主目录名并没有同步更改。
2.4 删除用户
1 -r:同时删除主目录
3 用户组管理
3.1 新增用户组
1 -g:指定id 2 -r:指定groupname
3.2 修改用户组
1 -g:修改groupid,最好不要改 2 -n:修改groupname
3.3 删除用户组
但是删除elkgroup时报了错,因为elkuser还在,它的初始用户组elkgroup不能被删掉。
3.4 用户组管理员
如果系统管理员比较忙碌,那么可以为某一个用户组增加一个用户组管理员,这个用户组管理员就可以管理这个用户组的账号加入/移除。
可以看到lyhtestuser已经成为了用户组管理员:
转换到此用户登录,将用户lyhtestuser2加入/移除到用户组里。
这里要注意的是:系统管理员root为用户组lyhtestgroup增加用户组管理员lyhtestuser时,用的是-A,而用户组管理员lyhtestuser为用户组lyhtestgroup增加用户lyhtestuser2时,用的是-a。另外,从用户组删除用户是-d。
4 完成目的