一、前言:本篇介绍用户和组操作的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用户的密码有效期

 

Linux操作系统常用命令合集——第二篇- 用户和组操作(15个命令)的更多相关文章

  1. Linux操作系统常用命令合集——第一篇-文件和目录操作(40个命令)

    一.选项和参数的区别        在经过上一次的系统安装后我们已经成功登陆,登陆LInux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着“选项”(英文名:options)或“参数” ...

  2. Linux操作系统常用命令合集——第五篇-磁盘和文件系统操作(15个命令)

    1.fdisk [命令作用] 用于观察硬盘实体使用情况.也可以对硬盘分区. 对于一块硬盘来讲,最多只能管理15个分区 [命令语法]  fidisk    [选项]    [参数] [常用选项] -b& ...

  3. Linux常用命令合集

    常用命令合集 命令选项和参数 Linux中的命令格式为:command [options] [arguments]  //中括号表示可选的,即有些命令不需要选项也不需要参数,但有的命令在运行时需要多个 ...

  4. 【转】Ubuntu常用软件合集

    [转]Ubuntu常用软件合集 Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历.输入法.优客助手等易于上手的应用.也省的每次安装完原生的系 ...

  5. 计算机视觉与模式识别代码合集第二版three

    计算机视觉与模式识别代码合集第二版three     Topic Name Reference code Optical Flow Horn and Schunck's Optical Flow   ...

  6. es6常用基础合集

    es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...

  7. [转载]VIM命令合集

    Vim命令合集 http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 命令历史 以:和/开头的命令都有历史纪录, ...

  8. 计算机视觉与模式识别代码合集第二版two

    Topic Name Reference code Image Segmentation Segmentation by Minimum Code Length AY Yang, J. Wright, ...

  9. linux-Vim命令合集

    Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...

随机推荐

  1. 【SoloPi】SoloPi使用4-功能使用,一机多控

    Soloπ是什么Soloπ是一个无线化.非侵入式的Android自动化工具,公测版拥有录制回放.性能测试.一机多控三项主要功能,能为测试开发人员节省宝贵时间. 一机多控功能Soloπ支持通过操作一台主 ...

  2. C#避免WinForm窗体假死

    WinForm窗体在使用过程中如果因为程序等待时间太久而导致窗体本身假死无法控制,会严重影响用户的体验,这种情况大多是UI线程被耗时长的代码操作占用所致,可以新开一个线程用来完成耗时长的操作,然后再将 ...

  3. 多进程,多线程,使用sqlalchemy 创建引擎(单例模式),闭包装饰器承载数据库会话,装饰模型类的类方法

    python 多进程,多线程,使用 sqlalchemy 对数据库进行操作 创建引擎 & 获取数据库会话: 使用类的方式,然后在对象方法中去创建数据库引擎(使用单例,确保只创建一个对象,方法里 ...

  4. 用scrapy爬取京东商城的商品信息

    软件环境: gevent (1.2.2) greenlet (0.4.12) lxml (4.1.1) pymongo (3.6.0) pyOpenSSL (17.5.0) requests (2.1 ...

  5. Canvas 绘制一个像素风电子时钟

    想法是在 Canvas 上绘制由小方块组成的数字. 第一步是实现绘制小方块的方法,先画出一个边长为 5 的 10x10 个方块,使用两个 for 循环很简单就能完成. for (let i = 0; ...

  6. FreeRTOS config开始的宏

    FreeRTOSConfig.h系统配置文件中可以自定义,FreeRTOS.h中定义默认值 configAPPLICATION_ALLOCATED_HEAP 默认情况下FreeRTOS的堆内存是由编译 ...

  7. (一)react-native开发系列之Mac开发环境配置

    写在前面 在开始之前,先说下选择react-native的背景原因 最近一年来,公司为了节省开发成本,以及降低维护成本,指派我开始做起前端开发app的工作,我和公司的小伙伴们就开始了漫长的app开发之 ...

  8. 如何在github上提交pr

    如何在github上提交pr 1.fork开源的代码到自己的远程仓库 2.clone自己的仓库到本地电脑 3.与源代码的github仓库建立新的连接 git remote add upstream h ...

  9. MySQL主从复制(Centos6.3&MySQL5.6)

    环境: Master:Centos 6.3        192.168.1.4  Slave:Centos 6.3            192.168.1.5 MySQL: MySQL-5.6.2 ...

  10. Python函数Day4

    一.内容补充 __iter__() 就是 iter(),iter() 调用的就是__iter__() __next__() 就是 next(),next()调用的就是__next__() __clos ...