Linux第四章账号和权限管理

一.用户账号和组账号及UID和GID概述

1.1 用户账号

(1)超级用户(root,管理员):root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
(2)普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
(3)程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。(一般不能登录系统)

1.2 组账号

(1)基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。(每个用户有且仅有一个基本组)
(2)附加组(公共组):用户除了基本组以外,额外添加指定的组。(每个用户可以有多个附加组)

1.3 UID和GID

(1)UID(User IDentity,用户标识号):每一个UID都是独立的,无法重复
(2)GID(Group IDentify,组标识号)
root用户账号的UID和GID号为固定值0
内置系统程序用户账号的UID和GID号默认为0-999,CentOS7之前的版本为0-499,自己创建的程序用户仍是1000-60000.
普通户UIDRGID默认为1000-60000,CentOS7之前的版本为500-60000

二.用户账号管理

1.1 用户账户文件

(1)/etc/passwd:保存的是账户的相关信息(用户名称、宿主目录、登录Shell 等基本信息)每一行对应一个用户的账号信息,不同的配置项之前使用“:”进行分隔。如下面为例:

lisi:x:1001:1001::/home/lisi:/bin/bash
zhangsan:x:1002:1002::/home/zhangsan:/bin/bash

基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符"x"

zhangsan:x:1002:1002::/home/zhangsan:/bin/bash
字段1:用户帐号的名称(登录名)
    字段2:用户密码占位符"x"
  字段3:用户帐号的UID号
             字段4:所属基本组帐号的GID号
字段5:用户全名,该用户的描述信息
字段6:宿主目录,家目录
字段7:登录Shell 信息( /bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)Linux内核为用户分配的可用的shell环境,bash即为shell解释器
bash(解释命令),nologin(不允许用户的一切指令)

(2)/etc/shadow:shadow又被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制。默认只有root用户能够读取shadow文件中的内容,且不应许直接编辑该文件中的内容。每一个对应一个文件的密码信息。可根据以下两个命令查看文件的头部几行和尾部几行的信息。
 tail -1 /etc/shadow
head -2 /etc/shadow

zhangsan:!!:19869:0:99999:7:::
字段1:用户帐号的名称
字段2:使用哈希算法加密的密码字串信息,当为"*"或"! "时表示此用户不能登录到系统,代表未激活。若该字段内容为空,则该用户无须密码即可登录系统,sha算法秘钥长度为512。
字段3:上次修改密码的时间,表示从1970年01月01日(unix系统的诞生日,法定的发布时间)算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数, 自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段5:密码的最长有效天数, 自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算) ,默认值为空,表示账号永久可用。
字段9:保留字段(未使用)

1.2 添加丶修改丶删除用户账号                                                                                        

(1)useradd命令——添加用户账号
useradd命令用户添加用户账号,其基本的命令格式: useradd+选项+用户名
        最简单的用法是,不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户账号。在CentOS系统中,使用useradd命令添加用户账时主要完成以下几项任务。
        1.在 /etc/passwd文件和 /etc/shadow文件的末尾增加该用户账号的记录。
        2.若未明确指定用户的宿主目录,则在 /home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
        3.若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到 /etc/group和 /etc/gshadow文件中。

格式:useradd [选项] 用户名
常用选项:
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录 Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。

(2)passwd命令——为用户账号设置密码
      1.root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。
      2.普通用户却只能执行单独的"passwd"命令修改自己的密码。

命令格式:
passwd+ [选项] +用户名
常用选项:
-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户,锁定的用户账号将无法再登录系统。
-S:查看用户账户的状态(是否被锁定)。
-u:解锁用户账户。(-u解锁时,如果没有密码会提示,需要使用-f强制解锁)

(3)usermod命令——修改用户账号属性
        对于操作系统中已经存在的用户账号,可以使用usermod命令重新设置各种属性。usermod命令同样需要指定账号名称作为参数。usermod命令中较常使用的几个选项如下所述。

命令格式:usermod +[选项] +用户名
常用选项:
-u:修改用户的 UID 号。
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:修改用户的基本组名(或使用 GID 号)。
-G:修改用户的附加组名(或使用 GID 号)。
-s:指定用户的登录 Shell。
-l:更改用户账号的登录名称。
-L:锁定用户账户。
-U:解锁用户账户。
(4)userdel——删除用户账号
命令格式:userdel+用户
可删除用户信息和组信息,但无法删除创建的宿主目录
命令格式:userdel + [-r]  +用户名
添加“-r”选项时可以将该用户的宿主目录一并删除
(5)chage——修改用户相关属性
命令格式:chage+{-d}+0  可以使指定的用户密码失效

1.3用户账号的初始文件配置

       添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模版目录/erc/skel/,基本都是隐藏文件,较常用的初始配置文件包括以下几种:

~/.bash_profile:此文件中的命令将在该用户每次登录时被执行。
~/.bashrc:此文件中的命令会在每次打开新的bash shell时(也包括登录系统)时被执行。
~/.bash_logout:此文件中的命令将在用户每次退出登录时执行。

三.组账号管理

1.1 组账号文件

(1)/etc/group:保存组帐号基本信息

zhangsan:x:1002:
字段1:组帐号的名称
字段2:组密码占位符"x"
字段3:组账号的GID
字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号) ,多个成员之间以逗号","分隔

(2)/etc/gshadow:保存组帐号的密码信息

zhangsan:!::
字段1:组帐号的名称
字段2:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
字段3:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
字段4:组成员,如果有多个成员,用,号分割;

1.2添加丶管理丶删除组账号

(1)groupadd命令——添加组账号
命令格式:groupadd+组名
创建一个组账号
命令格式:groupadd+{-g}+GID号+组名
创建一个指定GID号的组账号
(2)gpasswd命令——添加丶设置丶删除组成员
添加命令格式:gpasswd+{-a}+用户名+组名
将指定的用户添加至指定的组,只支持添加附加组
删除命令格式:gpasswd+{-d}+用户名+组名
将指定的用户从指定的组中删除
命令格式:gpasswd+{-M}+用户名,用户名,用户名+组名
-M:指定账户的所有成员,以“,”相隔,将指定的所以用户添加到指定的组
(3)groupdel命令——删除组账号
命令格式:groupdel+组名

四.查询账号信息

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

命令格式:groups+用户名
查询指定用户所添加的组的组名

1.2 id命令——查询用户账号的身份标识

命令格式:id+用户名
可查询指定用户的UID号,以及基本组,附加组的GID号

1.3 finger命令——查询用户的登录属性

注:需要先进行安装finger软件包
安装命令格式:yum+{-y}+install+finger
安装finger
命令格式:finger+用户名
查询指定用户的相关信息

1.4 users命令——查询当前登录系统的用户

直接输入users命令,即可查询当前登录系统的用户,如下:
[root@localhost ~]# users
root

1.5 w丶who命令——查询当前主机的用户登录情况

直接输入w命令,可查询当前主机的用户登录情况,如下:

[root@localhost ~]# w
 23:11:21 up  6:37,  1 user,  load average: 0.06, 0.04, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.10.1     15:45    1.00s  0.18s  0.01s w

直接输入who命令,可查询当前主机的用户的简要登录情况,如下:

[root@localhost ~]# who
root     pts/0        2024-05-26 15:45 (192.168.10.1)

五.管理目录和文件的属性

1.1查看文件和目录的属性

-rw-r--r--. 1 root root      0 5月  23 09:06 aaa
-rw-------. 1 root root   1605 4月  11 23:09 anaconda-ks.cfg
drwxr-xr-x. 9 lisi lisi    186 5月  24 17:51 nginx-1.12.0
 

第1个字符:表示该文件的类型,可以是d(目录)丶b(块设备文件,存储设备)丶c(字符文件)丶“-”(普通文件)丶l(连接文件)等。

第2-4个字符:表示该文件的属主用户(user)对该文件的访问权限。

第5-7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。

第8-10个字符:表示其他任何用户(Other)对该文件的访问权限。

第11个字符:这里的“.”与SELinux有关,目前不必关注。
 

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

1.2设置目录和文件的权限

  • 读取r:允许查看文件内容、显示目录列表
  • 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  • 可执行x:允许运行程序、切换目录
    ■归属
  • 属主:拥有该文件或目录的用户帐号
  • 属组:拥有该文件或目录的组帐号
    在进行设置文件的权限时,经常会用十进制的数制表示。
    权限项执行
    字符表示rwx

    -

    数字表示(十进制)4210
    权限项执行执行执行
    字符表示rwxrwxrwx
    数字表示421421421
    权限分配属主属组其他
    rwxrwxrwx
    421421421
    777
    rw-r--r--
    420400400
    644

    chomd命令——设置文件或目录的权限
    命令格式:chomd+{uago..}{+-=}{rwz}+文件或目录
                      chomd+nnn+文件或目录
    “n”代表10进制数字权限

    语法1:chmod   [ugoa]  [+-=]  [rwx]  文件或目录...(+、-、= 分别表示增加、去除、设置权限)
    (u、g、o、a 分别表示属主、属组、其他用户、所有用户)
    (r,w,x权限字符可分别表示为10进制字符4,2,1,表示一个权限组合时需要将数字进行累加;如rwx=7,rw-r---r--=644)目录的默认权限是755,文件的默认权限为644
    语法2:chmod  nnn  文件或目录...(3位10进制数)
    常用命令选项:-R:递归修改指定目录下所有子项的权限
    命令格式:chomd+{-R}+nnn+目录名
    修改目录权限以及目录下所有文件的权限

1.3 chown命令——设置目录和文件的归属

命令格式:chown+属主:属组+文件名
修改指定文件的属主和属组
命令格式:chown+属主:空白+文件名
只修改文件的属主
命令格式;chown+空白:属组+文件名
只修改文件的属组

1.4 umask命令——设置目录和文件的默认权限

umask的作用:指定目前用户在新建文件或目录时的权限默认值
1.umask设置命令格式:umask + 022
设置当前系统的默认权限
2.umask查看命令:umask
查看当前系统的默认权限
如果执行“umask 022”代表group和other被拿掉了权限“2”,也就是被拿掉了“写”的权限。
如果执行命令“umask 000”,代表文件的默认权限为“777”.
目录:umask:044    目录权限为733    算法为777(目录默认权限总值)-044=733
文件:umask:   044    文件权限为622    算法为666(文件默认权限总值)-044=622

本章到此完结


 



 


 


 

                                 


 


 



 


 


 


         

                                                                                         
 

 

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值