linux 账号与权限管理

目录

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

1.1 用户账号

1.1.1 su 命令 

 1.2 组账号

1.3 UID和GID

二、用户账号管理和组账号管理

2.1 用户账号管理

2.1.1 用户账号文件

 2.1.2 用户密码文件

2.1.3 uesradd命令---添加用户账号 

2.1.4 usermod命令---修改用户账号属性

 2.1.5 passwd命令---修改用户密码

 2.1.6 userdel命令----删除用户账号

2.2 组账号管理

2.2.1 组账号文件

 2.2.2 groupadd命令 ----添加组账号

 2.2.3 gpasswd命令---添加删除组成员

 2.2.4 groupdel 命令---删除组账号

 三、文件和目录得权限和归属

3.1 文件/目录基本权限

3.2 chmod命令 ---修改文件或目录的权限

3.3 chown命令----设置目录和文件的归属

 3.4 默认权限


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

1.1 用户账号

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

1.1.1 su 命令 

su :

su 用户                #切换到指定用户

su root                 #只是切换了root的身份,但是shell环境、环境变量、工作目录等还是普通用户的shell。

su - root                #完全切换至root用户,shell、环境变量、工作目录等都是root用户的

1.2 组账号

  • 基本组(私有组):基本组账号只有一个,一般为创建用户是指定的组
  • 附加组(公共组):用户除了基本组之外,额外添加指定的组,可有可无,可以有多个。

1.3 UID和GID

在Linux系统中,UID(User ID,用户ID)和GID(Group ID,组ID)是用于唯一标识用户和用户组的数字标识符。这些标识符在文件系统中用来确定文件的拥有者和所属组,以及控制对文件的访问权限。

UID: UID是分配给每个用户账户的唯一数字标识符。Linux系统通过UID来识别和管理用户。

UID的取值范围:

管理员root: 0

程序用户:1-999        对守护进程获取资源进行权限分配

普通用户:1000+        给用户进行交互式登录使用

GID: GID是分配给每个用户组的唯一数字标识符。与UID类似,GID也用于控制对文件和目录的访问权限。用户可以是多个组的成员,但每个用户都有一个主组(primary group),该组在创建用户时指定,并且用户的默认GID就是其主组的GID。

二、用户账号管理和组账号管理

2.1 用户账号管理

2.1.1 用户账号文件

用户账号文件存储位置:/etc/passwd

cat /etc/passwd :

[root@linianhui ~]# cat /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
sync:x:5:0:sync:/sbin:/bin/sync

 以root账号为例:

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为进制用户登录系统)

常用的shell环境:/bin/bash        /bin/sh        /sbin/nologin        /sbin/sync

2.1.2 用户密码文件

用户密码玩家存储位置:/etc/shadow

cat /etc/shadow:

[root@linianhui ~]# cat /etc/shadow
root:$6$QUuidnJCkVD1OApX$FmbWIMAwXMn0eOHUjyQg8ijW9Z8CVN1Dh.bSCKYZ8UvCHT8ftrN6NlcPMTlyReqZC7iJyR7ZpTAKPBxLZXxeT1::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::

还是以root账号为例:

默认只有 root 用户能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容。

root:$6$QUuidnJCkVD1OApX$FmbWIMAwXMn0eOHUjyQg8ijW9Z8CVN1Dh.bSCKYZ8UvCHT8ftrN6NlcPMTlyReqZC7iJyR7ZpTAKPBxLZXxeT1::0:99999:7:::

“ :”冒号间隔表示一个字段

字段1:  用户帐号的名称

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

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

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

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

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

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

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

字段9:  保留字段(未使用)

2.1.3 uesradd命令---添加用户账号 

常用选项:

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

示列:

useradd -u 1002 -d /opt/test -g dn -G ky30 -s /bin/bash test

###创建一个名为test的用户,UID是1002 宿主目录是/opt/test,基本组是dn,附加组是ky30

登录的shell环境为 /bin/bash

用户创建完成后可以用  id + 用户名  来查看这个用户的信息

例:

[root@linianhui ~]# id zhangsan
uid=1005(zhangsan) gid=1008(zhangsan) 组=1008(zhangsan)

也可以检测是否有这个用户

例:

[root@linianhui ~]# id lisi
id: lisi: no such user

 查询用户详细信息

finger 

需要先进行安装finger软件包

yum install -y finger

用法

finger [用户名]

示列

[root@linianhui ~]# finger zhangsan                ###查询zhangsan账号详细信息
Login: zhangsan                         Name:
Directory: /home/zhangsan               Shell: /bin/bash
On since 二 8月  6 16:03 (CST) on :0 from :0 (messages off)
On since 二 8月  6 16:04 (CST) on pts/1 from :0
   1 day 5 hours idle
Last login 三 8月  7 20:20 (CST) on pts/0
No mail.
No Plan.

 查询已经登录到主机的用户信息

w、who、users

示列

[root@linianhui ~]# who
root     pts/0        2024-08-07 20:01 (192.168.23.1)
zhangsan :0           2024-08-06 16:03 (:0)
zhangsan pts/1        2024-08-06 16:04 (:0)
roo      :1           2024-08-06 16:05 (:1)

2.1.4 usermod命令---修改用户账号属性

常用选项:

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

示列:

usermod -s

[root@linianhui ~]# cat /etc/passwd            ##查看原本lilei用户shell环境为/bin/bash
lilei:x:1004:1006::/home/lilei:/bin/bash
[root@linianhui ~]# usermod -s /sbin/nologin lilei        ###修改lilei的shell环境为/sbin/nologin
[root@linianhui ~]# cat /etc/passwd                ###查看
lilei:x:1004:1006::/home/lilei:/sbin/nologin                 ###环境变更成功

2.1.5 passwd命令---修改用户密码

root用户可以指定用户名作为参数,对指定账号的密码进行管理普通用户却只能执行单独的“passwd”命令修改自己的密码。

常用选项:

选项说明
-d清空指定用户的密码,仅使用用户名即可登录系统
-l锁定用户账户,锁定的用户账号将无法再登录系统。#图形化界面可以登录,文字界面无法登录
-S查看用户账户状态
-u解锁用户密码

示列:passwd -d

[lilei@linianhui root]$ su zhangsan                ###没清除之前需要密码
密码:
[root@linianhui ~]# passwd -d zhangsan        ###清除zhangsan的密码

清除用户的密码 zhangsan。                               
passwd: 操作成功                                                ###提示清除成功
[root@linianhui ~]# su lilei                                
[lilei@linianhui root]$ su zhangsan                ###切换zhangsan用户验证
[zhangsan@linianhui root]$                                        ###无需输入密码登录

 扩展:免交互修改密码

[root@linianhui ~]# echo 123123 | passwd --stdin zhangsan                #将数字123123写入 zhangsan密码中

更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
 

2.1.6 userdel命令----删除用户账号

userdel [r] 用户名        

添加“r”选项时可以将该用户的宿主目录一并删除

2.2 组账号管理

2.2.1 组账号文件

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

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

[root@linianhui ~]# cat /etc/group                
root:x:0:
bin:x:1:
daemon:x:2:

以root账号为例:

root:x:0:

字段1: 组帐号的名称

字段2: 占位符“x”

字段3: 组账号的GID号

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

 2.2.2 groupadd命令 ----添加组账号

用法:

groupadd [-g GID] 组账号名

示列

groupadd -g 1000 market        ###指定1000为组market的GID

 查询用户所属组

[root@linianhui ~]# groups zhangsan                ###查询用户zhangsan所属组
zhangsan : zhangsan                                         

2.2.3 gpasswd命令---添加删除组成员

用法:

gpasswd [选项]...组账号名

 常用选项:

选项说明
-a向组内添加一个用户
-d从组内删除一个用户成员
-M定义组成员列表,以逗号分隔

示列:gpasswd -M

gpasswd -M yht,hcy,qzz dn     #将用户yht、华晨宇、qzz加入到dn用户组中

2.2.4 groupdel 命令---删除组账号

用法:

groupdel 组账号名

 示列:

groupdel market                     ###删除组账号market

 三、文件和目录得权限和归属

3.1 文件/目录基本权限

  • 读(r/4):对文件而言,具有读取文件内容的权限;对于目录而言,具有浏览该目录信息的权限
  • 写(w/2):对文件而言,具有修改文件内容的权限;对于目录而言,具有删除和移动目录内文件的权限
  • 执行(x/1):对文件而言,具有执行文件的权限;对于目录而言,具有进入目录的权限

 八进制数字表示r:4        w:2         x:1

完整的属主、数组、其他用户权限展示 是 777        

3.2 chmod命令 ---修改文件或目录的权限

用法

chmod [ugoa..][+-=][rwx] 文件或目录

“ugoa” 表示该权限设置所针对的用户类别

常用选项

选项说明
u代表文件属主
g代表文件数组内的用户
o代表其他任何用户
a代表所有用户(缺省时为a)
+-=表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限“=”代表仅设置对应的权限。
R递归修改指定目录下所有子目录及文件的权限

示列

chmod g+x123.sh:将文件的群组(group)权限设置为可执行

chmod g+w 123.sh:将文件的群组权限设置为可写

chmod u-x123.sh:将文件的用户权限设置为不可执行

或者数字表示

chmod 441 123.sh:该文件属主只读属组只读其他用户可执行

chmod -R递归修改

mkdir -p aa/bb/cc                #递归创建目录aa目录下bb目录下cc

chmod -R 777 aa                #给与aa目录下所有子目录所有用户可读可写可执行权限 

3.3 chown命令----设置目录和文件的归属

chown 属主:属组 文件或目录

-R:递归修改目录下所有子目录及文件归属

示列

[root@linianhui mnt]# ll                #查看yewu目录属主和数组
总用量 0
drwxr-xr-x. 2 root root  6 8月   5 20:30 jiaoxue
drwxr-xr-x. 2 root root  6 8月   5 20:30 shichang
drwxrwxrwx. 2 root root 71 8月   6 14:58 yewu
[root@linianhui mnt]# chown zhangsan:zhangsan yewu/               ## 更改目录属主数组
[root@linianhui mnt]# ll                        
总用量 0
drwxr-xr-x. 2 root     root      6 8月   5 20:30 jiaoxue
drwxr-xr-x. 2 root     root      6 8月   5 20:30 shichang
drwxrwxrwx. 2 zhangsan zhangsan 71 8月   6 14:58 yewu                ##再次查看属主属组一变更
[root@linianhui mnt]#

 3.4 默认权限

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

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

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

权限的奇数会往前加1,目录不影响

文件默认权限是:666        目录默认权限是:777

umask查看: umask

umask设置:umask 000

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值