在linux中,如何增加、修改、删除、暂停和冻结用户名

2023-10-29

在linux中,如何增加、修改、删除、暂停和冻结用户名

在操作增加、修改和删除用户名前,先认识linux中两个最重要的文件,它们就是账号管理最重要文件“/etc/passwd”与“etc/shadow”.

环境:windows 7 + virtualbox + fedora 15 KDE

1.认识“etc/passwd”文件

在命令行输入:vi /etc/passwd


打开/etc/passwd文件,如上图所示。

文件构造:每一行都代表一个账号,有几行就代表系统中有几个账号。需要特殊说明的是,里面很多账号本来就是系统中必须要的,称为系统账号,例如bin、daemon、adm和nobody等。这些账号是系统正常运行所需要的,不可随意删掉。

下面以第一行为例,解释每行中各部分的含义。

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

该行各部分之间以“:”分隔开,共7部分内容,分别是:

第一部分:root是账号名称,对应UID。

第二部分:x表示密码已经移到shadow加密文件了。

第三部分:0是UID,即用户识别码。当UID是0是,表示这个账号是“系统管理员”。UID在1~499一般保留给系统使用,而在500~65535一般用户用。

第四部方:0是GID,即用户组识别码,与/etc/group有关。

第五部分:root是用户信息说明栏,用来解释账号的意义。

第六部分:/root是用户家目录。

第七部分:/bin/bash是shell,用于当执行命令后,各硬件设备接口之间的通信。


2.认识“/etc/shadow”文件

命令行输入:# vi /etc/shadow


打开的/etc/shadow文件如上图所示。

下面以第一行为例,介绍每行中各部分的用途。

root:$6$jEfz355e$jBPBwazWDn7IzeNskhBBYwn/9ydVPDwC787BS3KrRwwKWL.XUT/PjjVGAMFO7VblvSyhv3SNx8lwwa88f54Gd.:15952:0:99999:7:::

shadow以“:”作为分隔符,工9个字段,用途如下:

第一部分:账号名称root。由于密码需要跟账号对应,因此,这个文件的第一栏就是账号,必须与/etc/passwd相同。

第二部分:密码$6$jEfz355e$jBPBwazWDn7IzeNskhBBYwn/9ydVPDwC787BS3KrRwwKWL.XUT/PjjVGAMFO7VblvSyhv3SNx8lwwa88f54Gd.,是编码后的密码。

第三部分:最近更改密码的日期15952。注意,linux日期的时间是1970.1.1作为1。

第四部分:密码不可更改的天数0,表示随时可以更改。

第五部分:密码需要重新更改的天数99999,表示密码不需要重新输入。

第六部分:密码更改期限前的警告期限7,密码到期前的7天之内,系统会警告该用户。

第七部分:密码过期的宽限时间,表示失效后无法登陆。

第八部分:账号失效日期。此字段规定日期后,将无法再使用。通常在“收费服务”的系统中使用该字段。

第九部分:保留。


3.增加一个用户

(1)完全参考默认值建立一个用户,名为vbird

命令行键入:# useradd vbird

(2)查看家/home下的vbird用户情况

命令行键入:# ls -l /home


可以看到/home下已经自动为vbird用户建立了家目录

(3)查看/etc/passwd、/etc/shadow、/etc/group内vbird用户情况

命令行键入:# grep vbird /etc/passwd /etc/shadow /etc/group


可以看到,三个文件中均为vbird用户添加了信息。

(4)在/etc/shadow所对应的行,可以看到,密码区对应的是“!!”,说明vbird用户还没有密码。如果没有密码,是无法登陆该用户的,下面利用passwd命令给该用户设定密码

命令行键入:# passwd vbird


密码规范挺复杂,简单的密码会提醒“BAD PASSWD: is too simple”,但再次输入该密码,系统就会接受你的密码。

看一下/etc/shadow内的vbird用户信息

命令行键入:# grep vbird /etc/shadow


可以看到,密码区已经有了内容(当然是编码后的结果)。


4.修改一个用户

修改用户时,主要使用usermod命令,也可以使用手动修改文件的方式。如果你的基础不牢固,建议采用usermod命令修改。

(1)将用户名vbird修改为vbirdfly

注意:关机(shutdown),再以root用户登录系统才能成功修改用户名,仅退出(layout)是不可以的。

命令行键入:# usermod -l vbirdfly vbird


vbird用户已经成功该名为vbirdfly,但其家目录和密码仍然是原vbird的。

退出(layout)系统后,再重新以vbird用户和原密码登录,已经无法登录;而采用vbirdfly用户和原密码登录,可以成功登录。

(2)如何才能将家目录也修改为vbirdfly呢?

·命令版

注意:关机(shutdown),再以root用户登录系统才能成功修改,仅退出(layout)是不可以的。

命令行键入:# usermod -d /home/vbirdfly -m vbirdfly


可以看出,/etc/passwd里的家目录部分已经修改成/home/vbirdfly。那/home下做了哪些修改呢?可以看出,原来的vbird文件改成了vbirdfly文件。这里需要说明一下usermod的-d和-m参数了:

如果命令是 usermod -d /home/vbirdfly vbirdfly 表示仅修改 /etc/passwd 第6栏的内容而已;如果加上-m 参数,即命令 usermod -d /home/vbirdfly -m vbirdfly ,则表示新建一个家目录;另外,如果原来的家目录是 /home/vibrd,那么usermod -d /home/vbirdfly -m vbirdfly 命令会将原来的 /home/vbird 更名为 /home/vbirdfly。

·手动版

首先,将家目录的名称改为vbirdly

命令行键入:

# cd /home

# mv vbird vbirdfly


可以看到,家目录已经成功修改名称。

这还不够,要在/etc/passwd中再作修改

命令行键入:# vi /etc/passwd

将红框部分改为vbirdfly


退出(layout)系统,我们以vbirdfly再登陆一下看看!


可以看出,vbirdfly是以/home/vbirdfly为家目录,修改成功!


5.删除一个用户

删除用户是指不让改用户在主机上使用任何数据,并将该用户的数据删除。

注意:关机(shutdown),再以root用户登录系统才能成功修改,仅退出(layout)是不可以的。

使用的命令是userdel

输入命令:# userdel -r vbird


可以看出该用户已经删除(包括家目录)。

如果vbird已经操作过一段时间,系统内可能会含有其他文件,如邮件信息(mail box)、例行命令(crontab)之类的文件,所以想要完整地将账号删除,最后执行userdel -r username之前,先以“find / -user username”查出整个系统内属于username的文件,然后再删除。


6.暂停一个用户

如果你只是想让某一用户“暂时不启用”,将/etc/shadow里最后导数一个字段设置为0,就可以让改账号无法使用。

参考上面的/etc/shadow介绍可知,将账号立即失效。


7. 冻结一个用户

如果你只是想让某一用户无法登陆,即密码冻结,可以使用passwd命令。

# passwd -l username

会显示:

Locking password for user username

passwd: Success

密码冻结解开

# passwd -u username


注:username只是为了说明,操作时只需用自己的用户名替换即可。



文档信息




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在linux中,如何增加、修改、删除、暂停和冻结用户名 的相关文章

  • linux硬链接与软链接

    http www cnblogs com sonic4x archive 2011 08 05 2128543 html 1 Linux链接概念 Linux链接分两种 一种被称为硬链接 Hard Link 另一种被称为符号链接 Symbol
  • Linux统计某文件夹下文件、文件夹的个数

    http blog sina com cn s blog 464f6dba01012vwv html 统计某文件夹下文件的个数 ls l grep wc l 统计某文件夹下目录的个数 ls l grep wc l 统计文件夹下文件的个数 包
  • linux中如何修改文件夹的用户权限

    linux中如何修改文件夹权限 linux中 可以使用chown命令来修改文件夹的用户权限 环境 windows 7 virtualbox fedora 15 kde 下面举例给出 1 以普通用户admin登录linux 利用su 切换到r
  • ld 链接程序出错定位

    工具链相关问题 一般可 verbose 下 看看具体什么地方出问题 设置 LDFLAGS Wl verbose 例如 链接一堆 o文件 只有以下错误信息 ld final link failed Bad value 就可以加入 Wl ver
  • fedora下一些与网络配置相关的文件和命令

    http thethe blog 51cto com 498901 145966 1 如果您在命令行下启动网络服务 应该是 root localhost beinan etc init d network start root localh
  • PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理

    相对于linux来说 udev还是一个新事物 然而 尽管它03年才出现 尽管它很低调 J 但它无疑已经成为linux下不可或缺的组件了 udev是什么 它是如何实现的 最近研究Linux设备管理时 花了一些时间去研究udev的实现 udev
  • 使用Crash工具分析 Linux dump文件

    前言 Linux 内核 以下简称内核 是一个不与特定进程相关的功能集合 内核的代码很难轻易的在调试器中执行和跟踪 开发者认为 内核如果发生了错误 就不应该继续运 行 因此内核发生错误时 它的行为通常被设定为系统崩溃 机器重启 基于动态存储器
  • 在linux shell中使用ftp命令来实现自动登陆、上传与下载

    前段时间有个需求 需要利用crontab定时往某个FTP上传文件 原以为linux中带的ftp命令只支持交互式的操作 没法在命令行下使用 所以后来打算利用PHP中提供的ftp命令来做 但是很不幸的发现ftp模块不是PHP的标准模块 还需要自
  • VirtualBox中Ubuntu 14.04 LTS安装GATE7.1

    开发环境 win7 VirtualBox Ubuntu 14 04 LTS 主要参考博客 1 Compilation Instructions V7 1 2 Gate7 1在Ubuntu下编译 3 Package Requirements
  • Linux入坑教程

    服务器安装所需环境 Linux 一 安装基础环境 1 1 JDK 1 2 Mysql 1 3 FastDFS 1 4 Redis 1 5 GIT 1 6 Node 二 Basic commands 基础命令 2 1 查询命令 2 1 1 查
  • 臻识车牌识别摄像头对接

    一 臻识车牌识别摄像头 1 非常有用的官方代码 内部有TCP HTTP等协议 2 官方常见问题 3 官方下载专区 二 http对接例子 1 自己使用java mock 模拟后台服务 你会用到的配置文件 java jar moco runne
  • Linux文件误删除恢复操作

    本文参考http write blog csdn net postedit ticket ST 491405 OGjDDusZeyMgVQ7bHW7f passport csdn net 前言 作为一个多用户 多任务的操作系统 Linux下
  • 【cmake】find_package设置查找路径

    1 find package的作用与实例 用来查找第三方依赖包的 cmake文件 并根据 cmake文件生成依赖包的头文件目录和库文件路径等 CMakeLists txt实例 find package Protobuf REQUIRED i
  • 日志查找常用命令-超实用

    0 前言 1 命令的尾部添加 color 或者 color auto 可以使关键字带颜色 很清晰 1 Linux日志查找常用命令 1 1 cat zcat cat n app log grep error 查询日志中含有某个关键字error
  • Shell脚本中字符串截取功能

    在Shell脚本编写中 有几个地方都是要用到字符串截取的功能 那将这块的内容进行下记录 1 字符串变量的截取操作 对字符串变量的截取操作一般都是通过 操作符 的方式进行 1 从指定位置index截取固定长度 格式 string start
  • Centos 7安装mysql

    1 安装前清理工作 1 1 1 清理原有的mysql数据库 使用以下命令查找出安装的mysql软件包和依赖包 rpm pa grep mysql 显示结果如下 mysql80 community release el7 1 noarch m
  • 中标麒麟QT中qDebug无输出问题解决办法

    一 系统环境 中标麒麟V5 qt creator 4 3 1 qt5 qtbase 5 6 2 二 问题 代码中qDebug 函数无输出 但qInfo 和qWarning 有输出 创建一个test工程 使用qDebug 打印信息 但是没有任
  • 防止内存泄露 Linux下用Valgrind做检查

    用C C 开发其中最令人头疼的一个问题就是内存管理 有时候为了查找一个内存泄漏或者一个内存访问越界 需要要花上好几天时间 如果有一款工具能够帮助我们做这件事情就好了 valgrind正好就是这样的一款工具 Valgrind是一款基于模拟li
  • makeinfo: command not found解决方法

    sudo apt get install texinfo
  • spark_hadoop集群搭建自动化脚本

    bin bash 脚本使用说明 1 使用脚本前需要弄好服务器的基础环境 2 在hadoop的每个节点需要手动创建如下目录 data hdfs tmp 3 修改下面的配置参数 4 脚本执行完备后需要收到格式化namenode

随机推荐