Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux用户权限管理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

1基本概念 Linux是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号, 然后以这个账号的身份进入系统。 为了实现资源分派(系统管理员的权利)及出于安全的虑,必须对用户进行不同权限的分配。用户组便于更高效地管理用户权限。 用户操作Linux需要经过三个步骤的权限认证: Authentication:认证 Authorization:授权 Audi
1基本概念

Linux是一个用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号, 然后以这个账号的身份进入系统。
为了实现资源分派(系统管理员的权利)及出于安全的虑,必须对用户进行不同权限的分配。用户便于更高效地管理用户权限。
用户操作Linux需要经过三个步骤的权限认证:
Authentication:认证
Authorization:授权
Audition审计-->权限是否符合条例
操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器,有的系统又叫角色(便于更高效地管理用户权限);在linux系统中,用户组也有一个ID,GID。

1.1 linux操作系统用户

在linux中,用户分为两大类:管理员用户和普通用户,其中普通用户有分为系统用户登录用户
系统用户:为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从来不用登陆系统。
登录用户:就是我们一般使用登录linux的用户

用户标识:user id,UID 
              通常使用16bits二进制数字表示(0-65535) 
              管理员用户标识:0 
              普通用户:1-65535 
              系统用户:1-499(Centos6)、1-999(Centos7) 
              登录用户:500-60000(Centos6)、1000-60000(Centos7)

linux通过名称解析库“/etc/passwd”文件解析用户名用户ID之@L_801_48@对应关系。

`~]# head /etc/passwd | column -ts:` 列按冒号对其查看

        /etc/passwd:用户信息库 
        name:password:UID:GID:GECOS:directory:sHell

                    name: 用户名
                    password:可以是加密的密码,也可是占位符x;
                    UID:
                    GID:用户所属的主组的ID号;
                    GECOS:注释信息
                    directory:用户的家目录;
                    sHell:用户认sHell,登录认sHell程序;

1.2 linux操作系统用户

在Linux中,用户分类方式有三种:
1、管理员组、普通用户组(系统用户组,登录用户组)
2、用户的基本组、用户附加组
3、私有组(组名同用户名,且只包含一个用户;)、公共组(组内包含了多个用户;)
用户组标识:group id,GID
通常使用16bits二进制数字表示(0-65535)
管理员用户组标识:0
普通用户组:1-65535
系统用户组:1-499(Centos6)、1-999(Centos7)
登录用户组:500-60000(Centos6)、1000-60000(Centos7)
linux通过名称解析库“/etc/group”文件解析用户名用户ID之@L_801_48@对应关系。
/etc/group:组的信息库
group_name:passwd:GID:@R_696_9004@list
@R_696_9004@list:该组用户的成员;以此组为附加组的用户用户列表

1.3 linux操作系统密码

用户登录linux系统时,会对比password与之前保存在“/etc/shadow”、“/etc/gshadow”文件中的密码是否一致。
密码的使用策略:
1、使用随机密码;
2、最短长度不要低于8位;
3、应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;
4、定期更换;
生成有效密码的命令:

~]#     </dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-8};echo
~]#     openssl rand -base64 32|tr A-Z a-z|cut -c 1-8
~]#     Strings /dev/urandom | grep -o ‘[[:alnum:]]‘ | head -n 8 | tr -d ‘\n‘; echo
~]#     dd if=/dev/urandom bs=1 count=10 2>/dev/null | base64 -w 0 | rev | cut -b 2-9 | rev

加密算法(军备资源):算法+密码+salt=秘钥(使用秘钥对原文加解密操作):
对称加密:加密和解密使用同一个密码
非对称加密:加密和解密使用的一对密钥
密钥对:公钥(public key)、私钥(private key)
单向加密:只能加密,不能解密;提取数据特征码;
定长输出: 以16进制表示的输出
雪崩效应:密码中某一个字符改变,那么整个加密后的密钥都会改变

linux的密码加密方式使用单向加密算法,并且添加随机数(salt)计算得出的。

[[email protected] ~]#  head -1 /etc/shadow
root:$6$ZNcau0h/$O396hKI/4ZAkVs/YfM82ViyToupcAQ3FMm.iP.7g73BuWoK7VjTnPOtpKA1u/P.8Y/eI.pCgeaBKm8XlPNw5h/:18071:0:99999:7:::

加密密码:使用$分隔,第一个段表示使用的加密算法,第二个段表示添加的salt。第三段表示加密后的密码.

@H_674_89@ @H_383_92@md5:message digest,128bits
系统识别算法ID 算法名称
1
2 sha:secure hash algorithm,160bits
3 sha224
4 sha256
5 sha384
6 sha512
  • /etc/shadow:用户密码 (man 5 shadow)
    用户名:加密的密码:最近一次修改密码的时间(从1970开始的天数):最短使用期限:最长使用期限:警告期段:密码禁用时间(非活动期限):账户过期期限:保留字段

linux用户权限管理

1.4Linux安全上下文:

运行中的程序:进程 (process)
以进程发起者的身份运行:
进程所能够访问的所有资源的权限取决于进程的发起者的身份;

2权限管理

linux的文件管理权限分为读、写和执行

]# ll grub.cfg 
-rw-rw-r--+ 1 root root 4253 Jun 24 11:44 grub.cfg
共分为五个部分: 
        -rwxrwxrwx+:
        -:表示文件类型 
            左三位:定义user(owner)的权限
            中三位:定义group的权限;
            右三位:定义other的权限
            +:是否启用facl
    进程安全上下文:
        进程对文件的访问权限应用模型:
            进程的属主与文件的属主是否相同;如果相同,则应用属主权限;
            否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;
            否则,就只能应用other的权限;

    权限:
        r:readable,读
        w:writable,写
        x:excutable,执行

    权限对文件的作用: 
            r:可获取文件的数据;
            w: 可修改文件的数据;
            x:可将此文件运行为进程;

        权限对目录的作用: 
            r:可使用ls命令获取其下的所有文件列表;
            w: 可修改此目录下的文件列表;即创建或删除文件;
            x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;

        mode:rwxrwxrwx
        ownership:user,group
@H_674_89@
权限组合 二进制数 十进制数
000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7

3、相关命令

3.1用户管理命令

useradd命令{非常重要****}:创建用户

useradd [选项] 登录
-u,--uid UID:指定UID;
-g,--gid GROUP:指定基本组ID或组名,此组得事先存在;
-G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;
-c,--comment COMMENT:指明注释信息;
-d,--home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
-s,--sHell SHelL:指定用户认sHell,可用的所有sHell列表存储在/etc/sHells文件中;
-r,--system:创建系统用户
-m 创建家目录(没什么用)
-M,--no-create-home 不创建家目录
-f, --inactive 密码禁用时间

注意:创建用户时的诸多认设定配置文件为/etc/login.defs 操作系统厂家使用

useradd -D:显示创建用户认配置;
useradd -D 选项: 修改认选项的值;useradd -D -s /bin/tcsh 修改sHell

修改的结果保存于/etc/default/useradd文件中;可用自己使用

usermod命令:修改用户属性

usermod [选项] 登录
-u,--uid UID:修改用户的ID为此处指定的新UID;
-g,--gid GROUP:修改用户所属的基本组;
-G,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;()
-a,--append:与-G一同使用,用于为用户追加新的附加组;(
)
-c,--comment COMMENT:修改注释信息;
-d,--home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
-m,--move-home:
-s,--sHell SHelL:修改用户认sHell;

-L,--lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
        -U,--unlock:解锁用户的密码;

userdel命令:删除用户

userdel [选项] 登录
        -r:删除用户时一并删除其家目录;

id命令:显示用户的真实和有效的UID和GID

id [OPTION]… [USERNAME] 
-u:仅显示有效的UID; 
-g:仅显示用户的基本组的ID; 
-G:仅显示用户所属的所有组的ID; 
-n:显示名字而非ID;一般与g一起使用:-ng

su命令:switch user

登录式切换:会通过重新读取目标用户配置文件来重新初始化 
su - USERNAME 
su -l USERNAME
  非登录式切换:不会读取目标用户配置文件进行初始化 
     su USERNAME
 注意:管理员可无密码切换至其它任何用户;其它用户在切换用户时必须输入密码。
     -c “COMMAND”:仅以指定用户的身份运行此处指定的命令 
 例如:su - USERNAME -c “whoami”

3.2 用户组管理命令

groupadd命令:添加组 
            groupadd [选项] group_name 
                    -g GID:指定GID,认是上一个组的GID+1 
                    -r:创建系统组;

groupmod命令:修改属性 
        groupmod [选项] GROUP 
                -g GID:修改GID 
                -n new_name:修改组名

groupdel 命令:删除组 
        groupdel [选项] GROUP

3.3 用户用户组练习

练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);

groupadd -g 5001 peguin
        groupadd -g 5000 distro
        useradd -u 4001 -G distro,peguin gentoo

练习2:创建用户fedora,其注释信息为"Fedora Core",认sHell为/bin/tcsh;

useradd -c "Fedora Core" -s /bin/tcsh fedora

练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问;

usermod -d /var/tmp/gentoo/ gentoo

练习4:为gentoo新增附加组netadmin;

groupadd netadmin
            usermod -aG netadmin gentoo

大佬总结

以上是大佬教程为你收集整理的linux用户权限管理全部内容,希望文章能够帮你解决linux用户权限管理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。