0
点赞
收藏
分享

微信扫一扫

linux账号与权限管理

诗尚凝寒 2022-03-31 阅读 56

文章目录
 一、管理用户账号

1.1用户账号概述,用户账号的分类,用户标识UID (User IDentity ,用户标识号),用户账号文件
 1.2用户账号管理, 添加用户账号 —useradd,用户账号的初始配置1.2.3设置/更改用户口令—passwd命令,修改用户账号属性—usermod命令,删除用户账号—userdel命令**

  二、管理组账号
  

2.1组账号概述,组账号的分类,组标识GID( Group IDentifi,组标识号 ),组账号文件
组账号管理**,添加组账号—groupadd**命令,添加、设置、删除组成员—groupwd命令,删除组账号—groupdel
 2.2查询账号信息,查询用户账号所属组—groups命令,查询用户账号身份标识—id命令,查询用户账号的登录属性—finger命令,查询当前主机的用户登录情况—w命令、who命令、显示 当前登录系统的所有用户的用户列表 — users

  三.文件/目录的权限及归属

3.1 查看文件/目录的权限和归属

3.2 设置文件/目录的权限和归属,设置文件/目录权限 — chmod,设置文件/目录归属 — chown/chgrp
 3.3unmask应用,设置文件/目录归属 — chown/chgrp

 

一、管理用户账号

1.1用户账号概述,用户账号的分类,用户标识UID (User IDentity ,用户标识号),用户账号文件

超级用户: root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的。

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

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

root用户账号的UID固定值0

程序用户账号的UID默认为Centos5,6: 1~499,Centos7: 1~ 999

普通用户的UID默认为Centos5, 6: 500~ 65535,Centos7: 1000~ 65535

用户账号文件

作用:保存用户名称、宿主自录、登录Sell等基本信息,每一行对应一个用户的帐号记录

文件位置:

/etc/passwd :保存用户名称、宿主自录、登录Sell等基本信息

/etc/shadow:保存用户的账号、密码等有效信息

/etc/passwd

每一行对应一个用户的帐号记录

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


某条记录格式:root:x:0:0:root:/root:/bin/bash

字段1:用户帐号的名称

字段2:用户密码占位符“x”

字段3:用户帐号的UID号

字段4:所属基本组帐号的GID号

字段5:用户全名

字段6:宿主目录

字段7:登录Shell信息( /bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁 用户登陆系统)

/etc/shadow

每一行对应一个用户的密码记录。 默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。

某条格式:

root:$6$LOm1iAJRGPY5SRjO$GbpwoyzdV6Gqf6FX14R6vRosIqm.xHScEcGp80r5w3T19U3k.p6nH7B1YEy2LPYch.8XOF1ga3KcXOrHgKHX30::0:99999:7:::
字段1:用户帐号的名称;

字段2:使用SHA512加密的密码字串信息,当为“*” 或“! !”时表示此用户不能登录到系统。,若该字段内容为空,则该用户无须密码即可登录系统;

字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数;

字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制;

字段5:密码的最长有效天数,自 本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999, 表示不进行限制;

字段6:提前多少天警告用户密码将过期,默认值为7;

字段7:在密码过期之后多少天禁用此用户;

字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用;

字段9:**保留字段(未使用),**没有特定用用途。

普通用户忘记密码怎么办?passwd 用户名
1.2用户账号管理, 添加用户账号 —useradd,用户账号的初始配置1.2.3设置/更改用户口令—passwd命令,修改用户账号属性—usermod命令,删除用户账号—userdel命令**

添加用户账号 —useradd

格式:useradd    [选项]... 用户名

使用useradd添加账户完成以下任务:

在/etc/passwd文件和/etc/ shadow文件的末尾增加该用户账号的记录

若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。

若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group和/etc/gshadow文件中。

示例:

[root@yxp ~]# useradd red  
//添加名为red的用户
[root@yxp ~]# tail -1 /etc/passwd    
red:x:1004:1004::/home/red:/bin/bash    
//显示/etc/passwd 末尾一行,看有没有添加成功
[root@yxp ~]# tail -1 /etc/shadow 
red:!!:18873:0:99999:7:::   
//显示/etc/shadow 末尾一行
[root@yxp home]# ls        
red  susan  test  test1  test2  yxp    
//可以看到red家目录在/home
[root@yxp home]# cd red  
[root@yxp red]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla  
//都是隐藏文件
[root@yxp red]# ls -A
.bash_logout  .bash_profile  .bashrc  .mozilla

[root@localhost ~]# useradd -u 2000 test1 
//添加名为test1,UID号为2000的普通用户
[root@localhost ~]# id test1 
uid=2000(test1) gid=2000(test1) 组=2000(test1)
//可以看到UID变成了2000,GID默认和UID一致


用户账号的初始配置

文件来源

新建用户帐号时,从**/etc/skel**目录中复制而来,比如默认bin/bash,默认家目录

主要的用户初始配置文件**(对用户有效)**

bash_profile : 这个文件是为系统全局变量配置文件,可以通过重启系统或者执行source /etc/profile 命令使profile文件被读取

bashrc: 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本

.bash_logout: 每一个允许bash shell 的用户都会执行此文件,可通过执行bash命令打开一个新的bash shell时,使bashrc文件被读取

1.修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;
2.修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效;

设置/更改用户口令—passwd命令

root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。

普通用户却只能执行单独的“passwd"命令修改自己的密码。

passwd 用户名
例如:
[root@yxp red]# passwd red
更改用户 red 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

修改用户账号属性—usermod命令

格式:usermod [选项]... 用户名

[root@localhost home]# usermod -l yxp1 test1
//修改用户名test1称改为yxp1
[root@localhost home]# id yxp1
uid=2000(yxp1) gid=2000(test1) 组=2000(test1)

[root@localhost home]# usermod -u 11000 yxp1
//修改用户UID号
[root@localhost home]# id yxp1
uid=11000(yxp1) gid=2000(test1) 组=2000(test1)
删除用户账号—userdel命令**

格式: userdel [-r] 用户名  //结合-r可以删除宿主目录

[root@yxp red]# userdel test1
//删除用户,此时家目录里的宿主目录不会被删除,结合-r可以一次性删除
[root@yxp red]# ls -a /home
.  ..  red  susan  test  test1  test2  yxp
[root@yxp red]# rm -rf test1
[root@yxp red]# ls -a /home
.  ..  red  susan  test  test1  test2  yxp
[root@yxp red]# 

二、管理组账号

2.1组账号概述,组账号的分类,组标识GID( Group IDentifi,组标识号 ),组账号文件
组账号管理**,添加组账号—groupadd**命令,添加、设置、删除组成员—groupwd命令,删除组账号—groupdel

组账号的分类

基本组(私有组): 基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4段记录的即为该用户的基本组GID号。

附加组(公共组): 用户除了基本组以外,额外添加指定的组。

组标识GID( Group IDentifi,组标识号 )

root用户账号的GID固定值0

程序用户账号的GID默认为Centos5,6: 1~499,Centos7: 1~ 999

普通用户的GID默认为Centos5, 6: 500~ 65535,Centos7: 1000~ 65535

组账号文件

文件位置:

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

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

格式:
[root@yxp red]# head /etc/group
root:x:0:
bin:x:1:

字段1:组帐号的名称

字段2: 占位符“x”

字段3:组账号的GID号

字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,"

添加组账号—groupadd命令

groudadd [-g GID] 组账号名

[root@yxp ~]# groupadd -g 1800 admin   //添加一个组号1800名称为admin的组
[root@yxp ~]# tail -2 /etc/group  //查看末尾两行组号信息
red:x:1004:
admin:x:1800:   //添加成功    

添加、设置、删除组成员—groupwd命令

==设置组账号密码,但是该功能极少使用,实际上更多的管理用户成员、添加/删除组成员

- 格式: gpasswd [选项]...组账号名 

删除组账号—groupdel

格式:groupdel 组账号名
查询用户账号所属组—groups命令

格式:groups [用户名]
示例:
[root@yxp ~]# groups user1
user1 : user1 mask

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

格式:id [用户名]
示例:[root@yxp ~]# id user2
uid=1007(user2) gid=1007(user2) 组=1007(user2),2000(mask)

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

PS:需要先安装finger安装包
格式:finger    [用户名]
示例:
[root@yxp ~]# finger yxp
Login: yxp                        Name: yxp
Directory: /home/yxp                    Shell: /bin/bash
Last login 五 9月  3 11:12 (CST) on pts/0
No mail.
No Plan.

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

w [选项] 用户名
第一行信息输出内容包含的信息说明如下:

23:16:26 ——当前系统时间.

up 1 day——系统运行时长.

4 users ——登录用户数.

load average: 0.00 0.01, 0.05 ——系统过去1,5,15分钟的平均负载信息。平均系统负载是对当前正在运行或正在等待磁盘I/O的作业数的度量。 它基本上告诉您系统在给定间隔内的繁忙程度。

第二行信息包括如下字段说明:

USER ——登录用户名.

TTY ——登录用户使用的终端名.

FROM ——登录用户来源的主机名或IP地址.

LOGIN@ ——用户登录时长.

IDLE —— 自用户上一次与终端进行交互以来的空闲时间.

JCPU ——附加到tty的所有进程使用的时间.

PCPU ——用户当前进程所用的时间。 显示在“ WHAT”字段中的那个.

WHAT —— 用户当前的进程及选项/参数。

  三.文件/目录的权限及归属

3.1 查看文件/目录的权限和归属

​ 在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性:访问权限和文件所有者,简称**“权限”和“归属”**。其中访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用于账号)、属组(拥有该文件的组账号)。Linux系统根据文件和目录的访问权限、归属来对用户访问数据的过程进行控制。
3.2 设置文件/目录的权限和归属,设置文件/目录权限 — chmod,设置文件/目录归属 — chown/chgrp

格式:
字符形式:    chmod [ugoa···][+-=][rwx] 文件...
数字形式:    chmod nnn 文件/目录...
在表示属主、属组用户或者其他用户对该文件的访问权限时,主要使用了三种不同的权限字符,权限字符也可以分别表示为八进制数字4、2、1,表示一个权限组合时需要将数字进行累加。 各自含义如下: 
  读取 r :允许查看文件的内容、显示目录列表 写入 w :允许修改文件内容,允许在目录中新建、移动、删除文件或子目录可执行 x :允许运行程序、切换目录。  常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件  字符组合“[ugoa···][+ - =][rwx]”或者数字组合“nnn”的形式表示要设置的权限模式,其中“nnn”为需要设置的具体权限值,如“755”、“644”等,而“[guoa···][+ - =][rwx]”的形式中,三个组成部分的含义及用法如下所述: 
  “ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件组内的用户,“o”代表其他任何用户长度有用户(ugo的总和);“+ - =”表示设置权限的操作动作。“+”号代表增加权限,“-”号代表减少相应权限,“=”号代表仅设置对应的权限;“rwx”是权限的字符组合形式,也可以拆分使用,如“r”、“rx”等。 示例:不指定ago,默认所有都设置

设置文件/目录归属 — chown/chgrp

格式:
chown/chgrp 属主 文件或目录
chown/chgrp :属组 文件或目录
chown/chgrp 属主:属组 文件或目录
 3.3unmask应用,设置文件/目录归属 — chown/chgrp

​ 我们新建一个新的文件或者目录时,它的默认权限时什么呢,这个与umask有关。 
1 .unmask作用: 
设置目录和文件的默认权限;指定目前用户在新建文件或目录时的权限默认值;新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)

格式:
umask查看:    umask
umask设置:    umask 000

设置文件/目录归属 — chown/chgrp

格式:
chown/chgrp 属主 文件或目录
chown/chgrp :属组 文件或目录
chown/chgrp 属主:属组 文件或目录

常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件)

unmask应用

​ 我们新建一个新的文件或者目录时,它的默认权限时什么呢,这个与umask有关。

.unmask作用:

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

指定目前用户在新建文件或目录时的权限默认值;

新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)

格式:
umask查看:    umask
umask设置:    umask 000

举报

相关推荐

0 条评论