精华内容
下载资源
问答
  • 账号管理
    千次阅读
    2022-05-07 00:07:56

    C++个人银行账户管理系统

    采用C+ +面向对象的程序设计方法开发基于ATM的个人银行账户管理系统,根据大家的日常经验设计、实现以下功能(但不限于) :
    (1) 管理个人账户Account (基类)基本信息,比如帐号、密码、姓名、性别、住址、电话、身份证号等,登录时进行帐号和密码验证;
    (2)账户的基本功能有新建、登录、存款、取款、余额查询、利息计算等,设计这些功能时注意实际使用中的有效性约束;
    (3)系统可以动态管理多个帐户:
    (4)帐户分为多种类型,如储蓄帐户Debit (存款有利息,不可透支)和信用卡帐户Credit (可以透支,存款无利息),后者还可以进- -步划分消费等级,如普通账户和VIP账户等,另外还有兼具储蓄和透支功能的复合卡Compcard,使用继承、派生和多态等机制来设计;
    (5)将银行ATM设计成一一个组合类,支持帐户的创建、撤销、登录和退出以及银行侧的统计、查询等管理功能;
    (6)为系统设计尽量完整、方便的输入输出界面,对输入信息实现初步的有效性检查,帐户信息可通过磁盘文件进行保存和读取;
    (7)可尝试使用图形化界面类库MFC或QT进行窗口形式的界面开发,以实现更丰富的信息显示和更直观的交互操作(加分项)。
    可以采用逐步细化的迭代式开发方法,结合本课程的学习内容,丰富和完善相应功能,尽可能多的使用面向对象机制,最终成果提交要求:
    (1)完整的源程序和数据文件,对所设计的类体、函数和变量等标注必要的注释,建议使用多文件结构,包括cpp文件、.h头文件、数据文件以及项目文件等;
    (2)软件设计和使用说明书,包括功能和特色简介、基于UML的类图,主程序流程图、测试实例和运行结果(屏幕截图)等,以word文 件形式保存;
    (3)将上述文件以压缩包的形式上传。

    源码下载

    链接:https://pan.baidu.com/s/1Ov5TR_OXoQ-0Y-266Hv-8A?pwd=1111
    提取码:1111

    更多相关内容
  • 账号管理系统开源

    2021-06-25 15:12:16
    账号管理系统开源源码
  • 个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统个人资金账户管理系统...
  • 一个人可以有好几个活期储蓄账户,一个活期账户包括id(账号)、balance(余额 )、rate(年利率),还包括show(显示账户信息)、deposit(存钱)、withdraw(取钱)、settle(结算利息)等操作。故设计一个类...
  • Linux账号管理

    千次阅读 2022-03-27 14:06:52
    账号管理1.添加用户账号--useradd2.账户密码--passwd3.账户信息修改--usermod 一.用户账号概述 1.账号分类 1.超级用户: root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是...

    一.用户账号概述

    1.账号分类

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

    2.用户标识UID (User IDentity ,用户标识号)

    root用户账号的UID固定值0
    程序用户账号的UID默认为Centos7: 1~ 999
    普通用户的UID默认为Centos7: 1000~ 65535

    3.用户账号文件/etc/passwd

    /etc/passwd :保存用户名称、宿主自录、登录Sell等基本信息
    作用:保存用户名称、宿主自录、登录Sell等基本信息,每一行对应一个用户的帐号记录
    在这里插入图片描述

    root:x:0:0:root:/root:/bin/bash

    passwd文件中记录的信息用“:”隔开,共7段信息
    字段1:用户帐号的名称
    字段2:用户密码占位符“x”
    字段3:用户帐号的UID号
    字段4:所属基本组帐号的GID号
    字段5:用户全名
    字段6:宿主目录
    字段7:登录Shell信息( /bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)

    4.密码存贮/etc/shadow

    /etc/shadow:保存用户的账号、密码等有效信息 只有root有权限查看
    在这里插入图片描述

    xy:$6$K1prXGgR$8gRhoqkMBbJZwNJMKY8UchxaasFG2apqIcu5MiPOVnnkvq0Huc.0QflCAqV3bLi1117/OGV.KO1VqehMJDN7T.:19078:0:30:6:3:19087:
    

    同passwd文件一样,shadow同样以“:”分割信息,共九段
    字段1:用户帐号的名称;
    字段2:使用SHA512加密的密码字串信息,当为“*” 或“! !”时表示此用户不能登录到系统;若该字段内容为空,则该用户无须密码即可登录系统;
    字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数;
    字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制;
    字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999, 表示不进行限制;
    字段6:提前多少天警告用户密码将过期,默认值为7;
    字段7:在密码过期之后多少天禁用此用户;
    字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用;
    字段9:保留字段(未使用),没有特定用用途。

    二.账号管理

    1.添加用户账号–useradd

    命令格式:useradd [选项] + 要添加的账户名
    在这里插入图片描述
    例:

    [root@320 ~]# useradd xiayan
    [root@320 ~]# echo "123456" |passwd --stdin xiayan
    更改用户 xiayan 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    [root@320 ~]# tail -1 /etc/passwd
    xiayan:x:1005:1005::/home/xiayan:/bin/bash
    [root@320 ~]# tail -1 /etc/shadow
    xiayan:$6$wZAO/f2/$9X5NAEb.rY7YbZR6xQXf7i.fk.Sodt95ttlpDf0.WxDnFoqAfb8s34KFycQAyyJ/RCtkKzEjySJMWGEHjck8l1:19078:0:99999:7:::
    [root@320 ~]# ls /home
    xiayan  

    2.账户密码–passwd

    root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。
    普通用户却只能执行单独的“passwd"命令修改自己的密码。
    命令格式:passwd [选项] +用户名
    在这里插入图片描述

    [root@320 ~]# passwd -d xiayan
    清除用户的密码 xiayan。
    passwd: 操作成功
    [root@320 ~]# passwd xiayan
    更改用户 xiayan 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    [root@320 ~]# passwd -l xiayan
    锁定用户 xiayan 的密码 。
    passwd: 操作成功
    [root@320 ~]# passwd -S xiayan
    xiayan LK 2022-03-27 0 99999 7 -1 (密码已被锁定。)
    [root@320 ~]# passwd  -u xiayan
    解锁用户 xiayan 的密码。
    passwd: 操作成功

    3.账户信息修改–usermod

    命令格式:usermod [选项]+用户名
    在这里插入图片描述命令使用方法和useradd基本相同,锁定解锁账户与passwd也类似,不同在于passwd锁定的是/etc/passwd而usermod锁定的是/etc/shadow

    [root@320 ~]# usermod -L xiayan
    [root@320 ~]# tail -1 /etc/shadow
    xiayan:!$6$sMCWfZHy$dwWuCC/1/aHkxCfewNVHo2V8vrz/WL4NXG4LpP9Q4JZZE2VtkyRFPQNiRnnNJlE67X.p3/zJ8toECD06cp7ly0:19078:0:99999:7:::
    [root@320 ~]# usermod -u xiay
    [root@320 ~]# tail -1 /etc/shadow
    xiayan:$6$sMCWfZHy$dwWuCC/1/aHkxCfewNVHo2V8vrz/WL4NXG4LpP9Q4JZZE2VtkyRFPQNiRnnNJlE67X.p3/zJ8toECD06cp7ly0:19078:0:99999:7:::
    

    4.账号删除–userdel

    命令格式:userdel -r +用户名

    root@320 ~]# userdel -r xiayan
    [root@320 ~]# ls /home
    [root@320 ~]# 

    4.修改账户密码有效期–chage

    在前文中提到,用户密码存储在/etc/shadow中,并且字段中显示密码的有效期等信息,那么如何修改呢
    chage [选项] +用户名
    在这里插入图片描述例:
    创建普通账号并且对账号设置密码的最长有效30天;提前6天警告账号密码将过期 ,设置账户密码过期之后3天内禁用用户,账号失效时间10天
    在这里插入图片描述

    三.组账号概述

    1.组账号分类

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

    2.组标识(GID)

    root用户账号的GID固定值0程序用户账号的GID默认为Centos7: 1~ 999普通用户的GID默认为Centos7: 1000~ 65535

    3.组账号文件/etc/group

    /etc/group:保存组帐号基本信息/etc/gshadow:保存组帐号的密码信息
    字段1:组帐号的名称
    字段2: 占位符“x”
    字段3:组账号的GID号
    字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,"分隔

    [root@320 ~]# tail -1 /etc/group
    xg:x:1007:
    

    四.组账户管理

    1.组账户添加–groupadd

    命令格式:groupadd [-g Gid] +组账户名

    [root@320 ~]# groupadd -g 1008 hjd    创建一个Gid为1008名称为hjd的组
    [root@320 ~]# tail -1 /etc/group
    hjd:x:1008:
    

    2.组账户成员管理–gpasswd

    命令格式:gpasswd [选项+用户名] +组名
    在这里插入图片描述

    [root@320 ~]# gpasswd -a xg hjd
    正在将用户“xg”加入到“hjd”组中
    [root@320 ~]# gpasswd -d xg hjd
    正在将用户“xg”从“hjd”组中删除
    [root@320 ~]# gpasswd -M xg,dch,sxy hjd
    [root@320 ~]# tail -1 /etc/group
    hjd:x:1008:xg,dch,sxy

    3.组账户删除–groupdel

    命令格式:groupdel + 组名

    [root@320 ~]# groupdel hjd
    [root@320 ~]# tail -1 /etc/group
    xg:x:1007:
    

    4.查询用户账号所属组–groups

    命令格式:groups +用户名

    root@320 ~]# groups xg       
    xg : xg hjd
    root@320 ~]# grep "xg" /etc/group    //用grep过滤文本的方式也可以查找用户所属组
    xg:x:1007:
    hjd:x:1008:xg
    [root@320 ~]# id xg                //用id+用户名 可以查询用户详细信息
    uid=1007(xg) gid=1007(xg)=1007(xg),1008(hjd)
    

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

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

    -rw-r--r--.  1 root root 11160291 324 17:38 etc.tar.gz

    如上:第一个“-”表示的是文件类型:“-”表示普通文件,d为目录,b为块设备文件,c字符设备文件,l连接文件
    “rw-”:代表文件所属的用户权限类型
    “r–”:代表文件属组权限类型
    “r–”:代理其他用户对文件的权限
    第一个root:代表属主
    第二个root:代表属组

    1.设置文件/目录权限–chmod

    在这里插入图片描述

    读取 r :允许查看文件的内容、显示目录列表 ;r=4
    写入 w :允许修改文件内容,允许在目录中新建、移动、删除文件或子目录;w=2
    可执行 x :允许运行程序、切换目录。x=1
    常用选项:== -R==:递归修改指定目录下所有子项的权限(

    “ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件组内的用户,“o”代表其他任何用户长度有用户(ugo的总和);“+ - =”表示设置权限的操作动作。“+”号代表增加权限,“-”号代表减少相应权限,“=”号代表仅设置对应的权限;

    2.设置文件目录归属–chown

    命令格式:
    chown 属主 文件或目录
    chown :属组 文件或目录
    chown 属主:属组 文件或目录
    常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件)

    3.unmask

    设置目录和文件的默认权限;
    指定目前用户在新建文件或目录时的权限默认值;
    新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)
    格式:umask查看: umaskumask设置: umask 000

    展开全文
  • Linux系统的账号管理以及权限管理

    千次阅读 2022-03-16 10:19:23
    0 超级1.1.2 普通用户 受到系统某一类限制1.2 组帐号1.2.1 基本组(私有组)1.2.2 附加组(公共组)1.3 ID1.3.1 UID1.3.2 GID1.3.3 用户和组的关系1.4 用户账号管理1.14.1文件位置:1.4.2添加用户基本格式选项1.4.3 ...

    账号和权限管理

    1用户账号和组账号概述

    1.1用户帐号类型

    Linux中每个用户是通过 User Id (UID)来唯一标识的 新建用户 1-60000 自动分配 0-65535 端口号

    管理员:root, 0

    程序用户:1-499 (CentOS 6以前), 1-999 (CentOS 7以后) 不登录的用户 系统默认的情况

    对守护进程获取资源进行权限分配

    普通用户:500+ (CentOS6以前), 1000+(CentOS7以后) 不指定 顺序

    给用户进行交互式登录使用

    • 超级用户
    • 普通用户
    • 程序用户
    #1、查看当前登录用户信息 
    who命令: 
    [root@localhost ~]# whoami
    root
    [root@localhost ~]# who
    root     pts/0        2021-08-17 14:16 (192.168.91.1)
    root     pts/1        2021-08-17 14:30 (192.168.91.1)
    [root@localhost ~]# who -b
             系统引导 2021-08-17 14:15
    
    补充:
    #2、last命令 
    选项: 
    (1)-x:显示系统开关机以及执行等级信息 
    (2)-a:将登陆ip显示在最后一行 
    (3)-f :读取特定文件,可以选择 -f /var/log/btmp文件 
    (4)-d:将IP地址转换为主机名 
    (5)-n:设置列出名单的显示列数 
    (6)-t:查看指定时间的用户登录历史 
    
    3、lastlog 查看所有用户的最近一次登录
    
    #-u 查看指定用户
    [root@localhost ~]# lastlog -u root
    用户名           端口     来自             最后登陆时间
    root             pts/1    192.168.91.1     二 8月 17 14:30:01 +0800 2021
    
    
    #-t 表示几天之内的
    [root@localhost ~]# lastlog -t 1
    用户名           端口     来自             最后登陆时间
    root             pts/1    192.168.91.1     二 8月 17 14:30:01 +0800 2021
    gdm              :0                        二 8月 17 14:15:56 +0800 2021
    zhangsan         :0                        二 8月 17 16:25:37 +0800 2021
    
    

    1.1.1 超级用户 0 超级

    超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高
    无上的权限,类似于 Windows 操作系统中的 Administrator 用户。只有当进行系统
    管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用普通用户账号。日常工作一般不会使用root账号,小公司除外,小公司运维可能就你一个人你说了算。

    思考:超级管理员是否是按照名称来定义的吗?

    1.1.2 普通用户 受到系统某一类限制

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

    演示:使用普通用户修改网卡

    Tips:用户名后面的符号有所改变

    [lisi@test1 root]$ ifconfig ens37 192.168.100.100
    SIOCSIFADDR: 不允许的操作
    SIOCSIFFLAGS: 不允许的操作
    [lisi@test1 root]$ su root
    密码:
    [root@test1 ~]# 
    

    1.2 组帐号

    如何理解组?组相当于 职位 运维工程师 都具有大概相同的权限

    看到组最常见的组词是不是组织?组织:按照一定的宗旨和系统建立起来的集体。那linux和windows中的组就是将多个用户集合起来,统一分配某种相同的权限(开通或关闭)。

    1.2.1 基本组(私有组)

    • 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。
    • 在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定

    基本组:有且唯一

    附加组:可有可无,可以有多个

    默认新建用户时自动添加同名的组

    1.2.2 附加组(公共组)

    附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定

    [root@test1 ~]# id lisi
    uid=1004(lisi) gid=1004(lisi)=1004(lisi),1005(kgc)
                   1004为基本组或私有             1005为附加组或公共组
                   
                   
                   
    1 lisi:用户名
    2 x:密码占位符?
    3 1002:uid
    4 1002:gid
    5   :描述信息你soft 备注
    6/home/lisi:家目录    /root
    7/bin/bash:shell环境
     
      
      
      
      
      
      
      
      
      
      
    

    1.3 ID

    1.3.1 UID

    UID(User IDentity,用户标识号):Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID(UserIDentity,用户标识号),对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。root 用户账号的 UID 号为固定值 0,而程序用户账号的 UID号默认为1~499,500~60000 的 UID 号默认分配给普通用户使用。

    centos7登录用户是从1000起到60000

    centos6 500~60000

    1-999 预留给系统,叫系统用户,某个程序比如数据库

    给人使用的账户是从1000开始

    [root@test1 ~]# id root
    [root@test1 ~]# id zhangsan
    uid=1000(zhangsan) gid=1000(zhangsan)=1000(zhangsan),10(wheel)
    
    
    [root@localhost ~]#vim /etc/login.defs
    #uid 的范围定义在此文件中
    

    1.3.2 GID

    GID(Group IDentify,组标识号):与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。

    1.3.3 用户和组的关系

    用户 是员工 组 是职位

    员工 可以兼职多个岗位

    总有一个最重要的身份 主要组合附加组

    主要组 必须要一个组 有且唯一

    附加组 可有可无 有可以有多个

    默认行为当你创建一个新用户时会自动创建一个和之同名的主组

    • 用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组
    • 用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组
    root    zhangsan 用户 使用不同的工具
    cat /etc/shadow
    vim /etc/shadow
    

    1.4 用户账号管理

    1.14.1文件位置:

    • /etc/passwd

      存放保存用户名称、宿主目录、登录 Shell 等基本信息,

    [root@test1 ~]# 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
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    省略多行
    root   用户名称
    :x     密码占位符   
    
    :0     uid
    
    :0     gid
    
    :root  备注信息,描述
    
    :/root  家目录路径
    
    :/bin/bash shell环境
    
    
    
    
    
    • /etc/shadow 存放保存密码
    [root@test1 ~]# head -1 /etc/shadow
    root:
    $6$HzYRIWo05k6aVw2p$aLg7wfHGwoghmuUrIYced/vtejEu32K/yyP9CrF..hAejvS4Y64if3DCfJxwjV1.NhLow40mm5Pkmd6R8KOBU/:
    :0
    :99999
    :7
    :
    :
    :
    

    第一字段:用户名:root

    第二字段:密码: 6 6 6HzYRIWo05k6aVw2p$aLg7wfHGwoghmuUrIYced 当为*或!!时表示用户不能登录到此系统,若该字段为空,则表示无需密码即可登录

    第三字段:上次修改密码时间,最后一次修改密码的时间

    1970 年 01 月 01 日这是linux诞生的第一年已他作为元年开始计算

    date -d '1970-01-01 19031 days'
    #计算实际修改日期
    

    第四字段:最小修改密码间隔时间, 今天 下一次间隔天数,才能修改,频繁修改, 也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。此字段是为了针对某些人频繁更改账户密码而设计的安全性考虑

    第五字段:密码有效期 经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。管理服务器时,通过这个字段强制用户定期修改密码。

    第六字段:密码到期提醒(提示密码即将过期时间) 7 密码将要过期的前7天会提醒你 与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码 该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 “修改密码” 的警告信息。

    第七字段:密码过期后的宽限天数 (密码过期后多少天禁用此用户) 90 这个 也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。

    第八字段:账号失效时间 同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!该字段通常被使用在具有收费服务的系统中。账号无法登录生命值

    第九字段:保留字段收费内容

    1.4.2添加用户

    useradd命令

    基本格式

    useradd 【选项】 用户名

    添加用户:查看是否在 passwd和shadow文件中生成信息

    • 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
    • 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿
      主目录,并在该目录中建立用户的各种初始配置文件。
    • 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账
      号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
    [root@test1 ~]# useradd lisi
    [root@test1 ~]# id lisi
    uid=1004(lisi) gid=1004(lisi)=1004(lisi),1005(kgc)
    [root@test1 ~]# cat /etc/passwd |grep lisi
    lisi:x:1004:1004::/home/lisi:/bin/bash
    [root@test1 ~]# tail -1 /etc/passwd
    lisi:x:1004:1004::/home/lisi:/bin/bash
    [root@test1 ~]# tail -1 /etc/shadow
    lisi:$6$wbBIX3M/$QCPLfO0hs6gd0IyOHfblrwi2b319fCJFLHP2SG/QTgyjNTKON01S1qsUpNnjdeeS9Vd0cBFareY9mUh/87brz0:18809:0:99999:7:::
    
    选项
    • -u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。

    • -d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。

    • -e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

    • -g:指定用户的基本组名(或使用 GID 号)。

    • -G:指定用户的附加组名(或使用 GID 号)。

    • -M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。

    • -s:指定用户的登录 Shell /sbin/nologin

      wheel zhangsan

    [root@test1 ~]# useradd -u 1100 -d /ky18 -g root -G wheel  zhou
    [root@test1 ~]# id zhou
    uid=1100(zhou) gid=1100(zhou)=1100(zhou)
    
    

    1.4.3 密码管理

    passwd命令

    为用户账号设置密码

    passwd [选项]… 用户名

    基本用法 不加选项 可以添加密码

    [root@test1 /]# passwd lisi    修改lisi 用户密码输入两次密码
    更改用户 lisi 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    

    选项

    • -d:清空指定用户的密码,仅使用用户名即可登录系统。
    • -l:锁定用户账户。
    • -S:查看用户账户的状态(是否被锁定)。
    • -u:解锁用户账户。
    [root@test1 /]# passwd -l lisi
    [root@test1 /]# tail -1 /etc/shadow
    lisi:!!:18809:0:99999:7:::
    [root@test1 /]# passwd -d lisi
    清除用户的密码 lisi。
    passwd: 操作成功
    [root@test1 /]# passwd -S lisi
    lisi NP 2021-07-01 0 99999 7 -1 (密码为空。)
    [root@test1 /]# passwd -u lisi
    解锁用户 lisi 的密码。
    passwd: 警告:未锁定的密码将是空的。
    passwd: 不安全的操作(使用 -f 参数强制进行该操作)
    [root@test1 /]# passwd -fu lisi
    解锁用户 lisi 的密码。
    passwd: 操作成功
    [root@test1 dnf]# echo "123123"|passwd --stdin lisi  
    #免于交互
    更改用户 lisi 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    

    1.4.4修改用户账号的属性

    usermod命令

    usermod [选项]… 用户名

    常见选项

    • -l 更改用户账号的登录名称(Login Name)
    • -L 锁定用户账户
    • -u 修改用户的 UID 号
    • -U 解锁锁用户账户
    • -d:修改用户的宿主目录位置。
    • -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
    • -g:修改用户的基本组名(或使用 GID 号)
    • -G:修改用户的附加组名(或使用 GID 号)
    • -s:指定用户的登录 Shell
    [root@test1 home]# echo "123123" | passwd --stdin zhou   //无交互修改
    更改用户 zhou 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    [root@test1 home]# usermod -L zhou       //锁定用户
    [root@test1 home]# passwd -S zhou        //查看状态
    zhou LK 2021-07-02 0 99999 7 -1 (密码已被锁定。)
    [root@test1 home]# usermod -U zhou   //解锁   
    [root@test1 home]# passwd -S zhou   //查看状态
    zhou1 PS 2021-07-02 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
    
    [root@test1 home]# usermod -l zhou1 zhou  //修改用户名
    [root@test1 home]# id zhou                //验证查看
    id: zhou: no such user
    [root@test1 home]# id zhou1
    uid=1002(zhou1) gid=10(wheel)=10(wheel),0(root)
    
    [root@test1 ~]# cd /home/
    [root@test1 home]# ls
    lisi  zhangsan  zhou
    [root@test1 home]# mv zhou/ /
    [root@test1 home]# ls
    lisi  zhangsan
    [root@test1 home]# usermod -d /zhou zhou
    使用前要先手动更改目录,-d只是更新信息
    
    
    [root@localhost ~]# python -c 'import crypt,getpass;pw="kgc";print(crypt.crypt(pw))'
    $6$tMsAHcauo3zx.QJb$YfGDclLx0q77DSbwU0zCUoH9GeoufE1aZRhb/E3iqIw4yKofIwPByLvJRMEG4urLWQpHQWLs4k8tW7LkH6B3P0
    #生成随机密码
    [root@localhost ~]#cat /dev/urandom | tr -dc '[:alnum:]'|head -c12
    

    1.4.5 删除用户

    userdel [选项] 用户

    • -r 将宿主目录一起删除

      [root@test1 etc]# userdel -r zhou1    //连宿主目录一起删除
      [root@test1 etc]# id zhou1            //验证
      id: zhou1: no such user
      [root@test1 etc]# cd /home/
      [root@test1 home]# ls
      lisi  zhangsan
      

    1.4.6用户账号的初始配置文件

    用户宿主目录下的初始配置文件只对当前用户有效

    ~/ .bash_profile

    #此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件

    ~/.bashrc

    #此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)

    ~/.bash_logout

    #此文件中的命令将在该用户每次退出时bash shell时使用

    /etc/bashrc

    1.5组管理

    1.5.1组账号文件

    与用户帐号文件相类似
    /etc/group:保存组帐号基本信息
    /etc/gshadow:保存组帐号的密码信息基本不使用

    [root@test1 /]# grep "adm" /etc/group   //过滤/etc/group文件下的adm文件
    adm:x:4:
    

    1.5.2添加组

    groupadd命令

    groupadd [-g GID] 组账号名

    [root@test1 /]# groupadd zhou           //添加组账号
    [root@test1 /]# tail -1 /etc/group
    zhou:x:1002:
    [root@test1 /]# groupadd -g 88 zhou    //-g指定组id
    [root@test1 /]# tail -1 /etc/group
    zhou:x:88:
    

    1.5.3组内管理

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

    • -a:向组内添加一个用户
    • -d:从组内删除一个用户成员
    • -M:定义组成员列表,以逗号分隔
    [root@test1 /]# useradd zhou1             //组内加入新成员
    [root@test1 /]# gpasswd -a zhou1 zhou
    正在将用户“zhou1”加入到“zhou”组中 用户在前,组在后
    [root@test1 /]# gpasswd -d zhou1 zhou
    正在将用户“zhou1”从“zhou”组中删除
    [root@test1 /]# gpasswd -M zhou1,zhou zhou
    [root@test1 /]# grep "^zhou" /etc/group
    zhou:x:88:zhou1,zhou
    

    1.5.4删除组账号

    groupdel 组帐号名

    [root@test1 /]# groupdel zhou
    [root@test1 /]#
    

    1.5.5查询

    • finger命令查询用户帐号的详细信息(finger [用户名])
    [root@test1 Packages]# finger zhangsan
    Login: zhangsan       			Name: zhangsan
    Directory: /home/zhangsan           	Shell: /bin/bash
    Last login 五 7月  2 09:17 (CST) on pts/0
    No mail.
    No Plan.
    
    • w

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

    [root@localhost ~]# w [选项] [用户名]
    -h	不显示输出信息的标题
    -l	用长格式输出
    -s	用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
    -V	显示版本信息
    [root@test1 Packages]# w
     11:20:58 up  2:05,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.100.99   09:16    2.00s  0.74s  0.02s w
    

    上面的输出信息中,第一行其实和 top 命令的第一行非常类似,主要显示了当前的系统时间、系统从启动至今已运行的时间、登陆到系统中的用户数和系统平均负载。平均负载(load average)指的是在 1 分钟、5 分钟、15 分钟内系统的负载状况

    从第二行开始,显示的是当前所有登陆系统的用户信息,第二行是用户信息的各列标题,从第三行开始每行代表一个用户。这些标题的含义如表 所示

    标题含义
    USER登录到系统的用户。
    TTY登录终端。
    FROM表示用户从哪里登陆进来,一般显示远程登陆主机的 IP 地址或者主机名。
    LOGIN@用户登陆的日期和时间。
    IDLE表示某个程序上次从终端开始执行到现在所持续的时间。
    JCPU和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间。
    PCPU当前进程所占用的 CPU 运算时间。
    WHAT当前用户正在执行的进程名称和选项,换句话说,就是表示用户当前执行的是什么命令。
    • who

      相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。 who 命令的基本格式如下:

    [root@localhost ~]# who [选项] [file]
    

    需要说明的是,who 命令默认是通过 /var/run/utmp 文件来获取登陆用户信息,但如果通过 file 指定另一个文件,则 who 命令将不再默认读取 /var/run/utmp 文件,而是读取该指定文件来获取信息。

    选项含义
    -a列出所有信息,相当于所有选项。
    -b列出系统最近启动的时间日期。
    -l列出所有可登陆的终端信息。
    -m仅列出关于当前终端的信息,who -m 命令等同于 who am i
    -q列出在本地系统上的用户和用户数的清单。
    -r显示当前系统的运行级别。
    -s仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。
    -u显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。
    -T 或 -w显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。
    • users
    [root@localhost ~]#users
    root
    
    

    2.文件/目录的权限和归属

    程序访问文件时的权限,取决于此程序的发起者

    • 进程的发起者,同文件的属主:则应用文件属主权限
    • 进程的发起者,属于文件属组;则应用文件属组权限
    • 应用文件“其它”权限

    例子 root用户和普通用户 是否都可以看 (cat /etc/shadow)

    访问人群分为了三类

    1. 所属主(u)
    2. 所属组(g)
    3. 其他人 (o)

    权限分为三种

    1. 读(r,4)
    2. 写(w,2)
    3. 执行(x,1程序,脚本)

    对文件的权限

    1. r 可使用文件查看类工具,比如:cat,可以获取其内容
    2. w 可修改其内容
    3. x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)

    对目录的权限

    1. r 可以使用ls查看此目录中文件列表

    2. w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关

    3. x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限

    1.6.1chmod

    模式法:

    chmod 对谁(所有者,所属组,其他)操作(+ - =)权限 文件

    谁:u,g,o,a

    操作:+,-,=

    权限:r,w,x(普通权限对root无效)

    数字法:

    1 2 4

    x w r

    
    修改所属主
    
    
    chown 用户:组名 文件名
    #修改所属主,和所属组
    -R 递归修改
    
    [root@localhost aa]#chown -R zhangsan:zhangsan /opt/aa/
    #递归修改
    [root@localhost aa]#ll
    总用量 0
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 1
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 10
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 2
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 3
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 4
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 5
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 6
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 7
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 8
    -rw-r--r--. 1 zhangsan zhangsan 0 9月  17 21:53 9
    
    ##注意
    [root@localhost aa]#chown zhangsan:zhangsan /
    #此命令效果不亚于删除根目录
    

    1.6.2umask

    umask 的值可以用来保留在创建文件权限

    实现方式:

    新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变

    新建目录的默认权限: 777-umask

    非特权用户umask默认是 002

    root的umask 默认是 022

    展开全文
  • 账号管理和权限管理

    2021-12-25 21:01:01
    文章目录前言一、用户二、用户账号文件用户账户和组账户用户账号和组账号概述用户帐号组账号UID和GID用户账号文件用户账号文件夹用户账号文件/etc/shadow(影子文件)用户信息9段chage命令:用户账户管理添加用户账号 ...


    前言

    我们知道,任何操作系统都存在 “用户的概念” ,Linux 也不例外。


    一、用户

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

    用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    每个用户账号都拥有一个唯一的用户名和各自的口令。

    用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

    实现用户账号的管理,要完成的工作主要有如下几个方面:

    用户账号的添加、删除与修改。
    用户口令的管理。
    用户组的管理。

    二、用户账号文件

    用户账户和组账户

    用户账号和组账号概述

    Linux基于用户身份对资源访问进行控制

    用户帐号

    超级用户:
    root 用户是Linux 操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于Windows操作系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。root拥有对系统的最高的管理权限ID=0

    普通用户:
    普通用户账号需要由root 用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限系统用户UID:1-999 (centos7版本) 1-499 (centos6版本)UID:即每个用户的身份标示,类似于每个人的身份证号码

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

    组账号

    基本组
    基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组):

    附加组
    若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。

    UID:即每个用户的身份标示,类似于每个人的身份证号码. 管理员组:root, 0 普通组:GID

    系统组:1-499 ( centos6) , 1-999 (CENTOS7)

    普通组:500+ ( Centos6) , 1000+ (CENTOS7)

    表示该账户需要密码才能登录,为空时,账户无须密码即可登录组账号

    UID和GID

    UID(User IDentity,用户标识号)

    GID(Group IDentify,组标识号)

    用户账号文件

    用户账号文件夹

    /etc/passwd:保存文件名称、宿主目录、登录shell等基本信息
    /etc/shadow:保存用户的密码、账号有效期等信息

    用户账号文件/etc/passwd
    保存文件名称、宿主目录、登录shell等基本信息
    文件位置:etc/passwd

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

    [root@localhost ~]# head -2 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    root:用户账号
    x:密码占位符 x表示无密码
    第一个0:用户账号ID
    第二个0:组账号ID
    第一个root:用户说明
    第二个root:宿主目录
    /bin/bash:登录shell
    这里的每个字符不代表实际操作上就是这个字符  x、0和root只是替代
    

    在这里插入图片描述

    root:x:0:0:root:/root:/bin/bash详解如下:

    (1)root:用户名,用户名仅是为了方便用户记忆。Linux系统是通过UID来识别用户身份,分配用户权限。
    (2)x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件
    (3)Linux系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全。
    (4)补充:注意! ! !,虽然"x"并不表示真正的密码,但也不能删除,如果删除了"x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)。
    (5)0:用户账号的UID 号。
    (6)0:所属基本组账号的GID号
    (7)root:描述性信息,此字段只是用来解释这个用户的意义而已
    (8)/root:宿主目录,即该用户登录后所在的默认工作目录
    (9)注:通常称为用户的主(家)目录。例如: root主目录为/root,普通用户odysee的主目录为/home/odysee/bin/bash录 shell等信息,用户完成登录后使用的

    用户账号文件/etc/shadow(影子文件)

    保存用户的密码、账号有效期等信息
    文件位置:/etc/shadow

    每一行对应一个用户的的密码记录

    [root@localhost <sub>]# head -2 /etc/shadow
    root:$1$55HB4pbx$acHqk4IZiHTZ9cwOZJe8f0:14374:0:99999:7:::
    bin:*:14374:0:99999:7:::
    [root@localhost </sub>]# tail -1 /etc/shadow
    teacher:$1$BT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7:::
    

    /etc/shadow文件只有root

    用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性

    和/etc/passwd文件一样,文件中每行代表一个用户,同样使用“:”作为分隔符,不用之处在于,每行用户信息被划分为9个字段

    用户信息9段

    (1)第一列:账户名
    (2)第二列:存在真正加密的密码,采用SHA512散列算法,更加安全,加密原来用MD5或DES !!和**表示没有密码泵登录,新创建用户也是!!,如果密码前面显示双感叹号表示账户被锁定了
    (3)第三列:上一次修改密码的时间,从1970年1月1日开始算的,应为1970年时linux诞生日,date -d “1970-01-01 18983 days”可以查看那一天改过
    (4)第四列:多久之后才可以修改密码,如果是0,则密码可以随时修改 最小修改时间,也就是说该字段规定了从第三个字段(最后一次修改密码的日期)起,此字段是为了针对某些人频繁更改账号密码而设计的
    (5)第五列:密码有效期,默认99999(273年),表示永久生效
    (6)第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出“修改密码”的告警信息
    (7)第七列:密码过期的宽限天数,过期后的几天还是可以登录的,如果过了宽限天数,系统将不再让此账户登录,也不是提示账户过期,是完全禁用 比如说,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是-1 则代表密码永远不会失效
    (8)第八列:账号失效时间,使用自1970年1月1日以来的总天数作为账户失效时间
    (9)第九列:保留,未使用

    chage命令:

    用来修改帐号和密码的有效期限,针对目前系统已经存在的用户

    chage [选项]用户名,

    -m: 密码可更改的最小天数。为零时代表任何时候都可以更改密码

    -M: 密码保持有效的最大天数。chage -M 60 root

    -w: 用户密码到期前,提前收到警告信息的天数

    -E: 帐号到期的日期。过了这天,此帐号将不可用

    -d: 上一次更改的日期

    -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用

    -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期

    chage -E 2019-04-29 test
    ###其中,test为用户,用户将在2019429日失效(不可登录)
    
    chage -d 2019-06-30 test
    ###设置test用户最后一次修改密码的日期为2019630日
    
    chage -d 0 test
    ###则代表该test用户需立即修改密码
    
    date -d”+45 days" -u 
    ###如果不知道时间可以用date查看 -u: UTC时间
    

    用户账户管理

    添加用户账号 useradd

    命令格式:
    useradd [选项] 用户名

    常用选项
    -u: 指定用户的UID号,要求该UID号码未被其他用户使用
    -d: 指定用户的宿主目录位置(当与-M一起使用时,不生效)
    -e: 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
    -g: 指定用户的基本组名(或使用GID号)
    -G: 指定用户的附加组名(或使用GID号)
    -M: 不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录
    -s: 指定用户的登录Shell

    useradd zhangsan
    id zhangsan
    
    tail -1 /etc/passwd
    tail -1 /etc/ shadow
    

    设置/更改用户口令 passwd

    命令格式:
    passwd [选项] 用户名

    常用选项
    -d: 清空指定用户的密码,仅使用用户名即可登录系统
    -l: 锁定用户账户
    -S: 查看用户账户的状态(是否被锁定)
    -u: 解锁用户账户

    echo  "123456" | passwd --stdin 用户名(zhangsan)
    ###调用管道符,给zhangsan 用户设置密码“123”,为了方便管理系统,passwd命令提供了 --stdin 选项 用于批量给用户设置初始密码
    

    修改用户账号的属性 usermod

    命令格式:
    usermod [选项] 用户名

    常用选项
    -l: 更改用户账号的登录名称(login Name)
    -L:锁定用户账户
    -U:解锁用户账户

    下列选项与useradd命令选项中的含义相同
    -u:修改用户的UID号
    -d:修改用户的宿主目录位置
    -e: 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式
    -g: 修改用户的基本组名(或使用GID号)
    -G:修改用户的附加组名(或使用GID号)
    -s:指定用户的登录shell

    删除用户账号 userdel

    命令格式:
    userdel [-r] 用户名
    添加 -r 选项时 ,表示连用户的宿主目录也一并删除

    id  zhangsan
    userdel -r zhangsan
    ls -ld /home/zhangsan
    

    组账号管理

    添加组账号 groupadd

    命令格式:
    groupadd [-g GID] 组账号名

    groupadd   -g 1200 market
    
    tail -1 /etc/group
    

    添加删除组成员 gpasswd

    命令格式:
    gpasswd [选项] 组账号名

    设置组账号密码(极少用)、添加/删除组成员

    常用选项
    -a: 添加用户到组
    -d:从组删除用户
    -A:指定管理员
    -M:指定组成员和-A差不多
    -r:删除密码
    -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

    useradd  mike
    gpasswd -a mike root       ###确认mike用户已加入root组
    groups mike
    gpasswd -d webmaster root      ###确认webmaster用户已退出root组
    正在将用户“webmaster”从“root”组中删除
    

    删除组账号 groupdel

    命令格式:
    groupdel 组账号名

    groupdelb market   ###删除组账号market
    grep "market" /etc/group
    

    用户账号文件与组账号文件

    用户账号的初始配置文件

    文件来源

    新建用户账号时,从/etc/skel目录中复制而来

    *主要的用户初始配置文件

    1. .bash_profile:
      示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH)并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath

    2. .bashrc:
      例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)每次修改.bashrc 后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的位置,使之生效
      一般会在.bashrc_profile 文件中显示调用.bashrc 登录Linux启动bash时会先去读取"~/.bash_profile " 文件,这样"~/.bashrc"也就得到执行了,你的个性化设置也就生效了 关于环境变量的读取顺序:
      用户登录->>加载~/.bash_profile–>bash_profile中配置了首先使 ~/.bashrc生效

    3. .bash_logout 用途:用户登出时执行的命令

      #~/.bash_logout
      #在当前用户登出时,打印出logout 和当前的时间 echo “logout,data”
      

      例子: 如果需要每个用户登出时都清楚输入的命令历史记录,可以在 /etc/skel/.bash_logout 文件中 添加:
      rm -f $HOME/.bash_history
      这样当用户在每次注销时.bash_history文件都会被删除

    组账号文件

    与用户文件相类似
    /etc/group 保存组账号基本信息
    /etc/gshadow 保存组账号的密码信息

    与组账号相关的配置文件也有两个,分是/etc/group和/etc/gshadow 前者用于保存 组账号名称、GID号 、组成员等基本信息 后者用于保存组账号的加密密码字窜等信息(但是很少用到)某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应从用户账号默认可能不会列出),多个组成员之间使用“,”(逗号)分隔

    grep “^root” /etc/group ### 检索root 组包括那些用户

    grep “root” /etc/group ### 检索那些组包括root用户

    查询账号相关信息的命令

    查询账号信息 groups

    groups 命令:

    查询用户所属的组

    groups [用户名]

    查询账号信息 id

    id 命令:

    查询用户身份标识

    id [用户名]

    查询账号信息 finger

    finger 命令:

    查询用户账号的详细信息

    finger [用户名]

    查询账号信息w、who、users

    w、who、users命令
    查询已登录到主机的用户信息

    通常使用tty来简称各种类型的终端设备,centos7系统 tty1表示图形界面,
    tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6 切换

    按Ctrl+Alt+F2登录 , 执行w命令 ,查看使用的终端就是 tty2

    user:登录用户名
    TTY:登录后系统分配的终端号
    From:远程主机名,即从那里登录的
    login@:何时登录
    IDLE:用户空闲时间,这是个计时器,一旦用户执行任何操作,改计时器就会被重置
    JCPU:和终端连接的所有进程占用时间 包括当前正在运行的后台作业占用时间
    PCPU:当前进程所占用时间
    WHAT:当前正在运行进程的命令行

    pst说明是用于远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早

    文件/目录的权限和归属

    访问权限

    读取r:允许查看文件内容、显示目录列表

    写入W:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

    可执行x:允许运行程序、切换目录

    归属

    属主:拥有该文件或目录的用户帐号

    属组:拥有该文件或目录的组帐号
    在这里插入图片描述
    如“drwxr-xr-x”和“-rw-r–r–”权限字段有四部分组成,各自的含义如下所述
    第一个字符:表示该文件的类型可以是 :d(目录)、b(块设备文件)、c(字符设备文件)
    “-”(普通文件)、字母“l”(链接文件)等
    第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限
    第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限
    第8~10个字符:表示其他任何用户(Other)对该文件的访问权限
    第11个字符:这里的“.”与SELinux有关,目前不必关注

    设置目录与文件权限chmod

    chmod命令

    chmod [ugoa] [+ - =] [rwx] 文件或目录...u、g、o、a分别表示属主、属组、其他用户、所有用户+ - =分别表示增加、去除、设置权限r、w、x分别表示读、写、运行权限
    

    chmod nnn 文件或目录...nnn表示三位八进制数
    

    常用选项

    -R:递归修改指定目录下所有子项的权限
    
    • 上述格式中,字符组合"[ugoa…] [±=] [rwx ]"或数字组合"nnn"的形式表示要设置的权限模式。其中,"nnn"为需要设置的具体权限值,如"755""644”等;而“[ugoa…] [±=] [rwx]"的形式中,三个组成部分的含义及用法如下所述。

    • "ugoa"表示该权限设置所针对的用户类别。"u"代表文件属主,"g"代表文件属组内的用户,"o"代表其他任何用户,"a"代表所有用户 (u、g、o 的总和)。

    • "±=“表示设置权限的操作动作。”+“代表增加相应权限,”-“代表减少相应权限,”=”代表仅设置对应的权限。

    • “rwx"是权限的字符组合形式,也可以拆分使用,如"r”"rx”等。

    设置文件和目录的归属chown

    1、chown命令

    chown 属主 文件或目录chown :属主 文件或目录chown 属主:属主 文件或目录

    2、常用选项

    -R:递归修改指定目录下所有文件、子目录的归属

    权限掩码umask

    1、umask作用:

    • 控制新建的文件或者目录的权限
    • 默认权限去除umask的权限为新建的文件或者目录的权限

    2、umask设置:umask 022 2、umask查看:umask 3、示例

    • 将umask设为000,新建目录或者文件,查看权限
    • 将umask设为022,新建目录或者文件,再查看权限
    [root@localhost <sub>] # umask 000[root@localhost </sub>]# mkdir /umask1
    [root@localhost <sub>]# ls -ld /umask1/drwxrwxrwx 2 root root 4096 313 17:02 /umask1/
    [root@localhost </sub>] # umask 022[root@localhost <sub>] # mkdir /umask2
    [root@localhost </sub>]# ls -ld / umask2/drwxr-xr-x 2 root root 4096313 17:03 /umask2/
    

    总结

    用户账号管理(useradd,passwd、usermod、userdel)
    组账号管理(groupadd、gpasswd、groupdel)
    用户账号文件与组账号文件
    查询账号相关信息的命令(groups、id、finger、w)
    设置目录与文件权限(chmod)
    设置目录与文件归属(chown)

    展开全文
  • 特权账号安全; 口令安全; 特权账号安全管理现状 账号安全管理需求 口令管理解决方案等
  • 数据库账户管理

    千次阅读 2020-08-24 00:39:28
    账户管理 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crud MySQL账户体系:根据账户所具有的权限的不同,...
  • Rabbitmq 安全账号管理方案

    千次阅读 2022-03-07 21:28:47
    第一方案 创建与业务相关的账号及vhost...只对其相关联的应用有管理的权限 风险:目前的线上连接rabbitmq 的账号大多是administrator 角色的账号,如果修改为低级别的权限,如果交叉访问vhost,必然会有权限问题; rabb
  • c++链表——银行账户管理系统

    千次阅读 2021-11-06 23:24:28
    模拟某银行活期储蓄账户管理。该银行有许多账户,每个账户的存取款或转账的流水账单操作次数无法预估,故皆采用链表进行处理。 现需要编写一个程序处理并保存每个账户的流水账单。每个账户的信息主要有:银行账号...
  • Ubuntu 账户管理

    千次阅读 2020-12-30 13:14:34
    Ubuntu 账户管理 Ubuntu 默认不能直接用root帐户登录,必须从第一个创建的用户(安装时创建)通过su或sudo来获得root权限。 一、 sudo(Super User Do) sudo + 直接运行提示无权限的命令 不是所有命令都能用sudo...
  • 账户管理界面

    2014-11-25 14:31:13
    QML账户资源管理界面,一般通用的账户管理平台,源代码实现,特效比较不错
  • 账号管理器源码
  • git 本地多账号管理

    2021-12-31 02:06:07
    只是考虑commit 和 push的账户那么可以不修改配置文件,即config文件 操作如下: git config --global user.name "xxx" git config --global user.email "xxx" global标识符可以不加,也就是local的,只对当前目录...
  • Rabbitmq账号管理

    2021-02-24 09:11:07
    赋予新增用户为管理员权限 rabbitmqctl set_user_tags newadmin administrator Setting tags for user "newadmin" to [administrator] ... 设置账号权限 rabbitmqctl set_permissions -p / newadmin "." "."
  • 前言 一、何为账户管理? 二、账户管理的重要性 三、浅析设计方法
  • 抖老板(抖音多账号管理系统)

    千次阅读 2021-03-23 14:21:50
    抖老板功能强大齐全,操作起来也十分简单,可以帮助用户同时管理多个抖音账号,支持实时查看账号的相关信息,并进行数据管理分析,提供抖音内容自动发布和管理的功能,支持快速登录抖音后台的操作,是用户打造高质量...
  • JAVA练习题---银行账户管理系统

    千次阅读 多人点赞 2022-03-18 15:56:24
    项目描述:这是一一个银行账户管理系统,用户可以操作自己的银行账户. 项目实施方式:这是一个同步练习,随着Java 课程的深入,这个项目将趋于完整,学员的任务是随着知识点的深入,完成 每一个进阶的项目要求。 1. ...
  • 设计一个银行账户管理系统

    千次阅读 多人点赞 2020-08-01 19:30:52
    银行账户管理系统,使用HashMap函数做出来要比较容易一些,而我没有用到哈哈,这个系统开始搞的时候,还没有学到hashMap那儿,,,血亏 Java萌新上路,希望各位大佬猿,多多指教,评论区见呦???????????????????????...
  • SAP 用户账号管理系统

    2021-01-17 00:20:57
    SAP 用户权限管理系统(SAP License优化管理,SAP软件资产管理)产品是应用于SAP系统权限风险控制及注册用户账号管理为目标的SAP软件资产精益化管理方案。 关键字:SAP License、 SAP USMM 审计、 SAP SLAW 审计...
  • 银行账户管理

    2013-05-22 22:29:03
    完成银行账户的基本操作,包括存钱、取钱、获取账户名、开账户、关账户等操作
  • 银行账户管理系统银行账户管理系统银行账户管理系统银行账户管理系统
  • 本文实例讲述了Mysql账户管理原理与实现方法。分享给大家供大家参考,具体如下: 账户管理 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行...
  • 银行账户管理体系总结

    千次阅读 2022-04-21 16:20:14
    对新人来说,学习完后对账户体系的基本框架有初步认识,...对职场人来说,如果想吃透账户体系,在传统银行经营管理中最大化发挥账户体系的作用,或在金融科技创新中构建“客户为中心”的服务体系,或许本文能扩展思路。
  • centos用户账户管理

    2020-08-04 11:58:14
    1.1 用户账户管理 加固项目名称 禁用默认账户 加固说明 及时删除多余的、过期的帐户,避免共享帐户的存在,因为多余的账户和默认账户容易导致恶意用户和非授权用户直接通过这些账户获取系统的访问权限。例如adm, lp...
  • Linux账户管理详解

    千次阅读 2022-01-13 15:47:15
    组用户和组相关配置文件/etc/passwd文件/etc/shadow文件/etc/group文件/etc/login.defs文件/etc/default/useradd文件/etc/skel文件账户管理相关命令组管理命令:groupadd命令:newgrp命令:groupdel用户管理命令:...
  • C++基于ATM的个人银行账户管理系统

    千次阅读 多人点赞 2020-05-07 17:15:54
    C++基于ATM的个人银行账户管理系统
  • 谷歌账号管理服务by Ayusch Jain 通过Ayusch Jain 如何让Google的工作管理器为您服务 (How to make Google’s Work Manager work for you) 该文章最初发布在这里 (The article was originally posted here) ...
  • 石器时代账簿编辑器,可以设置账户、新增、删除等操作!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 690,358
精华内容 276,143
关键字:

账号管理