用户与用户组相关的配置文件与命令总结

Linux 中用户与用户组相关的配置文件与命令总结


用户与用户组

Linux是一种多用户(Multi-Users)、多任务(Multi-tasks)的操作系统。为了保护每一位用户的个人数据,系统需要将每一位用户的数据进行隔离存放。而用户名就是计算机系统为了区分每一位用户的标识符,这个标识符对我们人类来说就是 用户名(USERNAME)。为了便于实现权限的分配与管理,我们将多个用户划分到一个容器之中,盛放这些用户的容器我们称之为用户组(GROUP).

用户分为:管理员用户(默认为root)、系统用户、登录用户。 
用户组分为:管理员组、系统用户组、登录用户组。


UID、GID

由于计算机只能识别二进制的0和1em21.gif,计算机并不能对用户名与用户组名称进行直接的区分,因此在计算机系统中每个用户与用户组都有其单独的数字ID进行标识。

    标识用户的ID号我们称之为UID(UserID) 
    标识用户组的ID号我们称之为GID(GroupID)

CentOS系统默认使用16位二进制数字来标识UID和GID=0-65536(默认使用前60000) 
CentOS6和7中不同ID范围:

用户类型 CentOS 6中UID CentOS 7中UID CentOS 6 GID CentOS 7 GID
管理员用户 0 0 0 0
系统用户 1-499 1-999 1-499 1-999
登录用户 500-60000 1000-60000 500-60000 1000-60000

名称解析与解析库(passwd、group、shadow、gshadow)

系统对用户名、用户组名与UID、GID一一对应进行转换的过程称之为名称解析。而存放这些信息的文件称之为解析库,包含用户信息库/etc/passwd、用户密码信息/etc/shadow、组的信息库/etc/group、组的密码信息/etc/gshadow。下面我们来一一讲解四个文件的内容。

用户信息库/etc/passwd

使用whatis passwd 命令查看关于passwd的帮助文件。

使用cat /etc/passwd命令查看passwd文件内容

1.root@centos7 ~]# cat /etc/passwd
2.root:x:0:0:root:/root:/bin/bash
3.bin:x:1:1:bin:/bin:/sbin/nologin
4.daemon:x:2:2:daemon:/sbin:/sbin/nologin
5.adm:x:3:4:adm:/var/adm:/sbin/nologin
6.lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
7.sync:x:5:0:sync:/sbin:/bin/sync
8.shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
9.…………中间省略
10.wang:x:1000:1000:wangzhenzhong:/home/wang32:/bin/bash

这一大堆东西到底是什么呢?enter image description here为了能看懂我们使用whatis passwd命令来找下passwd的帮助文件。

1.[root@centos7 ~]# whatis passwd
2.passwd (1)           - update user's authentication tokens
3.sslpasswd (1ssl)     - compute password hashes
4.passwd (5)           - password file

使用man 5 passwd 命令查看 password file 的帮助信息,可以看到passwd的文件每一行代表了一个用户名,每一行是由冒号分割的7个字段组成的。

1.Each line of the file describes a single user, and contains seven colon-separated fields:
2.
3.    name:password:UID:GID:GECOS:directory:shell
4.
5.……实在太多了显示不了下面会一一解释每个字符段的意义。

参考上面man命令给出的格式我们来看下psswd中的信息。

1.wang:x:1000:1000:wangzhenzhong:/home/wang32:/bin/bash

从左到右依次是

name: 用户名
password 加密的密码或者是占位符X(实际存储位置/etc/shadow)pwconv命令切换
UID 用户ID
GID 用户所属的主组ID
GECOS 用户的注释信息
directory 用户的家目录
shell 用户的默认shell类型

用户密码信息/etc/shadow

同样的步骤先看看文件中有什么,使用cat /etc/shadow

1.[root@centos7 ~]# cat /etc/shadow
2.root:\$\6\$4x9rjLZ2$pGwL/pzn47qOnArRppfN0k..0r.VjHiYXhLgI/Oe3pNTqJU72HGNKIX3f9/P17a/tS07WzvCjGknJFG0veIhJ1:17096:0:99999:7:::
3.bin:*:16659:0:99999:7:::
4.…………中间省略
5.postfix:!!:17095::::::
6.ntp:!!:17095::::::
7.tcpdump:!!:17095::::::
8.wang:$
6$mGDN3cm6$xgfX5vJuPKHsNfuWY8zKGNI9QFbwEcziuhf.a/hgAPaBLdbIkjlnKdEpVSMJDIJ9amuaDt12WmFdg6qQKeyjh0:17097:0:99999:7:::

同样看不懂,同样使用使用whatis shadow命令查找帮助文件。

1.[root@centos7 ~]# whatis shadow
2.shadow (3)           - encrypted password file routines
3.shadow (5)           - shadowed password file

使用man5 shadow命令查看shadow的文件格式。

1.DESCRIPTION
2.       shadow is a file which contains the password information for the system's accounts and optional aging information.
3.
4.       This file must not be readable by regular users if password security is to be maintained.
5.
6.       Each line of this file contains 9 fields, separated by colons (“:”), in the following order:
7.        login name
8.        encrypted password
9.        date of last password change
10.        minimum password age
11.        maximum password age
12.        password warning period
13.        password inactivity period
14.        account expiration date
15.        reserved field

我们得知shadow文件中包含了系统账户的密码信息,且改文件不可被普通用户读取,文件的每一行包含9个字段,每个字段之间以‘:’分割。我们参考cat /etc/shadow命令获取的结果来一一解释每个字段的意义。

1.wang:$6$mGDN3cm6$xgfX5vJuPKHsNfuWY8zKGNI9QFbwEcziuhf.a/hgAPaBLdbIkjlnKdEpVSMJDIJ9amuaDt12WmFdg6qQKeyjh0:17097:0:99999:7:::

由左向右依次是:

login name 登录用户名
encrypted password 加密以后的密码,第一个$后的数字代表加密方式,前面有!表示用户处于锁定状态无法登陆
date of last password change 最后一次更改密码的日期,显示为自1970年1月1日到最后一次修改密码的天数
minimum password age 密码的最小使用期限,为0或空字符时表示无最小使用期限
maximum password age 密码打使用期限,到期后要修改密码,为空时表示密码永久有效
password warning period 密码到最大使用期限之前多久开始提醒修改密码,为0或空字符时为不提醒。
password inactivity period 密码到期后至账户名被锁定的期限,为0或者空字符时表示不锁定。
account expiration date 登录账户的有效期,为空字段表示永久不会过期。
reserved field 保留字符以备将来使用

组的信息库/etc/group

使用cat /ext/group 查看group的文件内容

1.[root@centos7 ~]# cat /etc/group
2.root:x:0:
3.bin:x:1:
4.daemon:x:2:
5.…………省略
6.stapdev:x:158:
7.screen:x:84:
8.distro:x:5000:
9.peguin:x:5001:
10.wang:x:1000:

使用whatis group 查找group文档的man帮助信息。

1.[root@centos7 ~]# whatis group
2.group (5)            - user group file

由于group只有一个man帮助文档直接只是用man group命令查看文档格式。 
group文件中存储的是用户组的信息,每一行有四个字段组成以”:”分割;

1.NAME
2.       group - user group file
3.
4.DESCRIPTION
5.       The  /etc/group  file  is a text file that defines the groups on the system.  There is one entry per line, with the
6.       following format:
7.
8.group_name:password:GID:user_list

对比上面cat /etc/gropu 的结果我们来一一介绍每个字段的意思:

1.distro:x:5000:
2.peguin:x:5001:
3.wang:x:1000:
group_name 组名
password 加密的密码或者是占位符X(实际存储位置/etc/gshadow)
GID 组ID
user_list 以此组为附加组的用户列表

组的密码信息/etc/gshadow

还是先使用cat /etc/gshadow命令来查看gshadow文件的内容

1.[root@station25 ~]# cat /etc/gshadow
2.root:::
3.bin:::
4.daemon:::
5.sys:::
6.adm:::
7.………………继续省略
8.distro:!::
9.peguin:!::
10.wang:!::

直接使用man gshadow命令查看帮助,得知gshadow是组密码信息文件,每一行代表一个组,一行由4个字段组成每个字段用”:”分割。至于这次为什么不用whais group查看在使用man group查看帮助,然后贴出代码的原因根本就不是我不小心删除了又不想重新复制。enter image description here

group_name 组名
encrypted password 加密后的密码此处是!或者是,用户将无法使用密码加入该组(本组用户不受影响)
administrators 组管理员,有权利修改密码和添加删除组成员
members 组成员列表

用户管理命令

useradd命令:创建用户(adduser:/usr/sbin/adduser -> useradd)

useradd [options] LOGIN 
-u,–udi UDI:指定UID;UDI的最大最小范围定义在/etc/login.defs; 
-g,–gid:指定基本组ID,此组要事先存在; 
-c,–coment COMMENT:指明注释信息; 
-G,–[group1],[group2]…:指定用户的附属组; 
-d,–home HOME_DIR:指定用户的家目录;(复制/et/skel此目录并重命名实现); 
-s,–shell:可用的所有shell列表存储在/etc/shells文件中; 
-r,–system:创建系统用户; 
-M:不创建用户家目录; 
-f,-inactive:-1密码过期也不锁定用户; 
-N:不创建用户的私有组做主组,使用users组做主组; 
显示或更改默认设置: 
useradd -D 
useradd –D -s SHELL 
useradd –D –b BASE_DIR 
useradd –D –g GROUP 
修改的的结果保存与/etc/default/ussadd


usermod命令:修改用户属性

usermod [选项] login 
-u,–uid UID:修改用户的ID 
-g,–gid GROUP:修改用户所属的基本组; 
-G,–groups:修改用户的附加组,原来的附加组会被覆盖; 
-a,–append:与-G共同使用,为用户追加新的附加组 
-c,–coment COMMENT:修改注释信息; 
-d,–home HOME_DIR:修改用户的家目录,用户原有文件不会被转移至新位置。 
-m,–move-home:只能与-d选项一同使用,用于将原来的家目录移动为新家目录; 
-l,–login NEW_LOGIN:修改用户名; 
-s,–shell:修改用户的默认SHELL 
-L,–lock:锁定用户密码禁止用户登录,在用户密码串前增加! 
-u,–unlock:解锁用户的密码;


userdel命令:删除用户

userdel [option] login 
-r:删除用户时移除用户的家目录;


su命令:switch user

登录式切换:会通过重新读取用户的配置文件来重新初始化; 
su – USERNAME 
su -l USERNAME 
非登录式切换:不会读取目标用户的配置文件进行初始化; 
su USERNAME 
-c ‘COMMAND’:不切换用户仅以指定用户的身份运行指定命令;


passwd命令:

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [–stdin] 
[username] 
1、passwd:修改自己的密码; 
2、passwd USERNAME:修改指定用户的密码;(管理员有此权限) 
-l -u:锁定和解锁用户; 
-d:删除用户密码; 
-e date:过期期限,日期; 
-i days:非活动期限,天数; 
-n days:密码最短使用期限; 
-x days:密码的最长使用期限; 
-w days:警告期限; 
–stdin:从标准输入获取密码,无需重复设置; 
echo “PASSWORD”|passwd –stdin USERNAME

用户组管理命令

groupadd:创建组

命令格式:groupadd [option] group_name 
-g:GID 指定GID;默认是上一组的GID+1; 
-r:创建系统组;


groupmod命令:修改组

groupmod [option] group_name 
-g GID:修改GID 
-n new_name:修改组名


groupdel命令:删除组

groupdel [option] group_name


gpasswd命令:更改组密码

gpasswd [option] group 
-a USERNAME:向组中添加用户; 
-d USERNAME:从组中移除用; 
-A USERNAME,USERNAME…:设置组管理员;


newgrp命令:临时切换用户的基本组 
newgrp [-] [group] 
-:会模拟用户重新登录以实现重新初始化工作环境; 
exit退出


chage命令:修改用户密码信息

-d, –lastday 
显示最后一次修改密码的日期;=0强制修改密码; 
-E, –expiredate 
账户有效期;-1为永久 
-I, –inactive 
密码到期后到锁定账号的间隔日期; 
-l, –list 
显示US的密码信息列表; 
-m, –mindays 
密码最少有效期; 
-M, –maxdays 
密码最大有效期; 
-W, –warndays 
在密码过期前,收到提醒的天数;


id命令:显示用户的真实和有效ID

id [option] [login] 
-u:显示UID 
-g:显示基本组ID 
-G:显示用户所属的所有组的ID 
-n:显示名称而非ID


原创文章,作者:M21-13-王振中,如若转载,请注明出处:http://www.178linux.com/53750

(0)
M21-13-王振中M21-13-王振中
上一篇 2016-10-23
下一篇 2016-10-23

相关推荐

  • 一. Linux 基础

    一。linux的历史 二。虚拟机中安装linux操作系统。 三。基础命令的使用。

    2017-08-29
  • 计算机组成与Linux基础

    一 计算机组成 冯诺依曼体系 计算机处理数据和指令一律用二进制表示 指令和数据不加混合存储在同一存储器中 顺序执行程序每一条指令 计算机硬件由运算器、控制器、存储器、输入设备以及输出设备组成 计算机组成部分 CPU:含有指令集,对程序进行运算和判断并分为两个主要单元分别为算术逻辑单元和控制单元。其中算术逻辑单元主要负责程序运算与判断,控制单元负责协调组件与个…

    Linux干货 2017-07-30
  • 磁盘管理之MBR,GPT的概念及MBR和GPT分区工具的使用

    一,概述 设备文件 I/O ports: I/O设备地址 一切皆文件 open() read() write()close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位”字符“,键盘 块设备和字符设备的区别 块设备可以随机访问,字符设备必须连续访问,如,/dev/null 块设备有缓存,字符设备没有缓存,因为字符设备…

    Linux干货 2016-09-06
  • 文件、目录权限

    批量创建新用户: newusers passwd格式文件 批量创建用户,必须和/etc/passwd下的文件格式一样   下面开始批量创建:   首先准备好一个文件:用vi命令建一个user.txt 如图: 然后用cat user.txt 然后newusers批量创建,cat /etc/passwd查看下: 创建成功 批量修改用…

    Linux干货 2016-08-04
  • 马哥教育N22期第八周作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 设备 功能 使用场景 区别 网桥 根据MAC地址来转发帧,本地通信只限本网段内, 相当于中继器,线路比较长保证信号不变形的传输 工作在物理层,相当于一个物理接口 集线器 接收到的数据包进行广播转发,所有端口都能收到此数据,通过MAC确认是不是发给自己的包进行回应 广播形式转发数据…

    Linux干货 2016-11-14
  • Btrfs文件系统

    一:概述     1.1简介         Btrfs被称为是下一代Linux文件系统。通常念成 Butter FS,Better FS 或B-tree FS。它采用了很多先进的文件系统设计,不仅解决了 ext2/3的扩展性问题,支持写时…

    Linux干货 2016-04-19