用户和用户组管理

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

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

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

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

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

添加用户:

useradd 选项 用户名
参数:
  • -c comment 指定一段注释性描述。
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项
  • -g 用户组
  • -G 附加组
  • -s 登录shell
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

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

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

删除用户

# userdel -r sam  常用的选项是 -r,它的作用是把用户的主目录一起删除。
此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

修改账号

usermod:

参数与添加用户一多一个:

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

这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

用户账号刚创建时没有口令,但是被系统锁定,无法使用

用户口令管理 

指定和修改用户口令的Shell命令是passwd超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:  超级用户为用户指定口令时,就不需要知道原口令。

passwd 选项 用户名
参数;
  • -l 锁定口令,即禁用账号。  -l(lock) 选项锁定某一用户
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

用户组管理:

每个用户都有一个用户组:创建用户同时创建用户组

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

groupadd 选项 用户组
-g GID 指定新用户组的组标识号(GID)
-o 可以有相同GID

 groupadd group1  不指定GID则在原来最大上加一
# groupadd -g 101 group2 指定GID

删除用户组:

groupdel 用户组


修改用户组:
groupmod 选项 用户组 -g    -o    
# groupmod –g 10000 -n group3 group2
此命令将组group2的标识号改为10000,组名修改为group3。

,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。切换 当前所在的用户组以便拥有相应权限

 newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组

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

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

sam:x:200:50:Sam san:/usr/sam:/bin/sh
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

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

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

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

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

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

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

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

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

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

这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

常见的伪用户如下所示:

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

 

用户组的所有信息都存放在/etc/group文件中
bin::2:root,bin 组名:口令:组标识号:组内用户列表
组名:口令:组标识号:组内用户列表

批量添加用户:

。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

以root身份执行命令 /usr/sbin/newusers

 newusers < user.txt

将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadowshadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。

# pwunconv

编辑每个用户的密码对照文件。

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

user001:密码
user002:密码

以root身份执行命令 /usr/sbin/chpasswd

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

# chpasswd < passwd.txt
user001::600:100:user:/home/user001:/bin/bash 
us001:X:1000:1000::/home/us001:sbin/bash
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
 
 


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

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

# pwconv
原文地址:https://www.cnblogs.com/webcyh/p/11299080.html