LINUX中的用户和组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX中的用户和组相关的知识,希望对你有一定的参考价值。

  目录
一,用户和组
二,Linux用户和组的主要配置文件
三,关于用户维护的一些常见命令
四,组帐号维护命令

用户和组

 在linux中当UID(用户编号)为0的是root用户,因为系统也需要一些进程加载,而每个进程的加载也需要一个用户去发起,所以在每个linux系统上都有一些系统用户。而登录用户就是我们创建的用户:
   Linux用户:Username/UID
   管理员: root, 0
   普通用户:1-65535 (UID)
   系统用户:1-499    1-999
   登录用户:  500+    1000+
      (CentOS6) (CentOS7)

   ×CentOS7 中因为系统的进程增多了,所以系统用户相应的增多了


 在我们系统中有很多系统用户,而系统用户中有很多不可交互式的用户,这样做的原因是为了给不同的系统服务和进程一个启动的账户去管理它们。 由于不同用户去管理不同的进程,当某个进程出现漏洞时,受它所对应的账户权限限制,且系统用户中有很多不可交互式的用户,所以不怕被有心人利用,去对系统造成大的危害。但是每个文件不能只被root用户和文件所有人用户访问,所以我们的系统出现了“组”。在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。


Linux组的类别:
   用户的主要组(primary group):
   用户必须属于一个且只有一个主组
   组名同用户名,且仅包含一个用户:私有组
   用户的附加组(supplementary group):
   一个用户可以属于零个或多个辅助组

建议不要把别的用户的主组,也就是私有组,当做别的用户的附家组


无独有偶,每个组也有一个GID(组的编号),跟UID类似:

   Linux组:Groupname/GID
   管理员组:root, 0
   普通组:
   系统组 1-499     1-999
   普通组 500+     1000+
     (CentOS6)  (CENTOS7)



Linux用户和组的主要配置文件:

    /etc/passwd:用户及其属性信息(名称、UID、主组ID等)
    /etc/group:组及其属性信息
    /etc/shadow:用户密码及其相关属性
    /etc/gshadow:组密码及其相关属性

在/etc/passwd中每项内容以“:”隔开,其每部分代表的意义为:
技术分享图片

   login name:登录用名(root)
   passwd:密码 (x)
   UID:用户身份编号 (0)
   GID:登录默认所在组编号 (0)
   GECOS:用户全名或注释
   home directory:用户主目录
   shell:用户默认使用shell (/bin/bash)


在/etc/group中每项内容也是以“:”隔开的,其每部分意义为:
技术分享图片
  群组名称:就是群组名称?
  群组密码:通常不需要设定,密码是被记录在/etc/gshadow
  GID:就是群组的 ID
 以当前组为附加组的用户列表(分隔符为逗号)


在/etc/shadow文件中中每项内容也是以“:”隔开的,其每部分意义为:
技术分享图片
    登录用名
    用户密码:一般用sha512加密
    从1970年1月1日起到密码最近一次被更改的时间
    密码再过几天可以被变更(0表示随时可被变更)
    密码再过几天必须被变更(99999表示永不过期)
    密码过期前几天系统提醒用户(默认为一周)
    密码过期几天后帐号会被锁定
   从1970年1月1日算起,多少天后帐号失效
   被红色框圈起来的部分代表改账户设置的密码的转码,无密码者显  示“!!”


在/etc/gshadow文件中中每项内容也是以“:”隔开的,其每部分意义为:
技术分享图片
    群组名称:就是群组名称
    群组密码:
    组管理员列表:组管理员的列表,更改组密码和成员
    以当前组为附加组的用户列表:(分隔符为逗号)



关于用户维护的一些常见命令:
   用户管理命令 :  useradd   usermod   userdel


useradd 命令
  useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中
useradd(选项)(参数)
     -u UID 指定uid默认从1000开始往后
     -o 与 -u 配合,不检查UID的唯一性
     -g GID或组名 指定用户的主要组为某个已存在的组,可以指定GID也可以指定组名
     -G 指定附加组 以逗号为间隔可以同时指定多个,组必须事先存在,可以指定GID也可以指定组名。
     -c 注释信息
     -d 指定目录路径 ,如不指定默认在/home下与用户同名。指定时注意,目录名需已存在,基名不存在。
     -s 指定登录shell如下
     useradd -s /sbin/nologin test创建shell为不可交互式登录的用户
     -N 不创建私用组做主组,使用users组做主组
     -r 创建系统用户 (centos 6及之前的版本 < 500, centos 7 < 1000)


usermod 命令
  usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。

usermod
   -u NEWUID 用户名 修改用户的uid
   -g NEWGID 用户名 修改用户的主要组 可以指定组名,也可以指定GID
   -G GID或组名[,组名] 用户名 设定用户的附加组为哪些组,这前的附加组信息被覆盖
   -a 与-G 结合 使用可以增加用户的附加组,而不会影响之前的附加组
   -s shell名 用户名 修改用户的Shell
   -c "描述信息" 设置用户的描述信息
   -d /path 用户名 修改用户的家目录,新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
   -l newname 用户名 修改用户的名称
   -L: lock指定用户,在/etc/shadow 密码栏的增加 ! 等同于passwd -l
   -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉 等同于passwd -u
   -e YYYY-MM-DD: 指明用户账号过期日期
   -f INACTIVE: 设定非活动期限


userdel 命令
  userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
userdel
     -f:强制删除用户,即使用户当前已登录;
     -r:删除用户的同时,删除与用户相关的所有文件。



组帐号维护命令  groupadd  groupmod  groupdel


groupadd 命令
  groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
groupadd(选项)(参数)
     -g:指定新建工作组的id;
     -r:创建系统工作组,系统工作组的组ID小于500;
     -K:覆盖配置文件“/ect/login.defs”;
     -o:允许添加组ID号不唯一的工作组。


groupmod命令

  groupmod命令更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作

groupmod(选项)(参数)
     -g<群组识别码>:设置欲使用的群组识别码;
     -o:重复使用群组识别码;
     -n<新群组名称>:设置欲使用的群组名称。


groupdel命令
  groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。 因为前面我们提到每个用户必须具有且只有一个组。
groupdel(参数)
        参数=组: 要删除的工作组名称



下面我们介绍一些特殊且十分有用的命令
  gpasswd   newgrp    groupmems   groups   chowm


gpasswd 命令

gpasswd 组名 设置组密码    管理员可以执行
 -a 用户名 组名 将某用户以附加组方式加入到某组当中  组管理员可以执行
 -d 用户名 组名 将某用户从指定组当中踢出   组管理员可以执行
 -M 用户名[,用户名...] 组名 设置某组的用户列表    仅root执行
 -A 用户名[,用户名...] 组名 设置某组的管理员列表    仅root执行
 组管理员在不是组成员的情况下,仅能修改组密码,和将其他人加入组和踢出组,但并不具有组成员的权限.、


newgrp命令

newgrp 组名 (普通用户执行)
 非附加组成员的普通用户在正确输入组密码后可以使用该命令临时变更主要组.
  附加组成员的普通用户无需输入密码可以使用该命令临时变更主要组. 原主要组临时变成附加组


groupmems 命令
groupmems 仅root执行
    -g 组名 -a 用户名 将某用户以附加组方式加入到某组当中
    -g 组名 -d 用户名 将某用户从指定组当中踢出
    -g 组名 -p 清空所有组成员
    -g 组名 -l 查看指定组有哪些成员(仅显示附加组)


groups 用户名 查看指定用户属于哪些组(包含主组和附加组)


chowm 命令
chown 仅root才能更改文件的所属人
用户名 filename
用户名.组名 filename 或 用户名:组名 filename 同时更改owner和group 如果.或:前省略,则只改group

以上是关于LINUX中的用户和组的主要内容,如果未能解决你的问题,请参考以下文章

Linux中的用户和组

Linux常用命令账号和组管理

LAMP 服务器的 Linux 用户和组

5linux用户和组管理详解

Linux用户和组管理

Linux用户和组管理