六、用户组和权限管理

这篇具有很好参考价值的文章主要介绍了六、用户组和权限管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、系统用户管理

用户的分类(用户的ID):

UID:用户的身份标识符,每个用户都会被分配一个独特的ID

  • 系统用户(服务用户):0 ~ 999 之间

  • 普通用户:1000 ~ 6000之间

  • 用户名和UID信息通常存储在/etc/passwd文件中

  • 用户的存在是为了能更好的控制系统权限

 1 root:x:0:0:root:/root:/bin/bash
 2 root:用户名
 3 x:密码占位符 # 表示用户登录时是否需要验证密码
 4 0:用户UID #身份标识符
 5 0:用户GID #用户私有组
 6 root:用户描述信息 #描述这个用户是干什么的(防止用户名被泄露)
 7 /root:用户家目录 #用户登录之后在那个目录下
 8 /bin/bash:登录shell信息 #用户登录系统之后运行的第一个程序
 9                     /bin/bash 运行bash shell 表示可以登录系统
10                     /sbin/nologin  禁止登录shell 表示不能登录系统
2、系统用户组管理

用户组:在创建用户时,如果没有指定用户的组,则自动创建一个以用户名命名的组并将这个用户加入到该组

  • 私有组(属组):在用户创建时,一并指定的则,称之为私有组

  • 公共组(附加组):每个用户都可以有多个公共组,但是只能有一个私有组

  • 用户组和ID的映射关系保存在 /etc/group 文件中

  • 同一个组中的所有用户能共享属于这个组的文件

 1 [root@example ~]# id user
 2 uid=1000(user) gid=1000(user) groups=1000(user)
 3 
 4 itgroup: zhangsan、lisi、wangwu
 5 sagroup: alice、bob、mike、zhangsan
 6     #zhangsan:itgroup(私有组),sagroup(公共组)
 7 
 8 root:x:0:zhangsan
 9 root:#表示组名
10 x:#组的密码占位符
11 0:#组的ID
12 zhangsan:#表示组内用户,在root组内有zhangsan这个用户,多个用户用逗号隔开;如果改组是某个用户的私有组,则该用户不会出现在该组中
3、useradd创建
  • -u:用户号,指定用户的用户号,如果同时有 -o 选项,则可以重复使用其它用户的标识号

  • -g:用户组,指定用户所属的用户组

  • -c:comment指定一段注释性描述

  • -d:目录,指定用户主目录,如果此目录不存在,则同时使用 -m选项,可以创建主目录

  • -G:用户组,用户组指定用户所属的附加组

  • -s:shell文件,指定用户的登录shell

 1 root@example ~]# useradd -u 3000 ituser
 2 [root@example ~]# id ituser 
 3 uid=3000(ituser) gid=3000(ituser) groups=3000(ituser)
 4 
 5 [root@example ~]# useradd -g zhangsan ituser1
 6 [root@example ~]# id ituser1
 7 uid=3001(ituser1) gid=1001(zhangsan) groups=1001(zhangsan)
 8 
 9 [root@example ~]# useradd -c "rhce user" ituser2
10 ituser2:x:3002:3002:rhce user:/home/ituser2:/bin/bash$
11 
12 [root@example ~]# useradd -d /ituser3 ituser3
13 ituser3:x:3003:3003::/ituser3:/bin/bash
14 
15 [root@example ~]# useradd -s /sbin/nologin ituser4
16 ituser4:x:3004:3004::/home/ituser4:/sbin/nologin
17 
18 [root@example ~]# su -s /bin/bash ituser4
19 [ituser4@example root]$ cd
20 [ituser4@example ~]$ pwd
21 /home/ituser4

用户的UID可以重复,一个UID可以对应多个用户名,但是UID是唯一的存在;

Linux中并不以用户名来决定用户的权限,而是依靠UID来决定用户对文件的权限;

系统会进行ID保留机制,部分UID已经提前分配给了应用程序,比如:38分配给了KVM,所以将保留的UID分配出去,就会导致新创建的用户继承到这个权限;每次创建用户都会将 /etc/passwd 中最大的UID加 1 分配给新的用户;

4、usermod修改

usermod modify 修改

  • -g:指定私有组

  • -u:指定UID

  • -G:指定附加组

  • -c:描述信息

  • -d:家目录(-m:移动家目录,与 -d 一起使用)

  • -s:登录shell

1 [root@example ~]# usermod -u 1003 ituser1
2 [root@example ~]# usermod -g 1000 ituser1
3 [root@example ~]# usermod -G user ituser1
4 [root@example ~]# usermod -c "test user" ituser1
5 [root@example ~]# usermod -d /demo/user1 ituser1
5、其它相关命令
  • userdel 用户名:删除一个用户,仅仅只是从系统中将用户删除

  • userdel -r 用户名:干净删除用户,除了将用户本身删除外,还会连同用户的文件(用户邮箱和用户家目录)一并删除

1 # 解决办法
2 [root@example ~]# rm -rf /var/spool/用户名
3 
4 [root@example ~]# rm -rf /home/用户名
  • groupadd:创建新的组

    • -g:指定gid

    • gpasswd:设置组密码

    • newgrp:登录到指定组,并且登录之后该组将成为用户的私有组(临时授权

  • groupmod:修改组的信息

    • -n:指定新的组名

  • groupmems:管理组内成员

    • -g:指定组

    • -a:添加用户

    • -d:删除用户

    • -l:列出组内用户

    • -p:清空用户

1 [root@example ~]# groupmems -a ituser -g itgroup
2 [root@example ~]# groupmems -l -g itgroup 
3 ituser 
4 [root@example ~]# groupmems -d ituser -g itgroup
6、用户的密码信息

/etc/shadow:保存用户的密码信息(加密)

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

 1 root:$6$HSqKs:19678:0:99999:7:::
 2 第一列: #用户名
 3 第二列:#用户密码(密文) 
 4     PS:!!表示该用户没有设置密码
 5         * 表示用户从来没有设置密码
 6         默认是hash512算法
 7 第三列:上一次修改密码的时间
 8 第四列:密码最短有效期
 9 第五列:密码最长有效期
10 第六列:警告天数
11 第七列:密码锁定天数
12 第八列:密码过期时间(删除密码时间),是一个日期
13 第九列:保留字段
14 
15 #加密类型(算法)安全套件:openssl
16 [root@example ~]# openssl passwd -5 redhat
17 $5$HY9wotlwulgPch2g$IbRLwroQqoZ0q45zLqybs7hdR3IHdg2F7/ItLeOvWeA
18 [root@example ~]# openssl passwd -6 redhat
19 $6$qQzsl2yVJjkxD421$XRmbyb/3lSD6611xPVmgQuDKN5tHNGW7SBuVEwxbw6jXLJlIODFJpwIimswycqF72iXC9PiEJduV1BfAs8mS//
20 [root@example ~]# openssl passwd -1 redhat
21 $1$cNtRJaY6$t4AQopvQ3M0NFr5w4Lp1t/
22 
23 [root@example ~]# chage user
24 Changing the aging information for user
25 Enter the new value, or press ENTER for the default
26     Minimum Password Age [0]: 5 #密码最短有效期
27     Maximum Password Age [99999]: 77777 #密码最长有效期
28     Last Password Change (YYYY-MM-DD) [2023-11-25]: #上一次修改密码时间
29     Password Expiration Warning [7]: 5 # 警告天数
30     Password Inactive [-1]: 5 #锁定天数
31     Account Expiration Date (YYYY-MM-DD) [-1]: 55555 #失效时间
32     
33 #修改密码默认规则
34 [root@example ~]# vim /etc/login.defs 
7、Linux文件安全
  1. 文件UID和GID

  • 每一个文件都有一个uid和gid

  • 用户在运行程序的时候,程序会继承用户的UID和GID

  • 决定于哪个用户可以访问相应的文件

  • 当程序在访问文件时,会得到三类访问权限

    • 程序的UID和文件的UID一致,则是以文件拥有人的身份访问文件

    • 程序的GID和文件的GID一致,则是以文件拥有组的身份访问文件

    • 程序的UID、GID和文件的UID、GID均不一致,则是以文件其他人身份访问文件

  1. 文件权限优先级

  • 如果UID一致,UID匹配文件成功;文件拥有人的身份访问文件(user)

  • 如果UID不一致,GID一致,GID匹配文件成功;文件拥有组的身份访问文件(group)

  • 如果UID、GID均不一致,则匹配文件的其他人身份;文件其他人的身份访问文件(other)

 1 -rw-r--r--.   1 root root    0 Nov 26 21:48 test.txt
 2 -:表示文件类型(-:普通文件;d:目录;l:软链接(字符文件);b:块设备)
 3 rw-:表示拥有人的权限
 4 r--:表示拥有组的权限
 5 r--:表示其他人的权限
 6 .:表示文件受到seLinux的保护(安全机制)
 7 1:表示文件的硬链接数(硬链接数决定了在系统中文件有几份)
 8 第一个root:文件的UID(文件的拥有人;文件的所有者)
 9 第二个root:文件的GID(文件的拥有组)
10 0:文件的大小
11 Nov 26 21:48:文件最后一次修改的时间
12 test.txt:文件名
  1. Linux文件系统权限

  • 查看文件和目录的权限

    • ls -l 文件名

    • ls -ld 目录名

    • chmod u/g/o +/-/= 文件名:修改权限(u+g+o=all)

    • chomd -R :递归赋权

 1 -rw-r--r--. 1 root zhangsan  0 Nov 26 21:44 zhangsan.txt
 2 
 3 权限分配         文件所属人      文件所属组用户     其它用户
 4 字符表示         r  w  x         r  w  x        r  w  x 
 5 权限项         读  写  执行     读  写  执行     读  写  执行
 6 数字表示         4  2  1         4  2  1        4  2  1
 7 -:表示对应栏位没有权限
 8 r:表示可以读取文件内容
 9 w:表示可以修改文件内容
10 x:表示文件可以被执行
11 
12 #文件的拥有人可以强制对文件进行保存
13 #如果是对文件进行操作只需要看文件所在目录的权限;如果是对文件的内容进行操作,要看文件本身的权限
14 
15 #十进制
16 1表示该栏位有权限        r w x
17 0表示该栏位没有权限      1 0 0   4
18                       0 1 0   2
19                       0 0 1   1
20 
21 [root@example tmp]# chmod 751 zhangsan.txt 
22 [root@example tmp]# ls -l zhangsan.txt 
23 -rwxr-x--x. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt
24 [root@example tmp]# chmod u+r zhangsan.txt 
25 [root@example tmp]# ls -l zhangsan.txt 
26 -r--------. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt
27 [root@example tmp]# chmod u+w zhangsan.txt 
28 [root@example tmp]# ls -l zhangsan.txt 
29 -rw-------. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt
30 [root@example tmp]# chmod u+w,g+rw,o+r zhangsan.txt 
31 [root@example tmp]# ls -l zhangsan.txt 
32 -rw-rw-r--. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt
33 root@example tmp]# chmod +x zhangsan.txt 
34 [root@example tmp]# ls -l zhangsan.txt 
35 -rwxrwxr-x. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt
8、设置文件属主和属组
  • chown :用于设置文件的属主和属组(只能root用户可以使用)

  • chgrp:只能设置文件的属组

    普通用户可以赋权吗?

  • 普通用户只能修改拥有人自己文件的权限,不能修改其它人文件的权限;普通用户不能修改文件的拥有人/组

 1 [root@example tmp]# chown zhangsan zhangsan/
 2 [root@example tmp]# ls -l
 3 total 0
 4 drwxr-xr-x. 2 zhangsan root 6 Nov 28 21:56 zhangsan
 5 [root@example tmp]# chown root:zhangsan zhangsan/
 6 [root@example tmp]# ls -l
 7 total 0
 8 drwxr-xr-x. 2 root zhangsan 6 Nov 28 21:56 zhangsan
 9 [root@example tmp]# chown :ituser zhangsan/
10 [root@example tmp]# ls -l
11 total 0
12 drwxr-xr-x. 2 root ituser 6 Nov 28 21:56 zhangsan
13 [root@example tmp]# chgrp zhangsan zhangsan/
14 [root@example tmp]# ls -l
15 total 0
16 drwxr-xr-x. 2 root zhangsan 6 Nov 28 21:56 zhangsan

 文章来源地址https://www.toymoban.com/news/detail-747501.html

到了这里,关于六、用户组和权限管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java,设计,功能权限和数据权限,用户、角色、权限和用户组

    ACL(Access Control List),访问控制列表 ACL是一种访问控制机制,包含三个关键要素:用户(User)、资源(Resource)和操作(Operate),当用户请求操作资源时,检查资源的权限列表,如果资源的权限列表中存在该用户的操作权限则允许,否则拒绝。 BAC(Role-Based Access Control),

    2024年02月01日
    浏览(31)
  • 用户权限数据转换为用户组列表(2/3) - Power Query

    实例需求:如下是AD用户的列表,每个用户拥有该应用程序的只读或读写权限,现在需要创建新的AD用户组,并根据用户当前的权限,将这些用户添加到相应的组中。 当前数据集: Safe UserName Read permissions RW permissions Safe1 User1 Yes Yes Safe1 User2 Yes No Safe1 User3 Yes Yes Safe1 User4 Yes No Safe2

    2024年02月09日
    浏览(36)
  • 【Shell 命令集合 系统管理 】Linux 创建一个新的用户组 groupadd 命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 groupadd命令用于在Linux系统中创建一个新的用户组。它可以创建一个本地用户组,也可以创建一个系统用户组。 创建一个用户组可以帮助管理员更好地管理用户和文件的权限。用户组可以将一组用户组织在一起,并为他们提供共享的权限设

    2024年02月03日
    浏览(70)
  • 文件、用户、用户组管理

    0.linux的目录结构 1.用户和用户组的信息存储 1.1. 用户的基本信息文件 /etc/passwd 1.1.1. 用户名 1.1.2. 密码 1.1.3. UID 1.1.4. GID 1.1.5. 注释性描述 1.1.6. 宿主目录 1.1.7. 默认shell 1.2. 用户的密码信息文件 /etc/shadow 1.2.1. 用户名 1.2.2. 加密密码 1.2.3. 最后一次修改时间 1.2.4. 最小修改时间间隔

    2023年04月18日
    浏览(41)
  • 用户/用户组管理

    用户管理 * useradd 命令添加用户,会在 /etc/passwd生成 用户信息,信息分为7列,被6个冒号隔开 用户增删改查 rhce 考题:   用户组管理 *  用户组分为 primary group(主要组),private group(私有组),attached group(附加组),由于任何用户都必须依赖于用户组才能存在,所以创建

    2024年02月05日
    浏览(48)
  • Linux 用户组的管理-增加一个新的用户组

    在 Linux 系统中,用户组是一种用于管理和分配系统资源权限的方式。本文将介绍如何在 Linux 系统中增加一个新的用户组,包括语法、实操和各种增加新用户组之间的区别。 使用 groupadd 命令可以在 Linux 系统中增加一个新的用户组,其基本语法为: 可以使用的选项有: -g GI

    2024年02月08日
    浏览(50)
  • ubuntu用户与用户组管理

    在Ubuntu中,创建新用户并赋予其类似root的管理权限通常不是直接赋予其root用户身份,而是将其添加到 sudo 组中。这是因为Ubuntu默认禁用root账户直接登录,并鼓励通过sudo来进行管理任务。以下是创建新用户并赋予sudo权限的步骤: 打开终端(快捷键:Ctrl + Alt + T)。 以管理员

    2024年04月26日
    浏览(42)
  • Linux 用户和用户组管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮

    2024年02月13日
    浏览(43)
  • 【Windows基础】Windows用户和用户组的管理

    不同的用户身份拥有不同的权限 每个用户包含了一个名称和一个密码 每一个用户登录系统后,拥有不同的操作权限。为不同的账户赋权限,也就是为不用账户的SID赋权限! 每个用户都有自己的配置文件(家目录),在用户第一次登录时自动产生,路径是: 每个用户账户具有唯

    2024年02月08日
    浏览(75)
  • 6-Linux操作系统 用户与用户组

    一、介绍说明   Linux系统是一个 多用户 多任务 的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。   用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问

    2024年02月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包