Linux管理用户账号和组账号以及目录和文件的属性、包括创建、删除、增加、查询、修改命令的用介绍

一:用户账号和组账号概述

与 Windows 操作系统一样,Linux 操作系统的每一个用户账号也都有唯一的用户名与密码。用户在登录时输入正确的用户名和密码,就能够进入操作系统和自己的主目录。本小节将介绍 Linux 操作系统中用户账号和组账号的相关概念。

1、用户账号概述

Linux系统中,根据系统管理的需要,将用户账号分为不同的类型,其拥有的权限,担任的角色也各不相同。

  • 用户账号: 功能超级用户 root用户是Linux系统中默认的超级用户账号,对本级拥有最高的权限,类似于Windows系统中的administrator用户。

  • 普通用户: 普通用户账号需要有root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。

  • 程序用户: 在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。例如:bin,daemon,ftp,mail等。

  • 匿名用户: Windows中的匿名用户时guest,Linux系统中匿名用户是nobody。

2、组账号概述

基于某种特定联系将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。

  • 私有组(基本组):随着用户的建立而建立,与用户同名
  • 共有组(附加组):直接创建空组,可以自由添加已有用户。给组设置权限后,该组中的所有用户都具备此权限。

3、UID号和GID号

Linux系统中的每一个用户账号和组账号都有一个数字形式的身份标记,称为UID(User IDentity,用户标识号)和GID(Group IDentify,组标识号)。对于系统核心来说,UID是作为区分用户的基本依据,原则上每个用户的UID号应该是唯一的。
与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity, 组标识号)

用户 UID号 GID号
root用户 UID=0 GID=0
程序用户 UID=1~499 GID=1~499
普通用户 UID=500~60000 GID=500~40000

二、用户账号文件

Linux系统中的用户账号,密码等信息均保存在相对应的 配置文件中,直接修改这些文件或者使用用户管理命令都可以对用户账号进行管理。

1、用户账号文件

与用户账号相关的配置文件主要有两个,分别是/etc/passwd, /etc/shadow、前者用于保存用户名称,宿主目录,登录Shell等基本信息,后者用于保存用户的密码,账号有效期等信息。在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用冒号“:”进行分隔。

基于系统运行和管理的需要,所有用户都可以访问passwd 文件中的内容,但是只有root 用户才能进行更改。

  • 用户账号文件/etc/passwd
    操作系统中所有用户的账号基本信息都保存在/etc/passwd 文件中,该文件是文本文件, 任何用户都可以读取文件中的内容。
查看/etc/passwd文件的前5行
[root@mysql3 local]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

在这里插入图片描述

  • 第 1 字段:用户账号的名称,也是登录系统时使用的识别名称。
  • 第 2 字段:经过加密的用户密码字串,或者密码占位符“x”。
  • 第 3 字段:用户账号的 UID 号。
  • 第 4 字段:所属基本组账号的 GID 号。
  • 第 5 字段:用户全名,可填写与用户相关的说明信息。
  • 第 6 字段:宿主目录,即该用户登录后所在的默认工作目录。
  • 第 7 字段:登录 Shell 等信息,用户完成登录后使用的 Shell。

2、用户账号文件/etc/shadow

shadow文件又被称为“影子文件”,其中保存有各种用户账号的密码信息,因此默认只有root用户能够读取文件中的内容,而不允许直接编辑改文件中的内容。

[root@mysql3 local]# tail -1 /etc/shadow
mysql:!!:18556:0:99999:7:::
[root@mysql3 local]# head -1 /etc/shadow
root:$6$K/7Xopw7O8.pthWq$1vT02JR9hMQ9D.AHIcXM7kB7qV9bm1jPfa7Ob1lHjASKBOM3/J/4GsWoxXp0olVeGuO/JSkK2MywbiV.okTgJ/::0:99999:7:::
  • 每个字段以冒号分隔
  • 第 1 字段:用户账号名称。
  • 第 2 字段:使用 SHA-512(哈希算法中的一种)加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统。
  • 第 3 字段:上次修改密码的时间,表示从 1970 年 01 月 01 日算起到最近一次修改密码时间隔的数。
  • 第 4 字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为 0,表示不进行限制。
  • 第 5 字段:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为 99999,表示不进行限制。
  • 第 6 字段:提前多少天警告用户密码将过期,默认值为 7。
  • 第 7 字段:在密码过期之后多少天内禁用此用户。
  • 第 8 字段:账号失效时间,此字段指定了用户作废的天数(从 1970 年 01 月 01日起计算),默认值为空,表示账号永久可用。
  • 第 9 字段:保留字段,目前没有特定用途。

三、用户账号管理

1、useradd命令–添加用户账号

基本命令格式如下
useradd [选项] 用户名
常用选项有:

  • -u 指定用户的UID号,要求UID号码未被其他用户使用
  • -d 指定用户的宿主目录位置(当与 -M 一起使用时,不生效)
  • -e 指定用户的账户失效时间,可以使用YYYY-MM-DD的日期格式
  • -g 指示基本组
  • -G 指示附加组
  • -M 不建立宿主目录,即使/etc/login.defs系统配置中已设置要建立宿主目录
  • -s 指定用户的登录shell

2、passwd命令–设置/更改用户口令

使用命令基本格式
passwd [选项] 用户名

常用选项

  • -d 清空指定用户的密码,仅使用用户名即可登录系统
  • -l 锁定用户账户
  • -S(大S) 查看用户账户是否被锁定
  • -u 解锁用户账户

3、usermod命令–修改用户账号的属性

对于系统中已经存在的用户账号,可以使用usermod命令重新设置各种属性。usermod命令同样需要指定账号名称作为参数。
命令使用基本格式
usermod [选项] 用户名
常用选项

  • -u:修改用户的 UID 号。
  • -d:修改用户的宿主目录位置。
  • -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
  • -g:修改用户的基本组名(或使用 GID 号)。
  • -G:修改用户的附加组名(或使用 GID 号)。
  • -s:指定用户的登录 Shell。
  • -l:更改用户账号的登录名称(Login Name)。
  • -L:锁定用户账户。
  • -U:解锁用户账户。

4、 userdel 命令——删除用户账号

当操作系统中的某个用户账号不再使用时(如该员工已经从公司离职等情况),可以使用 userdel 命令将该用户账号删除。
命令使用基本格式
userdel [选项] 用户名
常用选项

  • -r 同时删除宿主目录。

用户账号的初始配置文件

添加一个新的用户账号后,useradd 命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件包括“.bash_logout”、“.bash_profile”和“.bashrc”。
“.bash_profile”文件中的命令将在该用户每次登录时被执行;
“.bashrc”文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登 录系统)时执行;
“.bash_logout”文件中的命令将在用户每次退出登录时执行。

四、组账号管理

1、组账号文件

与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow。前者用于保存组账号名称、GID 号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息。

2、groupadd 命令——添加组账号

使用 groupadd 命令可以添加一个组账号
命令使用基本格式
groupadd [选项] 组名

  • -g 指定 GID 号

3、gpasswd 命令——添加、删除组成员

gpasswd 命令本来是用于设置组账号的密码,但是该功能极少使用,实际上该命令更多地用来管理组账号的用户成员。
命令使用基本格式
groupadd [选项] 用户名 组名

  • -a 添加组成员
  • -d 删除组成员

4、groupdel 命令——删除组账号

当系统中的某个组账号已经不再使用时,可以使用 groupdel 命令将该组账号删除。而添加指定的组账号名称作为参数。
命令使用基本格式
groupdel 组名

五、查询账号信息

在用户管理工作中,虽然直接查看用户账号、组账号的配置文件也可以查询相关信息, 但是并不是很直观。在 Linux 操作系统中,还可以使用几个常用的查询命令工具,如 id、groups、finger、users等。

1、groups 命令——查询用户账号所属的组

命令使用基本格式
groups 用户名

2、id——查询用户账号的身份标识

使用 id 命令可以快速查看指定用户账号的 UID、GID 标识和属主、属组等信息。
命令使用基本格式
id 用户名

3、finger 命令——查询用户账号的登录属性

使用 finger 命令可以查询指定的用户账号的登录属性等详细信息,包括登录名称、完整名称、宿主目录、登录 Shell 等。
若系统中没有该命令, 可以从系统光盘镜像的 Packages 目录下找到finger-0.17-52.el7.x86_64.rpm 进行安装。或者使用yum源安装。
命令使用基本格式
finger 用户名

4、w 命令——查询当前主机的用户登录情况

使用 w 命令可以查询当前主机中的用户登录情况,列出登录账号名称、所在终端、登录时间、来源地点等信息

六、管理目录和文件的属性

在 Linux 文件系统的安全模型中,系统中的文件(或目录)具有两个属性:访问权限和文件所有者,简称权限和归属。其中,访问权限包括读取、写入、可执行三种基本类型,归 属包括属主(拥有该文件的用户账号)、属组(拥有该文件的组账号)。Linux 操作系统根据文件或目录的访问权限、归属来对用户访问数据的过程进行控制。

1、目录和文件的属性

系统默认创建目录和文件的属性为“drwxr-xr-x”和“-rw-r–r--”。权限字段由四部分组成, 各自的含义如下所述。

  • 第 1 个字符:表示该文件的类型,可以是 d(目录)、b(块设备文件)、c(字符设备文件)、“-”(普通文件)、字母“l”(链接文件)等。
  • 第 2~4 个字符:表示该文件的属主用户(User)对该文件的访问权限。
  • 第 5~7 个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。
  • 第 8~10 个字符:表示其他任何用户(Other)对该文件的访问权限。
  • 第 11 个字符:这里的“.”与 SELinux 有关,目前不必关注。

2、权限字符在文件和目录中的含义

权限 文件 目录
r 查看文件内容 查看目录内容(显示子目录、文件列表)
w 修改文件内容 修改目录内容(在目录中新建、移动、删除文件或子目录)
x 执行该文件(程序或脚本) 执行 cd 命令进入或退出该目录

3、设置目录和文件的权限

需要设置文件或者目录的权限时,主要通过 chmod 命令进行。在设置针对每一类用户的访问权限时,可以采用两种形式的权限表示方法:字符形式和数字形式。r、w、x 权限字符可分别表示为八进制数字 4、2、1,表示一个权限组合时需要将数字进行累加。
命令使用基本格式
chmod [ugoa][+ - =][rwx] 文件或目录… 或者
chmod nnn 文件或目录…

  • “ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户(u、g、o 的总和)。
  • “±=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=”
    代表仅设置对应的权限。
  • “rwx”是权限的字符组合形式,也可以拆分使用,如“r”“rx”等。
  • 在实际的目录权限管理工作中,有时会需要将某一个目录中的所有子目录及文件的权限都设置为相同的值,这时只要结合 chmod 命令的“-R”选项即可轻松实现。若不指定“-R”选项, chmod 命令将只改变所指定目录本身的权限。

4、设置目录和文件的归属

需要设置文件或者目录的归属时,主要通过 chown 命令进行。可以只设置属主或属组, 也可以同时设置属主、属组。
命令使用基本格式
chown 属主[:[属组]] 文件或目录…

  • 同时设置属主、属组时,用户名和组名之间用“:”进行分隔。若只设置属组,则需使用“: 组名”的形式。
  • 如果只需要设置目录或文件的属主,直接以用户名表示归属即可,递归修改目录归属同样可以使用“-R”选项。

5、设置目录和文件的默认权限

umask 就是默认指定目前用户在新建文件或目录时的权限默认值。系统默认的umask=022。正是因为umask值得存在才让我们在创建目录或者文件时,目录和文件的得权限变成了755和644。真实系统在创建目录和文件时,目录和我文件得权限为777和666。由于umask=022,目录和和文件得属组用户和其他用户的写权限就被去除了。这样增加了系统的安全性。
命令使用基本格式
umask nnn

  • 文件n的值为(0 ~ 6),目录n的值为(0 ~ 7)

猜你喜欢

转载自blog.csdn.net/wulimingde/article/details/109273686
今日推荐