BestCentOS

BestCentOS.com
CentOS系统网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Linux系统用户账号的管理工作原理及使用指南(Ubuntu)

2023年11月15日 120点热度

本教程为上面的Ubuntu使用手册的详尽版本,快速入门可以看哪个Ubuntu的。这部份更多是Linux系统的一些共通特点。

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个帐号,之后以这个帐号的身分步入系统。

用户的帐号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制她们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每位用户帐号都拥有一个唯一的用户名和各自的口令。

用户在登入时键入正确的用户名和口令后,就才能步入系统和自己的主目录。

实现用户帐号的管理,要完成的工作主要有如下几个方面:

LinuxLinuxLinux系统用户帐号的管理

用户帐号的管理工作主要涉及到用户帐号的添加、修改和删掉。

添加用户帐号就是在系统中创建一个新帐号,之后为新帐号分配用户号、用户组、主目录和登陆Shell等资源。刚添加的帐号是被锁定的,难以使用。

1.添加新的用户帐号使用useradd命令

其句型如下:

useradd 选项 用户名

参数说明:

用户名:

指定新帐号的登陆名。

实例1

useradd –d /usr/sam -m sam

此命令创建了一个用户sam,其中-d和-m选项拿来为登陆名sam形成一个主目录/usr/sam(/usr为默认的用房主目录所在的父目录)。

实例2

useradd -s /bin/sh -g group –G adm,root gem

此命令新建了一个用户gem,该用户的登陆Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

这儿可能新建组:#groupaddgroup及groupaddadm

降低用户帐号就是在/etc/passwd文件中为新用户降低一条记录,同时更新其他系统文件如/etc/shadow,/etc/group等。

Linux提供了集成的系统管理工具userconf,它可以拿来对用户帐号进行统一管理。

2.删掉账号

假如一个用户的帐号不再使用,可以从系统中删掉。删掉用户帐号就是要将/etc/passwd等系统文件中的该用户记录删掉,必要时还删掉用户的主目录。

删掉一个已有的用户帐号使用userdel命令,其格式如下:

userdel 选项 用户名

常用的选项是-r,它的作用是把用户的主目录一起删掉。

比如:

userdel sam

此命令删掉用户sam在系统文件中(主要是/etc/passwd,/etc/shadow,/etc/group等)的记录,同时删掉用户的主目录。

3.更改账号

更改用户帐号就是按照实际情况修改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

更改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名

常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这种选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

另外,有些系统可以使用选项:-l新用户名

这个选项指定一个新的帐号,将要原先的用户名改为新的用户名。

比如:

usermod -s /bin/ksh -d /home/z –g developer sam

此命令将用户sam的登陆Shell更改为ksh,主目录改为/home/z,用户组改为developer。

4.用户口令的管理

用户管理的一项重要内容是用户口令的管理。用户帐号刚创建时没有口令,并且被系统锁定,难以使用,必须为其指定口令后才可以使用,虽然是指定空口令。

指定和更改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它更改自己的口令。命令的格式为:

passwd 选项 用户名5、用户口令的管理

可使用的选项:

假如默认用户名,则更改当前用户的口令。

比如,假定当前用户是samlinux用户和用户组管理,则下边的命令更改该用户自己的口令:

$ passwd 
Old password:****** 
New password:******* 
Re-enter new password:*******

假如是超级用户,可以用下述方式指定任何用户的口令:

passwd sam 
New password:******* 
Re-enter new password:*******

普通用户更改自己的口令时,passwd命令会先寻问原口令,验证后再要求用户输入两遍新口令,假如两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不须要晓得原口令。

为了系统安全起见,用户应当选择比较复杂的口令,比如最好使用8位长的口令,口令中包含有小写、小写字母和数字,但是应当与姓名、生日等不相同。

为用户指定空口令时,执行下述方式的命令:

passwd -d sam

此命令将用户sam的口令删掉,这样用户sam下一次登陆时,系统就不再寻问口令。

passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登入,比如:

passwd -l sam

LinuxLinuxLinux系统用户组的管理

每位用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和更改。组的降低、删除和更改实际上就是对/etc/group文件的更新。

1.降低一个新的用户组使用groupadd命令

其格式如下:

groupadd 选项 用户组

可以使用的选项有:

实例1:

groupadd group1

此命令向系统中降低了一个新组group1,新组的组标示号是在当前已有的最大组标示号的基础上加1。

实例2:

groupadd -g 101 group2

此命令向系统中降低了一个新组group2linux操作系统好吗,同时指定新组的组标示号是101。

2.假如要删掉一个已有的用户组,使用groupdel命令

其格式如下

groupdel 用户组

比如:

groupdel group1

此命令从系统中删掉组group1。

3.更改用户组的属性使用groupmod命令

其句型如下:

groupmod 选项 用户组

常用的选项有:

实例1:

用户组管理命令_linux用户和用户组管理_用户组管理在哪里打开

groupmod -g 102 group2

此命令将组group2的组标示号更改为102。

实例2:

groupmod –g 10000 -n group3 group2

此命令将组group2的标示号改为10000,组名更改为group3。

4.假如一个用户同时属于多个用户组,这么用户可以在用户组之间切换,便于具有其他用户组的权限

用户可以在登陆后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。诸如:

$ newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户帐号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

与用户帐号有关的系统文件

完成用户管理的工作有许多种方式,而且每一种方式实际上都是对有关的系统文件进行更改。

与用户和用户组相关的信息都储存在一些系统文件中,这种文件包括/etc/passwd,/etc/shadow,/etc/group等。

下边分别介绍这种文件的内容。

/etc/passwd文件是用户管理工作涉及的最重要的一个文件

Linux系统中的每位用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

这个文件对所有用户都是可读的。它的内容类似下边的反例:

cat /etc/passwd
root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:
sam:x:200:50:Sam san:/usr/sam:/bin/sh

从里面的反例我们可以看见,/etc/passwd中一行记录对应着一个用户,每行记录又被逗号(:)分隔为7个数组,其格式和具体含意如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

1)"用户名"是代表用户帐号的字符串。

一般宽度不超过8个字符,但是由大小写字母和/或数字组成。登陆名中不能有逗号(,由于顿号在这儿是分隔符。

为了兼容起见,登陆名中最好不要包含点字符(.),而且不使用连字符(-)和减号(+)打头。

2)“口令”一些系统中,储存着加密后的用户口令字。

其实这个数组储存的只是用户口令的加密串,不是明文,然而因为/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。为此,如今许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字储存到/etc/shadow文件中,而在/etc/passwd文件的口令数组中只储存一个特殊的字符,比如“x”或者“*”。

3)“用户标示号”是一个整数,系统内部用它来标示用户。

通常情况下它与用户名是一一对应的。假如几个用户名对应的用户标示号是一样的,系统内部将把它们视为同一个用户,并且它们可以有不同的口令、不同的主目录以及不同的登陆Shell等。

一般用户标示号的取值范围是0~65535。0是超级用户root的标示号,1~99由系统保留,作为管理帐号,普通用户的标示号从100开始。在Linux系统中,这个界限是500。

用户组管理命令_用户组管理在哪里打开_linux用户和用户组管理

4)“组标示号”字段记录的是用户所属的用户组。

它对应着/etc/group文件中的一条记录。

5)“注释性描述”字段记录着用户的一些个人情况。

比如用户的真实姓名、电话、地址等,这个数组并没有哪些实际的用途。在不同的Linux系统中,这个数组的格式并没有统一。在许多Linux系统中,这个数组储存的是一段任意的注释性描述文字,用做finger命令的输出。

6)“主目录”,也就是用户的起始工作目录。

它是用户在登入到系统以后所处的目录。在大多数系统中深度linux系统,各用户的主目录都被组织在同一个特定的目录下,而用房主目录的名称就是该用户的登陆名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则依照具体情况设置。

7)用户登陆后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登入到系统后运行的命令协程或某个特定的程序,即Shell。

Shell是用户与Linux系统之间的插口。Linux的Shell有许多种,每种都有不同的特性。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。

系统管理员可以依据系统情况和用户习惯为用户指定某个Shell。倘若不指定Shell,这么系统使用sh为默认的登陆Shell,即这个数组的值为/bin/sh。

用户的登陆Shell也可以指定为某个特定的程序(此程序不是一个命令类库)。

借助这一特性,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就手动退出了系统。有些Linux系统要求只有这些在系统中登记了的程序能够出现在这个数组中。

8)系统中有一类用户称为伪用户(psuedousers)。

那些用户在/etc/passwd文件中也占有一条记录,而且不能登入,由于它们的登陆Shell为空。它们的存在主要是便捷系统管理,满足相应的系统进程对文件属主的要求。

常见的伪用户如下所示:

伪用户含义 
bin 拥有可执行的用户命令文件 
sys 拥有系统文件 
adm 拥有帐户文件 
uucp UUCP使用 
lp lp或lpd子系统使用 
nobody NFS使用

拥有账户文件

1、除了前面列举的伪用户外,还有许多标准的伪用户,比如:audit,cron,mail,usenet等,它们也都各自为相关的进程和文件所须要。

因为/etc/passwd文件是所有用户都可读的,假如用户的密码太简单或规律比较显著的话,一台普通的计算机就能否很容易地将它破解,因而对安全性要求较高的Linux系统都把加密后的口令字分离下来,单独储存在一个文件中,这个文件是/etc/shadow文件。有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。

2、/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令按照/etc/passwd中的数据手动形成

它的文件格式与/etc/passwd类似,由若干个数组组成,数组之间用":"隔开。这种数组是:

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

"登陆名"是与/etc/passwd文件中的登陆名相一致的用户帐号"口令"数组储存的是加密后的用户口令字,宽度为13个字符。假如为空,则对应用户没有口令,登陆时不须要口令;假如富含不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登入。"最后一次更改时间"表示的是从某个时刻起,到用户最后一次更改口令时的天数。时间起点对不同的系统可能不一样。诸如在SCOLinux中,这个时间起点是1970年1月1日。"最小时间间隔"指的是两次更改口令之间所需的最小天数。"最大时间间隔"指的是口令保持有效的最大天数。"警告时间"数组表示的是从系统开始警告用户到用户密码即将失效之间的天数。"不活动时间"表示的是用户没有登陆活动但帐号仍能保持有效的最大天数。"失效时间"数组给出的是一个绝对的天数,假如使用了这个数组,这么就给出相应帐号的生存期。届满后,该帐号就不再是一个合法的帐号,也就不能再拿来登陆了。

下边是/etc/shadow的一个反例:

cat /etc/shadow
root:Dnakfw28zf38w:8764:0:168:7:::
daemon:*::0:0::::
bin:*::0:0::::
sys:*::0:0::::
adm:*::0:0::::
uucp:*::0:0::::
nuucp:*::0:0::::
auth:*::0:0::::
cron:*::0:0::::
listen:*::0:0::::
lp:*::0:0::::
sam:EkdiSECLWPdSa:9740:0:0::::

3、用户组的所有信息都储存在/etc/group文件中。

将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。

每位用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。

当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登陆时所属的默认组,而其他组称为附加组。

用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

用户组的所有信息都储存在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由逗号(:)隔开若干个数组,这种数组有:

组名:口令:组标识号:组内用户列表

"组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登陆名一样,组名不应重复。"口令"数组储存的是用户组加密后的口令字。通常Linux系统的用户组都没有口令,即这个数组通常为空,或则是*。"组标示号"与用户标示号类似,也是一个整数,被系统内部拿来标示组。"组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用冒号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

/etc/group文件的一个反例如下:

root::0:root
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
lp::7:root,lp
users::20:root,sam

批量添加用户

添加和删掉用户对每个Linux系统管理员都是轻而易举的事,比较棘手的是假如要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户的方式。Linux系统提供了创建大量用户的工具,可以让您立刻创建大量用户,技巧如下:

1.编辑一个文本用户文件

每一列根据/etc/passwd密码文件的格式书写,要注意每位用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:

user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash

2.创建用户

以root身分执行命令/usr/sbin/newusers,从刚创建的用户文件user.txt中导出数据,创建用户:

#newusers < user.txt 

之后可以执行命令vipw或vi/etc/passwd检测/etc/passwd文件是否早已出现这种用户的数据,但是用户的寄主目录是否早已创建。

3.执行命令/usr/sbin/pwunconv

将/etc/shadow形成的shadow密码解码linux用户和用户组管理,之后回讲到/etc/passwd中,并将/etc/shadow的shadow密码栏删除。这是为了便捷下一步的密码转换工作,即先取消shadowpassword功能。

pwunconv

4.编辑每位用户的密码对照文件

范例文件passwd.txt内容如下:

user001:密码
user002:密码
user003:密码
user004:密码
user005:密码
user006:密码

5.以root身分执行命令/usr/sbin/chpasswd

创建用户密码,chpasswd会将经过/usr/bin/passwd命令编码过的密码写入/etc/passwd的密码栏。

chpasswd < passwd.txt

6.确定密码经编码写入/etc/passwd的密码栏后

执行命令/usr/sbin/pwconv将密码编码为shadowpassword,并将结果写入/etc/shadow。

pwconv

这样就完成了大量用户的创建了,然后您可以到/home下检测这种用户寄主目录的权限设置是否都正确,并登陆验证用户密码是否正确。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 口令 字段 用户 登录 账号
最后更新:2023年11月15日

CentOS系统网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

CentOS系统网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
Linux集群:原理与实战经验 华数TV电脑版安装说明及常见问题汇总 Linux系统中DNS配置文件查看和编辑指南 华数TV电视版:4K画质堪比影院:杜比音效、1080P Linux系统强制卸载的必要性和方法 百问网制作好了完备的Ubuntu镜像 解密LinuxTomcat启动失败 Linux和Windows两个方面如何执行一个定时任务? 探索Linux:命令行查看系统版本经验分享 跨境电商ERP源码的重要性以及如何选择合适的源码 掌握BusyBox:安装和使用技巧 linux内核与驱动 2016上海事业单位医疗招聘:杂项设备文件操作集分析 acm linux 如何参与编程竞赛并融入社区? (Linux基础知识)内核中定时器的数据类型分析 Linux操作系统安装指南:步骤与注意事项 某台服务器网卡的流量总结及解决办法总结! CentOS如何切换到图形界面? 基于iftop的iftop命令监控监控网卡的应用 centos login CentOS登录:轻松踏入Linux世界 suroot命令的用途、安全性和常见问题及用途
关于linux服务器搭建有什么方法?3个相关介绍成功安装Linux的3个简单的步骤来安装OSLinux系统结构GNU/Linux不同的发行版都存在深入探索Linux系统源码Windows、Linux和Unix是当今最流行的操作系统?centos unknown host CentOS主机找不到的解决方法mac安装部署mongoDB社区版-Ubuntu-20.04版本有三种方法Linux内存管理大揭秘Linux内核的GNU操作系统是什么?关键词Linux发行版关于linux系统学习的一些事儿,你了解多少?关于Linux设备驱动开发理论、框架与实例的说明Linux系统中安装中文语言包教程linux开发教程 Marvell88MC200及88MW300:C语言三剑客关于Linux操作系统的一些常见问题及解决办法Linux系统中的文件传输协议解析拷贝Linux系统的文件到U盘的解决方法(图文)Linux系统中如何修改语言环境为中文嵌入式软件开发人员如何学习C语言学习书籍?Linuxvi编辑器顺利退出技巧Linux系统服务器安装的全过程及准备工作详解!
Linux游戏世界,玩转无限乐趣 Linux中如何配置网络配置?(Linux基础知识) PS1变量的默认值,你知道吗? Linux文件句柄解析:内核标识文件的秘密 Linux网卡全景:命令评测揭秘! DS1818BB2020多点温度驱动模块化设计思路 环境介绍操作系统环境:ubuntu18.0464位QT版本:5.12 如何关闭Linux命令行中执行的命令或程序呢? Linux操作系统的诞生、发展和成长过程依赖于以下五个支柱 Linux怎么安装应用程序/软件包命令安装Linux软件 如何利用图形化工具rfuser和在命令行界面下完成用户账号工作组 CentOS7虚拟机安装指南 揭秘Linux游戏世界的未知秘密! Windows、Linux和Unix是当今最流行的操作系统? 查找Linux用户占用空间的方法,轻松识别文件与目录 Linux启动WebLogic服务,轻松实现高效运维 解决CentOS U盘不显示问题,数据传输更顺畅! Linux终端新教程系列之BashShell脚本的新系列开始 CentOS高效安装Zeromq,轻松搭建分布式通信 CPU源代码分析、芯片设计与Linux移植经验
标签聚合
文件 软件 操作 目录 安装 内核 linux系统 应用 命令 linux服务器
书籍
课程
技术群
技术干货大合集↓
  • 2023年12月 / 10篇
  • 2023年11月 / 91篇
  • 2023年10月 / 125篇
  • 2023年9月 / 119篇
  • 2023年8月 / 124篇
  • 2023年7月 / 119篇
  • 2023年6月 / 120篇
  • 2023年5月 / 122篇
  • 2023年4月 / 69篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2024 BestCentOS.com ALL RIGHTS RESERVED.

京ICP备14023444号-3