参考来自:《鸟叔的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使用命令:

 newgrp anothergroup

2 账号管理

2.1 新增用户

 -u:指定userid
-g:指定initial group,没有-g则默认创建和user同名的group
-G:指定其他group
-m:强制创建主文件夹,与user同名
其他的-xxx命令略。

2.2 设置密码

使用useradd创建用户时,默认情况下,账户是被锁定的。因为密码没有设置。ps:这里提示的密码过短的错误可以无视。修改密码也可以用这个命令。

不加后面的用户名lyhtest,表示修改当前用户的密码,所以一定要小心!

2.3 修改用户

 -l:修改username
-d:修改主目录
-g:修改initial group
-G:修改普通group

修改了名字之后,同时要注意的是lyhtestuser的主目录并没有同步更改。

2.4 删除用户

 -r:同时删除主目录

3 用户组管理

3.1 新增用户组

 -g:指定id
-r:指定groupname

3.2 修改用户组

 -g:修改groupid,最好不要改
-n:修改groupname

3.3 删除用户组

但是删除elkgroup时报了错,因为elkuser还在,它的初始用户组elkgroup不能被删掉。

3.4 用户组管理员

如果系统管理员比较忙碌,那么可以为某一个用户组增加一个用户组管理员,这个用户组管理员就可以管理这个用户组的账号加入/移除。

可以看到lyhtestuser已经成为了用户组管理员:

转换到此用户登录,将用户lyhtestuser2加入/移除到用户组里。

这里要注意的是:系统管理员root为用户组lyhtestgroup增加用户组管理员lyhtestuser时,用的是-A,而用户组管理员lyhtestuser为用户组lyhtestgroup增加用户lyhtestuser2时,用的是-a。另外,从用户组删除用户是-d。

4 完成目的

2017.7.18 linux下用户、组和文件的操作的更多相关文章

  1. 2017.7.18 linux下ELK环境搭建

    参考来自:Linux日志分析ELK环境搭建  另一篇博文:2017.7.18 windows下ELK环境搭建   0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1 ...

  2. Linux的用户(组),权限,文件精妙的三角关系,和强大的帮助系统

    在linux中一切都是文件(文件夹和硬件外设是特殊的文件),如果有可能尽量使用文本文件.文本文件是人和机器能理解的文件,也成为人和机器进行 交流的最好途径.由于所有的配置文件都是文本,所以你只需要一个 ...

  3. Linux下用户-组权限配置

    cat /etc/group cat /etc/ashadow 一.用户管理 1.添加用户 #useradd 用户名 useradd php100;用cat /etc/passwd查看 分析:php1 ...

  4. Linux 给用户 赋某个文件夹操作的权限

    https://my.oschina.net/cqyj/blog/1796047 在root用户登录的情况,赋予opt目录给liuhai这个用户权限 示例代码: # 将目录/opt 及其下面的所有文件 ...

  5. Linux下快速迁移海量文件的操作记录

    有这么一种迁移海量文件的运维场景:由于现有网站服务器配置不够,需要做网站迁移(就是迁移到另一台高配置服务器上跑着),站点目录下有海量的小文件,大概100G左右,图片文件居多.目测直接拷贝过去的话,要好 ...

  6. 2017.7.18 windows下ELK环境搭建

    参考来自:Windows环境下ELK平台的搭建 另一篇博文:2017.7.18 linux下ELK环境搭建 0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1.7, ...

  7. linux 下用户管理

    linux 下用户管理 一.用户的分类 1.超级用户:root UID=0 2.系统用户:不需要登录系统,对应用程序服务,主要维护系统的正常运行:UID = 1 ~ 499(RHEL7 = 1 ~ 9 ...

  8. Linux下用户管理:创建用户指定密码

    首先我们来了解下Linux下用户管理的概念: 如上图所示,左边的一列表示用户名,中间的一列表示用户组,最右边的一列表示的是家目录.用户名我们这里处于简单就,添加了root,xm,xh三个用户.用户组和 ...

  9. linux下播放组播流出现setsockopt:No such device错误

    在linux下播放组播流出现setsockopt:No such device错误是因为多播IP没有add路由表里面 可以采用如下命令完成: root@android:/ # busybox rout ...

随机推荐

  1. HDU 5690 矩阵快速幂

    All X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  2. linux安装图像界面

    http://jingyan.baidu.com/article/624e745957149734e8ba5a0e.html

  3. idea创建maven项目需要注意的问题

    idea创建maven项目之后,我从deployment中看到报部署错误的问题,下图是解决问题的办法如下图所示:

  4. wp检测是否是手机网络还是wifi网络

    原文发布时间为:2013-06-22 -- 来源于本人的百度文章 [由搬家工具导入] ),newNameResolutionCallback(handle =>{NetworkInterface ...

  5. 电子商务模式B2C/C2C/B2B/O2O

    1.什么是B2C B2C是英文Business-to-Consumer(商家对客户)的缩写,而其中文简称为商对客.商对客是电子商务的一种模式.这种形式的电子商务一般以网络零售业为主,主要借助于互联网开 ...

  6. UML笔记(3):顺序图、Sequence Diagram

    http://www.cnblogs.com/xueyuangudiao/archive/2011/09/22/2185364.html 目录 含义 要素: 1 活动者 2 对象 3 生命线 4 控制 ...

  7. Linux内核中的中断栈与内核栈的补充说明【转】

    转自:http://blog.chinaunix.net/uid-12461657-id-3487463.html 原文地址:Linux内核中的中断栈与内核栈的补充说明 作者:MagicBoy2010 ...

  8. 无法解析的外部符号 "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)"

    采用下面的方法.重新编译了一下依赖的库,OK了.   问题描述: 今天用VS2010编译一个在VS2008下Coding的工程的时候,VS给出了一堆链接错误信息,如下图所示: 在ErrorList里面 ...

  9. 用jsp开发web应用并不是一个高效率的选择

    1.    Android里有办法让js使用java方法像使用自己的方法一样方便,和flex的很相似,flex里面使用java方法就像使用自己的方法一样. 2.    用Flex开发准确的说就是用as ...

  10. (16)C#继承

    继承格式 class 子类:父类 { ....... } 1.子类能够继承父类所有的字段和方法. class Program { class Father { ; public void b() { ...