一、前言:本篇介绍用户和组操作的15个命令,在介绍之前我们先来看看几个示例

1、先进入到etc目录下,找到passwd文件,用vi编辑器查看:

# vi /etc/passwd

解释:这里面存放着Linux系统里所有的用户信息,每当添加完用户后,这里面都会写入相应的数据,相当于我们windows的用户管理界面。拿第一行数据举例:

root:x:1:0:root:/root:/bin/bash

第一个root相当于用户名;

x相当于密码,密码都会用x代替;

第一个0ID号,这个号码是唯一的号码,不会与其他的重复;

第二个0为组的ID号,这个号码也是唯一的,不会与其他重复;

第二个root为注释或者全称,详细介绍该用户的作用;

第三个root为自家目录,当用户登录系统的时候。默认登录到哪个目录;

/bin/bash 为命令解释器,当用户使用该用户登录时,就需要使用到/bin/bash这个命令解释器。可以看一下其他用户的命令解释器,是/sbin/nologin,也就是说这个用户是存在的,但是不允许登录的。

2、这里就有疑问了,x这个密码到底是存在哪里呢?

可以在etc目录下查看shadow这个文件

# vi /etc/shadow

解释:root为用户,第二项为加密后的面,命名我们的密码很简单123456,但是在这里加密以后却是这么长,

3、查看一下组信息

# vi /etc/group

解释:这里面大致情况和passwd的差不多。主要是最后一个冒号后面,会显示在这个组下面有哪些用户,由于我还没有添加,所以这里是没有显示的。

组密码的保存地点保存在/etc/gshadow

# vi /etc/gshaow

二、科普:

1、Linux 用户:Username/UID

管理员:root,0

普通用户:1-60000

系统用户:1-499, 1-999

登录用户:500+,1000+

2、Linux:Groupname/GID

管理员组:root,0

普通组

系统组:1-499,1-999

普通组:500+,1000+

3、Linux安全上下文

运行中的程序:进程(process)

进程所能够访问的所有资源的权限取决于进程的发起者的身份

4、Linux组的类别

用户的基本组(主组)组名同用户名,且仅包含一个用户私有组

用户的附加组(额外组)

5、Linux用户和组相关的配置文件

# vi

      /etc/passwd  --用户及其属性信息

/etc/group  --组及其属性信息

/etc/shadow  --用户密码及其相关属性

/etc/gshadow  --组密码及其相关属性

详解:

(1)/etc/passwd:

name:password:UID:GID:GECOS:directory:shell

用户名:密码:UID:GID:注示:主目录:默认shell

(2)/etc/group:

group_name:password:GID:user_list

组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)

(3)/etc/gshadow:

组名:组密码:组管理员:附加成员

(4)/etc/login.defs:

此文件是当创建用户时的一些默认规划

(5)/etc/default/useradd:

此文件是通过useradd 添加用户时的规则

(6)/etc/skel:

此目录是存放用户初始环境配置文件的目录

三、命令详解

1.useradd

【命令作用】

用户创建

密码设置# passwd  ***

删除账号# userdel  ***

【命令语法】

 useradd    [参数]    [选项]

【常用选项】

-u  --指定用户id

-g  --指定用户所属基本组,可为组名,也可以GID;组必须事先存在

-c  --"COMMENT"用户的注释信息

-d  /PATH/TO/HOME_DIR  --以指定的路径为家目录

-M  --不创建用户家目录

-s(SHELL)  --指明用户的默认shell程序,可用列表在/etc/shells文件中 # /sbin/nologin

-G(GROUP1[,GROUP2,...[,GROUPN]]]) --为用户指明附加组;组必须事先存在

-r  --创建系统用户

-u UID-o   --创建相同UID号的用户

【参数说明】

要创建的用户名

【命令示例】

创建一个新的用户qwe,并设置ID666

# useradd qwe -u 666

查看是否创建用户qwe

# vi /etc/passwd

qwe用户存在

2.groupadd

【命令作用】

创建一个新的工作组

【命令语法】

 groupadd  [选项]    [参数]

【常用选项】

-g  --指明新键工作组的id

-r  --创建系统组

-g GID -o  --创建相同的GID号的组

【参数说明】

指定新建工作组的组名

【命令示例】

建立一个名为check的新的系统工作组

# groupadd -r check

查看是否创建check

# vi /etc/group

check组存在

3.passwd

【命令作用】

为用户账户设置或更改密码

系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

【命令语法】

passwd   [选项]    [参数]

【常用选项】

-d  --删除指定用户的密码

-l   --所动指定用户

-S  --查看指定用户的状态

-u  --解锁指定用户

-n mindays  --指定最短使用期限

-x maxdays  --最大使用期限

-w warndays  --提前多少天开始警告

-w warndays  --提前多少天开始警告

--stdin  --从标准输入接收用户密码;

  # echo "PASSWORD" | passwd --stdin USERNAME

-s  --列出密码的相关信息,仅有系统管理者才能使用

【参数说明】

需要设置密码的用户名

【命令示例】

用标准输入为用户qwe设置一个新的密码

# passwd --stdin qwe

4.gpasswd

【命令作用】

组密码(组成员管理)

【命令语法】

gpasswd    [选项]    [参数]

【常用选项】

-a user  --将user添加至指定组中

-d user  --删除用户user的以前组为组名的附加组

-M user1,user2...  --将多个用户添加至指定组中

-A user1,user2...  --设置有管理权限的用户列表

-R  --限制用户登入组,只有组中的成员才可以用newgrp加入该组

【参数说明】

指定要管理的工作组

【命令示例】

(1)将用户qwe加入check组中

# gpasswd -a qwe check

(2)设置qwecheck组里的管理员

# gpasswd -A qwecheck

5.usermod

【命令作用】

用户属性修改

【命令语法】

usermod    [选项]    [参数]

【常用选项】

-u  --修改用户id(新id

-g   --修改用户所属的群组(新基本组)

-G  --修改用户所属的附加群组(新附加组,原来的附加组将会被覆盖,若保留原有,则要同时使用 -a 选项,表示append

-s  --新的默认SHELL

-c   --新的注释信息

-d  --新的家目录,必须事先存在,原有家目录中文件不会同时移动至新的家目录

-L  --lock指定用户

-l(login name)  --新的名字

-U  --unlock 指定用户

-e YYYY-MM-DD  --指明用户账号过期日期

【参数说明】

指定要修改信息的用户登录名

【命令示例】

(1)修改qwe用户名为abc

# usermod -l abc qwe

# vi /etc/passwd

(2)锁定用户abc,解锁对用户abc的锁定

# usermod -L abc

# usermod -U abc

6.groupmod

【命令作用】

修改工作组名和id名称

【命令语法】

 groupmod     [选项]     [参数]

【常用选项】

-n  --修改工作组名

-g  --修改工作组id

【参数说明】

指定要修改的工作组的组名

【命令示例】

(1)将check组改名为doc

# groupmod -n  doc check

(2)修改doc组的组ID333

# groupmod -g  333  doc

7.userdel

【命令作用】

删除用户

【命令语法】

userdel    [选项]    [参数]

【常用选项】

-r  --删除用户家目录

-f  --强制删除用户,即使用户当前已经登录

【参数说明】

要删除的用户名

【命令示例】

删除用户abc及其家目录

# userdel -r abc

8.groupdel

【命令作用】

删除指定的工作组

【命令语法】

groupdel    [参数]

【常用选项】

【参数说明】

要删除的工作组名

【命令示例】

删除doc工作组

# groupdel doc

9.id

【命令作用】

显示真实和有效的 UIDGID

【命令语法】

id    [选项]    [用户名称]

【常用选项】

【参数说明】

需要查询的用户和组

【命令示例】

显示rootUIDGID

id root

10.newgrp

【命令作用】

登录到新的用户组中

【命令语法】

newgrp    [组名称]

【常用选项】

【参数说明】

切换群组的名称(必须是该组的用户)

【命令示例】

将当前用户切换到dom组中

# newgrp dom

# id
11.su

【命令作用】

切换当前登录的用户(用exit返回原用户)

【命令语法】

su    [选项]    [参数]

【常用选项】

-c  --执行完指定的指令后,即恢复原来的用户

-<参数>  --切换用户时,同时变更工作目录(家目录),以及环境变量

【参数说明】

指定要切换的身份目标用户名

【命令示例】

# su -c ls root  --变更帐号为root并在执行ls指令后退出变回原使用者

13.finger(gdm-plugin-fingerprint)

【命令作用】

用户信息查找程序

括号中的内容为软件包的名称,这个命令默认可能没有安装对应在的软件包,需要安装软件程序包之后才有这个命令

【命令语法】

finger    [选项]    [参数]

【常用选项】

-l  --列出该用户的账号名称,真实姓名,用户专属目录。登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容

【参数说明】

指定要查询信息的用户

【命令示例】

显示root的用户信息

# finger -l root

12.chfn

【命令作用】

改变finger命令显示的信息

【命令语法】

chfn    [选项]    [参数]

【常用选项】

【参数说明】

指定要改变finger信息的用户名

【命令示例】

# chfn abc  --更改abc账户的finger信息

14.chsh

【命令作用】

更换登录系统时使用的shell。若不指定任何参数与用户名称,则chsh会以应答的方式进行设置

【命令语法】

chsh    [选项]    [参数]

【常用选项】

-llist-shells  --列出目前系统可用的shell清单

-s<shell名称.>或--shell<shell名称>  --更改系统预设的shell环境

【参数说明】

要改变默认shell的用户

【命令示例】

(1)查看系统装了哪些shell(两种方法)

第一种:

# chsh -l

第二种:

# cat /etc/shells

15.chage

【命令作用】

修改账号和密码有效期限

【命令语法】

 chage     [选项]     用户名

【常用选项】

-m  --密码可更改的最小天数。为零时代表任何时候都可以更改密码

-M  --密码保持有效的最大天数

-w  --用户密码到期前,提前收到警告信息的天数

-d  --上次更改的日期

-E  --账号到期的日期,过了这天,此账号将不可用

【参数说明】

需要修改的用户名

【命令示例】

 # chage abc  --修改abc用户的密码有效期

 

最新文章

  1. Java提高篇——Java实现多重继承
  2. js的严谨模式
  3. Matlab神经网络工具箱学习之一
  4. Java的安全性和可移植性
  5. 面试题_76_to_81_Java 最佳实践的面试问题
  6. JavaNIO之Channel
  7. 蔡勒(Zeller)公式
  8. Arduino 时钟模块(clock module) DS1306
  9. Sql Server 自定义函数(原创)
  10. 【python密码学编程】5.反转加密法
  11. java中Map.Entry的使用方法
  12. Java 开始
  13. Django之组件--auth组件
  14. python 全栈开发,Day18(对象之间的交互,类命名空间与对象,实例的命名空间,类的组合用法)
  15. AngularJS 常用的功能
  16. 对json数据key进行替换
  17. 【转载,待整理】初学 springmvc整合shiro
  18. Python 实现进程间通信(网络编程)
  19. mysql 数据备份与恢复
  20. 【刷题】HDU 2222 Keywords Search

热门文章

  1. protobuf的使用(netty传输多种对象类型)
  2. linux 设置用户组共享文件
  3. lambda的一些用法
  4. Extending WCF using IServiceBehavior, IOperationBehavior, and IParameterInspector
  5. ribbon的理解
  6. 【转载】 C#使用Union方法求两个List集合的并集数据
  7. 微信小程序 swiper 组件坑
  8. Computer Vision_33_SIFT:LIFT: Learned Invariant Feature Transform——2016
  9. java - day015 - 手写双向链表, 异常(续), IO(输入输出)
  10. 【转载】内联函数 —— C 中关键字 inline 用法解析