Linux学习笔记 07 - 用户和组群

一、用户和组群

Linux是一个真正的多用户操作系统,从本机或远程登录的多个用户能同时使用同一计算机,同时访问同一外围设备。不同的用户对于相同的资源拥有不同的使用权限。Linux将同一类型的用户归于一个组群,可利用组群权限来控制组群成员用户的权限。Linux系统进行用户和组群管理的目的在于保证系统中数据与进程的安全。

1、用户

无论是从本地还是从远程登录Linux系统,用户都必须拥有用户账号。登录时系统检验输入的用户名和密码。只有当该用户名已存在,且密码与用户名匹配时,用户才能登录到Linux。系统还会根据用户的默认配置建立用户的工作环境。
Linux中用户分为三大类型:超级用户系统用户普通用户

  • 超级用户:又称为root用户或根用户,拥有系统的最高权限。
  • 系统用户:与系统服务相关的用户,通常在安装相关软件包时自动创建,一般不需要改变其默认设置。
  • 普通用户在安装后由超级用户创建。普通用户的权限相当有限,只能操作其拥有权限的文件和目录,只能管理自己启动的进程。

每个用户都有如下属性信息:

  • 用户名:登录时使用的名字,必须是唯一的,可由字母、数字和符号组成。
  • 密码:用于身份验证。
  • 用户ID (UID):用户ID是Linux中每个用户都拥有的唯一识别号码,如同每个人都拥有的身份证号。超级用户的UID默认为0, 1-499默认为系统用户专用UID。默认将500及以上UID作为普通用户的UID。安装完成后新建的第一个用户的UID默认为500,第二个用户的UID默认为501,并依此类推。
  • 组群ID (GID):每位用户至少属于一个组群。组群ID是Linux中每个组群都拥有的唯一识别号妈。和UID类似,超级用户所属组群(即超级组群)的GID默认为01~499默认为系统组群专用GID。安装完成后新建的第一个私人组群的GID默认为500,第二个私人组群的GID默认为501,并依此类推。
  • 用户主目录:专属于用户的目录,用于保存该用户的自用文件。用户登录Linux后默认进人此目录,且对此目录具有完全控制权限。默认情况下,超级用户root的主目录为/rkoot,而普通用户的主目录为/home中与用户名同名的目录,如jerry的默认主目录为/home/jerry 。
  • 全名:用户的全称,是用户账号的附加信息,可为空。
  • 登录Shell:登录Linux后自动进人的Shell环境。Linux中默认使用Bash,用户一般不需要修改。

2、与用户相关的文件

1. 用户账号信息文件/etc/passwd

/etc/passwd文件保存除密码之外的用户账号信息。所有用户都可查看/etc/passwd文件的内容。
passwd文件中每行代表一个用户账号,而每个用户账号的信息又用划分为多个字段来表示用户的属性信息。passwd文件中各字段从左到右依次为:用户名密码用户ID用户所属主要组群的组群ID全名用户主目录登录Shell。其中,密码字段的内容总是以“x”来填充,加密后的密码保存在/etc/shadow文件中。

2. 用户密码信息文件/etc/shadow

/etc/shadow文件根据/etc/passwd文件而产生,只有超级用户才能查看其内容。为进一步提髙安全性,在shadow文件中保留的是采用SHA 512安全散列算法加密的密码。由于SHA算法是一种单向算法,理论上认为密码无法破解。
passwd文件类似,shadow文件中每行也代表一个用户账号,而每个用户账号的信息也用“”划分为多个字段来表示用户的属性信息。shadow文件的各字段的含义如下所示。

位置含义
1用户名,其排列顺序与/etc/passwd文件保持一致
2加密密码。如果是"!!",则表示这个账号无密码,不能登录。部分系统用户账号无密码
3从1970年1月1日起到上次修改密码日期的间隅天数。对于无密码的账号而言,是指从1970年1月1日起到创建该用户账号的间隔天数
4密码自上次修改后,要隔多少天才能再次修改。若为0则表示没有时间限制。
5密码自上次修改后,多少天之内必须再次修改。若为99999则表示用户密码未没置为必须修改
6若密码已设置时间限制,则在过期多少天前向用户发送警告信息,默认为7天
7若密码设置为必须修改,而到达期限后仍未修改,系统将推迟关闭账号的天数
8从1970年1月1日起到用户账号到期的间隔天数
9保留字段未使用。

3、组群

Linux将具有相同特性的用户划归为一个组群,可以大大简化用户的管理,方便用户之间文件的共享。任何一个用户都至少属于一个组群,并且可同时属于多个附加组群。用户不仅拥有其主要组群的权限,还同时拥有其附加组群的权限。
组群按照其性质分为:超级组群系统组群私人组群

  • 超级组群:超级用户所处的组群。
  • 系统组群:安装系统服务程序时自动创建的组群。
  • 私人组群:安装完成后,由超级用户新建的组群。

每个组群都具有如下属性信息:

  • 组群名:组群的名称,由数字、字母和符号组成。
  • 组群ID ( GID ):用于识別不同组群的唯一数字标识。
  • 组群密码:默认情况下,组群无密码,必须进行一定操作才能设置组群密码。
  • 用户列表:组群的所有用户,用户之间用""分隔。

4、与组群相关的文件

1. 组群账号信息文件 /etc/group

/etc/group文件保存组群账号的信息,所有用户都可以查看其内容。group文件中的每行内容表示一个组群的信息,各字段之间用“”分隔。
group文件的各字段从左到右依次为:组群名组群密码组群管理员密码以此组群为附加组群的用户列表,其中密码字段总为“x”。

2. 组群密码信息文件 /etc/gshadow

/etc/gshadow文件根据/etc/group文件而产生,主要用于保存加密的组群密码,只有超级用户才能查看其内容。
gshadow文件的各字段从左到右依次为:组群名组群加密密码组群管理员密码和此组群为附加组群的用户列表,其中加密密码字段为“!!”表示无密码。

二、管理用户和组群的Shell命令

利用Shell命令也可进行用户和组群管理,虽然没有使用用户管理器直观,但是更加可靠高效

1、管理用户的Shell命令

1. useradd命令

格式:useradd [选项]用户名

功能:新建用户账号,只有超级用户才能使用此命令。
主要选项说明:

命令作用对象作用
-c全名指定用户的全称,即用户的注释信息
-d主目录指定用户的主目
-e有效期限指定用户账号的有限期限
-f缓冲指定密码过期后多久将关闭此账号
-g组群ID|组群名指定用户所属的主要组群
-G组群ID |组群名指定用户所属的附加组群
-s登录指定用户登录Shell
-u用户指定用户UID

新建用户时如果指定其所属的主要组群,系统就不会新建与用户同名的私有组群。系统仍将为该用户在/home目录新建一个与用户同名的子目录,用户的登录Shell仍为Bash, UID仍由系统自动分配。
使用useradd命令新建用户账号,将在/etc/passwd文件和/etc/shadow文件中増加新用户的记录。如果同时还新建了私人组群,还将在/etc/group文件和/etc/gshadow文件中增加记录。

2. passwd命令

格式:passwd [选项][用户]

功能:设置或修改密码及密码属性。
主要选项说明

命令作用对象作用
-d用户名删除用户的密码,则该用户账号无须密码即可登录系统
-1用户名暂时锁定指定的用户账号
-U用户名解除指定用户账号的锁定
-S用户名显示指定用户化号的状态
  1. 设置与修改密码
    超级用户使用useradd命令新建用户账号后,还必须使用passwd命令为用户设置初始密码,否则此用户账号将被禁止登录。普通用户以此初始密码登录后可自行修改密码。

Linux安全性要求较高,如果密码少于6位、字符过于规律、字符重复性太高或者是英文单词,系统都将出现提示信息,提醒用户密码不符合要求。合格的密码应当由字母、数字和符号混合编排,且长度超过6位。
Linux中超级用户可(修改所有用户的密码,并且不需要先输人其原来的密码。普通用户使用passwd命令修改密码时不能使用参数,只能修改用户自己的密码并必须先输人原来的密码。

  1. 删除密码
    超级用户可删除用户的密码,该用户账号无须密码即可登录。

要删除用户的密码,超级用户除了使用passwd命令外,还可以直接编辑/etc/passwd文件,清除指定用户账号密码字段的内容即可。

  1. 锁定与解锁用户账号
    用户因放假、出差等原因短期不使巧系统时,出于安全考虑,系统管理员可以暂时锁定用户账号。用户账号一旦被锁定必须解除其锁定后才能继续使用。

超级用户也可以直接编辑/etc/passwd文件,在指定的用户账号所在行前加上“#”或“*”符号使其成为注释行,那么该用户账号也被锁定不能使用。去除“#”或“*”符号,用户账号就可以恢复使用。

3.usermod命令

格式:usermod [选项]用户名

功能:修改用户的属性。只有超级用户才能使用此命令,且需要修改属性的用户当前未登录
主要选项说明

命令作用对象作用
-c全名指定用户的全称,即用户的注释信息
-d主目录指定用户的主目录
-e有效期限指定用户账号的有限期限
-f缓冲天数指定密码过期后多久将关闭此账号
-g组群ID或组群名指定用户所属的主要组群
-G组群ID或组群名指定用户所属的附加组群
-s登录Shell指定用户登录Shell
-u用户ID指定用户的UID
-1用户名指定用户的新名称

usermod命令可使用的选项跟useradd命令基本相同,唯一的不同在于usermod命令可以修改用户名。执行 usermod 命令将修改/etc/passwd/etc/shadow/etc/group/etc/gshadow 等文件的相关信息。

4. userdel命令

格式:userdel [-r]用户名

功能:删除指定的用户账号,只有超级用户才能使用此命令。
选项说明:使用“-r”选项,系统不仅将删除此用户账号,并且还将用户的主目录也一并删除。如果不使用“-r”选项,则仅删除此用户账号。
另外,如果在新建该用户时已创建私人组群,而该私人组群当前又无其他用户,那么在删除用户的同时也将一并删除这一私人组群。正在使用系统的用户不能被删除,必须退出登录才行。

5. su命令

格式:su [-][用户名]

功能:切换用户身份。无用户名参数,即切换为超级用户。超级用户可切换为任何普通用户,而且不需要输人密码。普通用户转换为其他用户时需要输人被转换用户的密码。切换为其他用户之后就拥有该用户的权限。使用exit命令可返回到本来的用户身份。
选项说明:“-”选项,表示切换时采用新用户的环境变量。

6. id命令

格式:id [用户名]

功能:查看用户的UID、GID和用户所属组群的信息。不指定用户名,则显示当前用户的相关信息。

2、管理组群的Shell命令

1. groupadd命令

格式:groupadd [选项]组群名

功能:新建组群,只有超级用户才能使巧此命令。
主要选项说明:
-g 组群ID 指定组群的GID
利用groupadd命令新建组群时如果不指定GID,则其GID由系统自动分配。执行groupadd命令后,/etc/group/etc/gshadow文件中将增加一行记录。

2. groupmod 命令

格式:groupmod [选项]组群名

功能:修改指定组群的属性,只有超级用户才能使用此命令。
主要选项说明:

命令作用对象作用
-g组群ID指定组群的GID
-n组群名指定组群的新名字

3. groupdel 命令

格式:groupdel 组群名

功能:删除指定的组群,只有超级用户才能使用此命令。在删除指定组群之前必须确保该组群不是任何用户的主要组群,否则必须删除那些以此组群作为主要组群的用户才行。

3、批量创建多个用户账号

作为系统管理员,有时需要批量新建多个用户账号。使用上述命令和方法将非常费时并且容易出错,而通过预先编写用户信息文件和密码文件,利用newuseis等命令能实现批量添加用户账号的功能。
步骤如下:

1. 创建组群

[root@centos ~]#groupadd -g 600 14students

2. 创建用户信息文件

使用任何一种文本编辑器输人用户账号信息。用户账号信息必须符合/etc/passwd文件的格式。每行内容为一个用户账号的信息,字段排列顺序也必须跟/etc/passwd文件完全相同。每个用户账号的用户名和UID必须各不相同。

3. 创建用户密码文件

使用任何一种文本编辑器输入用户名和密码信息。每行内容为一个用户账号的信息,用户名与用户信息文件的内容相对应。

4. 批量创建用户账号

超级用户利用newusers命令批量创建用户账号,只需将用户信息文件重定向给newusers,系统就会自动新建用户账号。

[root@centos ~] # newusers < student.txt

操作无误后,查看/etc/passwd文件会发现student.txt文件的内容追加到/etc/passwd文件,而且系统还已在/home目录中为每位用户创建其主目录。

5. 暂时取消shadow加密

[root@centos ~]# pwunconv

为使用户密码文件中指定的密码可用,必须取消原有的shadow加密。超级用户利用pwunconv命令将/etc/shadow文件中加密密码解密,并保存于/etc/passwd文件,且删除/etc/shadow文件。

6. 为用户设置密码

超级用户利用chpasswd命令批量更新用户的密码,只需要把用户密码文件重定向给chpasswd程序,系统就会自动设置用户密码。

[root@centos ~]# chpasswd < password.txt

操作无误后,再次查看/etc/passwd文件,会发现password.txt文件中的密码均出现在/etc/passwd文件中相应用户的密码字段。显然,送样的/etc/passwd文件存在很大的安全隐患,为此需要恢复shadow加密。

7. 恢复shadow加密

[root@centos ~]# pwconv

pwconv命令的功能跟pwunconv命令相反,能将/etc/passwd文件中的密码字段进行shadow加密,并将加密后的密码保存到/etc/shadow文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值