Linux中的用户和权限管理

Linux是多用户,多任务操作系统:多用户是指多个用户可以同时使用系统资源,而多任务指同时运行多个进程。

用户是能够获取系统资源的权限的集合,Linux通过用户实现资源分隔。

用户组是具有相同特征用户的逻辑集合,是用户的容器。

1.用户:

(1)用户类别

管理员:root

普通用户:

系统用户:仅仅用于用于启动服务进程。

登录用户:用于使用者交互使用,是系统资源的使用者

(2)用户在操作系统中用UID来标识:

UID是16bits的二进制数字,如此范围为:0-65535。Linux 系统对用户UID做出了规定:

管理员:0
        普通用户:1-65635
               系统用户:1-499(CentOS 5,6), 1-999(CentOS7)
               登录用户:500-60000(CentOS   5, 6), 1000-60000(CentOS7)

操作系统和使用者用不同的方法标记系统资源,两者需要通过名称解析相互识别,也就是名称转换。Linux 中通过/etc/passwd 文件作为解析库来转换;

2.Linux 组概念中在同样组概念中运用的相同的理念:

(1)GID标识组

(2)用文件作为组和GID解析库:/etc/group作为组名和GID的解析库。

(3)组从不同角度来划分类别:

1.从角色上去分为:管理员组和普通用户组,普通用户组内又包含系统用户组和普通用户组。

2.从用户角度来看:Linux 为用户设置了基本组,和附加组。Linux 在用户创建时设置基本组名称与用户名相同。

3.从组内成员成分区分为:私有组:与对应用户组相同,组内仅仅有该用户一个用户;公共组为多人组,组内用户具有重合的权限集合。

Linux 通过认证,授权,统计管理用户,用户主要通过/etc/shadow来认证认证。

资源权限机制:

用户的安全上下文:

进程:以某个用户的身份运行,进程对资源的操作权限取决于它代表的用户;
操作系统中的文件权限模型            
                 属主:owner
                 属组:group
                 其他人:others

权限模型生效的机制:
                进程的运行者:是否与发文件的属主相同,如果是则以文件的属主的身份来访问此文件,否则是否属于文件的属组,如果是则以文件属组的身份来访问此文件,否则一文件的其他用户的身份来访问此文件。如下图所示:

用户和组的管理:

Linux 中主要以命令进行:

组:groupadd,groupdel,groupmod

用户:useradd,userdel,userdel
        认证:passwd,gpasswd

组权限管理命令:

1.groupadd:添加组
            groupadd [选项] group_name
                OPTIONS:

-g GID:指定GID;                  # 默认是上一个组的GID+1;
                    -r: 创建系统组;

例如:  ~] #groupadd -r -g 336 testgrp
            ~] #tail -1  /etc/group

testgrp:x:336:

说明:/etc/group文件格式:
       GroupNmme:gpasswd:GID:user1,user2,user3...

其中user1,user2,user3...:为组内其他用户列表,以“,”分隔;

2.groupmod
             groupmod [选项] GROUP
               -g GID:修改GID;
               -n new_name:修改组名;

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

用户管理

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:创建系统用户;

注意:创建用户时的诸多默认设定配置文件为/etc/login.defs,其中定义用户添加的默认定义

利用 useradd -D 选项可以显示或修改创建用户的默认配置;

useradd -D [DOPTION]

例如:useradd -D -s /bin/tcsh  # 修改的结果保存于/etc/default/useradd

2.usermod [选项] 用户
        -u, --uid UID:修改用户的ID为此处指定的新UID;
        -g, --gid GROUP:修改用户所属的基本组;
        -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;
        -a, --append:与-G一同使用,用于为用户追加新的附加组;
        -c, --comment COMMENT:修改注释信息;
        -d, --home HOME_DIR:修改用户的家目录;        用户原有的文件不会被转移至新位置;
        -m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
        -l, --login NEW_LOGIN:修改用户名;
        -s, --shell SHELL:修改用户的默认shell;
    注意:登录用户,为其自定义的shell程序必须在/etc/shells中,否则不能登录。
        -L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
        -U, --unlock:解锁用户的密码;
        -e, --expiredate EXPIRE_DATE:用与设置用户密码过期时间。
        -f,--inactive INACTIVE:密码过期后,不活动时间。

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

说明1. /etc/passwd 解析库字段,解析库每行为一条记录,信息栏以“:”分隔:

以新添加的用户storm用户的解析库条目为例:

storm:x:5001:5001::/home/storm:/bin/bash

各字段意义如下;
        name:passwd:UID:GID:comment:Home_directory::shell

说明2. /etc/shadow 密码库解析库字段,解析库每行为一条记录,信息栏以“:”分隔:

以新添加的用户storm用户解析的库条目为例:

storm:!!:16867:0:99999:7:::

login_name:登录名

encripted_password:加密的密码

date of last password change:上次跟新密码时间(这里时间都是用距离1970-01-01的天数);

minimum password age:最小密码更换周期天数,不到期,想更换密码也更换不了;

maximum password age:最长密码更换周期天数,到期不改,会有措施;

password warning period:密码过期警告日期,在到期之前会提示改密码警告;

password inactivity period:密码到期后宽限时间,在宽限时间内只能重新设置密码后,才能使用系统;

account expiration date:硬性规定的过期时间,到期就会不能登录;

reserved field:保留他用

说明3:用户密码是用md5,sha64,sha248,sha512等单向加密算法加密的,为了防止试探,每个加密串都添加的salt以防止试出密码,salt为随机字符串,linux中的随机设备为/dev/randow(随机树,默认使用硬盘熵数,耗尽则阻塞,不再输出)和/dev/urandom(伪随机数,默认使用硬盘熵数,耗尽则用软件模拟再输出)

说明4:密码过期机制:

4.passwd命令:
    passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

(1)passwd:修改用户自己的密码;
普通用户(1)要求输入老密码(2)符合密码复杂度
密码复杂度:不能少于8位,复杂度要使用4类中的三类以上,不能近似旧密码等等
(2)passwd USERNAME:修改指定用户的密码,仅root有此权限;
        -l, -u:锁定和解锁用户;
        -d:清除用户密码串;
        -e DATE: 过期期限,日期;
        -i DAYS:非活动期限;
        -n DAYS:密码的最短使用期限;
        -x DAYS:密码的最长使用期限;
        -w DAYS:警告期限;

(3)passwd --stdin:通过标准输入,输入密码;
echo "PASSWORD" | passwd --stdin USERNAME

su命令:switch user

5.用户切换

(1)不读取目标用户的个人配置文 件,半切换
    su USERNAME
(2)读取目标用户的个人配置文件,登录式切换
    su -[l] USERNAME
        options:-c ,--command COMMAND: 仅仅以目标用户执行命令后,并返回结果,而不真正 执  行身份切换
    说明:root切换到其他用户是不需要密码的,普通用户切换到任何用户都需要密码;
6.gpasswd:为组添加密码
    /etc/gshadow:
    gpasswd [option] group
        -a USERNAME:向组加用户
        -d  USERNAME:向 组删除用户
7.newgroup命令:登录到另一个组,切换到已有属组是不需要密码,并更改属组为目标属组,切换到新组时,需要新组密码了。
8.chage: chage - change user password expiry information

时间: 2024-12-25 04:41:42

Linux中的用户和权限管理的相关文章

Linux中的用户及权限管理

用户及权限管理 Linux具有Muliti-task(多任务)Muliti-Users(多用户)的环境. 用户:为了保护所有使用计算机者的权益不受到损害,所以要实现资源的使用隔离机制,为了实现资源的使用隔离机制,就要标识每一个使用者,而这每一个使用者就是用户. 用户ID:每一个使用者的唯一标识,计算机用来识别使用者. 用户密码:用户的认证手段.Authenticationg(认证),Authorization(授权),Auditiong(审计) 3A 用户类别:分为管理员和普通用户,普通用户又分

Linux中的账号和权限管理(理论讲解部分)

小伙伴们本次给大家带来的是Linux中的账号和权限管理,这里我们首先要明确的就是这个权限是文件或者目录的权限.接下来我们会从以下几个部分进行了解: 用户账号和组账号概述 用户账号和组账号管理 查询账号信息 查看目录或文件的属性 设置目录或文件的权限 设置目录或文件的归属 用户账号和组账号概述Linux基于用户身份对资源访问进行控制1.用户账号:? 超级用户? 普通用户? 匿名用户(everyone)? 程序用户(人为不可使用,单独管理系统中某个应用程序存在的服务)2.组账号:组是系统用户权限的集

Linux 中的用户组与权限管理

Linux中的用户以令牌token,identity为标识符号,每一个用户都拥有一个 Username和UID,root用户比较特殊,他的的UID为0.普通用户的UID由系统在1-60000范围内自动分配,系统用户的UID默认取值范围为1-499,Centos7之后范围扩大至1-999,登录用户的UID取值范围为500-60000,Centos7后调整为1 000-60000. 拥有相同权限的用户可以组成一个组,用户必须属于一个且只有一个主组,且组名同用户名,且仅包含一个用户.一个用户可以属于零

浅析Linux系统下用户与权限管理

Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过程中,又必然存在对有限计算机资源使用的限制性,那么操作系统就必须提供一种途径来保证每个用户独立.合理的使用计算机. 一.用户和用户组管理   (一)用户及用户组相关基本概念  用户:泛指计算机的使用者.用计算机可识别的用户ID(UID,user id)标识. 用户组:用户容器,用来将多个用户合并为一

linux ftp 添加用户及权限管理

Linux下创建用户是很easy的事情了,只不过不经常去做这些操作,时间久了就容易忘记,顺便配置一下FTP.声明:使用Linux版本release 5.6,并以超级管理员root身份运行. 1.创建用户,并指定分组和主目录 useradd -d /home/lch -g root lch 还可以增加其他参数,比如指定用户使用shell等,具体的google一下 2.设定密码 passwd lch 3.查看.改变.添加用户分组 [[email protected] ~]# groups lch l

浅析mysql主从复制中复制用户的权限管理

在用复制账号对mysql salve管理过程中,使用哪些权限合适?首先看一下mysql官方提供的权限表: 权限 列 上下文 CREATE Create_priv 数据库.表或索引 DROP Drop_priv 数据库或表 GRANT OPTION Grant_priv 数据库.表或保存的程序 REFERENCES References_priv 数据库或表 ALTER Alter_priv 表 DELETE Delete_priv 表 INDEX Index_priv 表 INSERT Inse

linux中的用户与权限

Linux是一款支持多用户多进程的操作系统,为了实现对系统中资源的有效管理及配置,使用了登陆账户与对应账户权限的方式来限制每一个登陆系统的使用者. 使用者在登陆Linux系统时,会先对使用者进行身份认证(authentication),通过系统账号和密码来实现.用户登陆成功时,则会按照之前设定好的账户权限为使用者授权,规定了其可以访问.使用系统中的哪些资源(authorization).同时,为了防止已登陆的使用者恶意在系统上操作,影响其他用户的利益,还需要对所有登陆用户进行使用行为的监控(au

Linux中的用户丶组管理

主要以命令进行: 组:groupadd,  groupmod, groupdel 用户:useradd, usermod, userdel 认证:passwd 组解析库文件:/etc/group GRPNAME:x:GID:user1, user2, ... 组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔 groupadd命令:添加组 groupadd  [选项]  group -g  GID:指明GID: -r, --system:系统组: groupmod命令:修改组信息 g

Linux常用命令-用户,权限管理

ssh:远程登录 ssh [email protected] ssh 用户名@ip (1)whoami:查看当前用户名 whoami该命令用户查看当前系统当前账号的用户名.可通过cat /etc/passwd查看系统用户信息. (2)who:查看登录用户 who:查看当前登录的用户信息 (3)exit:退出登录 如果是图形界面,退出当前终端: 如果是使用ssh远程登录,退出登陆账户: 如果是切换后的登陆用户,退出则返回上一个登陆账号. (4)useradd:添加用户账号 useradd 新的用户