bash特性及用户和组管理

author author     2022-09-26     590

关键词:


bash 特性及用户和组管理

 上篇博文中总结了bash的一些特性,这次做补充:

 bash变量

  变量:一段由名称的连续的内存空间;这段内存空间的名称,就是变量名,在这       段内存空间存储数据   就是变量值;

  程序=指令+数据

  数据:文件,存在值;

  向内存空间存储数据的过程,就是复制操作,赋值符号“=”;

  变量的类型: 123 -- 整型:01111011

  -- 字符型:ASCII:3字节

  -- 字符型:UTF-8:9字节


  变量:

    强变量:使用之前必须事先予以声明;必须声明变量类型;

    弱变量:在使用之前无需声明,无需指明变量类型;(bash变量)


  变量的赋值方法:

    VARNAME=VALUE

    其含义:将某数值(VALUE)通过赋值操作(=)存储于特定的内存空间中              (VARNAME);


  bash中变量名称的命名规范:

  1.变量名只能以"_"或"字母"为起始字符,后面的其他字符可以是任意字母,数    字或下划线;

  2.变量名中的字母是大小写敏感的;

  3.命名的书写格式:

    全大写:HISTSIZE

    全小写:myvar

    驼峰式:MyNewVariable

    连接式:My_New_Var

 4.变量名要能做到见名知意;

 5.变量名不能与已知变量或bash的内置变量重复;


 bash中变量的分类:

   根据变量的作用范围来分:

 全局变量(环境变量):作用范围为整个shell进程,包括其子            shell;

       本地变量:作用范围为当前登录时打开的shell进程,不包括子shell;

 局部变量:作用范围仅仅是是当前程序段,一般用于函数;


   根据变量的声明方式来分:

 bash的内置变量:

 普通的内置变量:HISTSIZE ...

 位置参数变量:$0,$1,$2...

 特殊变量:$?,$#,$*,[email protected],$$....

 $?:展开为最近一次执行的命令的状态返回值(退出状态码)用以表示最          近一次执行命令是否成功;

 $#:不包括$0在内的其余的位置参数的个数,以十进制数字表示;

 $*:从$1开始展开为位置参数。当双引号引用展开的结果时,它展开为          特殊变量IFS的第一个字符分割的值;

 [email protected]:从$1开始展开为位置参数。当双引号引用展开的结果时,它展开为一          个单独的字符串;

 $$:展开为当前shell的进程标识;



  自定义变量:

 1.变量的声明和赋值;

 1):声明全局变量(环境变量):

   export VARNAME

   export VARNAME=VALUE技术分享

   declare命令:

   declare - Set variable values and attributes.

格式:declare [-aAfFgilrtux] [-p] [name[=value] ...]

常用选项:

  -a:声明索引数组(如果支持)

  -A:声明关联数组(如果支持)

  -i:声明整型变量

  -l:声明变量并将变量值中的字母转换为小写字母

  -u:声明变量并将变量值中的字母转换为大写字母

  -r:声明只读变量,该变量只能进行一次赋值操作

  -x:声明变量并将其导出为全局变量

   declare -x VARMNAME[=VARLUE]


2):声明本地变量:

   VARMNAME=VALUE技术分享

    也可以将局部变量转换为全局变量:技术分享


3):声明局部变量(多用于函数):

        local VARNAME=[=VALUE]


2:查看环境变量:

  set命令:

  查看和改变shell属性的值及查看shell变量的变量名和变量值;

        export命令:

  查看变量名称,也可以为变量赋值

  env命令;



     3:查看变量的值:

  echo ${VARNAME}


4.撤销变量的赋值及变量声明

   unset VARNAME 

有关于保存变量的shell配置文件:

通用配置文件:

   /etc/bashrc

   /etc/profile

   /etc/profile.d/*


私人配置文件:

   ~/.bashrc


   ~/.bash_profile


  注意:

  1.一般情况下,变量都是随用随声明,除非由必要,否则不建议修改配置文件     的内容。

  2.声明的变量在使用完以后,最好使用unset命令予以撤销。


 用户和组管理:

  1.用户账户

  2.组账户

  3.权限分配

  

  用户账户:实现操作者和计算机交互式操作的基础,是操作者的身份在满足了验          证条件之后的计算机系统中的映射;


  用户账户分类;

  超级用户(管理员):root

        普通用户:

  1.系统用户(非登录用户)

  为了保证安全,往往会让某些进程或服务必须以非管理员的用户身份         运行;这类非管理员用户称为系统用户;此类用户一般不允许登陆到         系统;

  2.登陆用户

  能够登陆进而获取资源访问权限并可以对资源进行操作的用户,可以         称为登录用户;


 用户账户的标识方式:

      用户登陆名称:

  操作者提供简单容易记的字符串标识;

  用户的数字ID(UID)

  为计算机操作系统提供标准的数字表示符号,0-2^32-1

           超级用户:

  用户名:root

  UID:0

       

   普通用户:

   1.系统用户:

   Centos 6-:1~499

   Centos 7+:1~999

   2.登陆用户

   Centos 6-:500+

   Centos 7+:1000+

 注意:6000+的用户UID通常需要用户自定义标识;



  名称解析:

用户名<-->UID


  用户名解析库:/etc/passwd

  操作系统的认证组件通过解析库实现认证机制,即验证登录用户是否         为已经存在的用户;


  用户认证库:/etc/shadow

  通过此前的解析库认定的用户是存在的,在经过认证库的认证,来证         明登陆用户就是其声明的用户;


        默认的认证机制:密码认证;

        密码复杂性的要求:

  1.尽量避免使用有规律或者来源于自字典中的字符串作为密码;

  2.密码要足够长,一般不到少于6个字符;

  3.密码要足够复杂,其中应该至少包括大写字母,小写字母,数字及           其它符号中的三类;

  4.不定期的更换。

  在Linux中,保存到认证库的密码是经过单向加密算法处理的;


  能够加密密码的算法:

  MD:

  MDS,Message Digest Version 5:消息摘要算法第五版;

  128位定长输出;


  SHA:Secure Hash Algorithm:安全的哈希算法;

  sha1:160加密输出

  sha224:

  sha256:

  sha384:

  sha512:默认的加密算法;


   salt:通过随机算法计算得到的随机数;

随机数的生成装置;

  /dev/random:仅仅从熵池中返回随机数;如果熵池中随         机数耗尽,进程会被阻塞


  /dev/urandom:首先试图从熵池中返回随机数,如果熵         池中随机数耗尽,则利用伪随机数生成器生成伪随机数;


     再认证库系统中密码的 最终形态:算法+salt+加密字符串;

  算法:$1~$6

  salt:$随机字符串

        加密字符串:$单项加密的结果;


  组账户:

       将具有某些相同或相似属性的用户联系在一起以便可以集中授权的容器

       组的分类;

  1.超级用户组

  2.普通用户组:

1)系统用户组

     2)登陆用户组



  组账户的标识方法:

  组账户名称:

  组账户ID(GID):

    超级用户组:0

    系统用户组:

          Centos 6-:1~499

    Centos 7+:1~999

    登陆用户组:

          Centos 6-:500+

    Centos 7+:1000+

        组名解析:

解析库:/etc/passwd

     认证库:/etc/shadow

        注意:组也需要密码加密保护;




       用户账户和组账户之间的关系:

    在Linux中,每个用户必须至少属于一个组;

    用户账户的GID标识被称为用户的主要组(基本组),Primary

    Group:每个用户必须要有主要组,且只能有一个;

          在主要组的基础上,用户可以和其他的组账户存在逻辑关系,此类           组称为用户的附加组,AdditionGroup:对于用户来说,此类组可           以没有,也可以由多个;






用户和组的管理命令:

   组账户的管理命令:

groupadd,groupdel,groupmod

   用户账户的管理命令:

useradd,userdel,usermod 

   认证相关的命令:

     passwd、gpasswd

   其他的相关命令:

     chage,chsh,finger,su,id


      与用户和组相关的命令:

1.groupadd

 groupadd - 创建一个新组

 格式:groupadd [Options...] group

 常用选项:

 -g GID:指定要创建的组的GID;

 -r:将组创建为系统组,此时应该保证GID在系统组范围内;


2.groupdel

 groupdel - 删除一个组

 格式:groupdel [Options...] group

       注意:如果某个组是某个用户的主要组,则该组不能删除;


3.groupmod

 groupmod - modify a group definition on the system

 格式: groupmod [Options...] group

 常用选项:

 -g GID:修改指定组的GID;

 -n GROUP_NAME:修改指定组的组帐户名称;


4.useradd

 useradd - 创建一个新用户或更新默认新用户信息

 格式:useradd [选项] username

useradd -D [选项]

 常用选项:

 -c, --commentCOMMENT:为用户添加注释信息;

 -d, --homeHOME_DIR:为用户指定家目录的路径;此目录不能事先在;

 -e, --expiredateEXPIRE_DATE:用户密码的过期的绝对时间                                 如:2018/01/01

 -f, --inactiveINACTIVE:为用户指定密码使用达到最大时间之后的宽                        限期;

 -g, --gidGROUP:为用户指明GID;如果不写此选项,系统会创建一个与          用户名相同的组并且将之设置为诶此用户的主要组;

 -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:为用户添加附加组;

 -m, --create-home:必须为用户创建家目录;

 -M:不为用户创建家目录;在创建系统用户时常用此选项;

 -r, --system:创建系统用户;

 -s, --shellSHELL:为用户指定默认的shell;

 -u, --uidUID:为用户指定UID;技术分享


     5.userdel

       userdel - 删除用户账户和相关文件

  格式:userdel [选项] username

  常用选项:

  -r, --remove:删除用户的同时删除用户的家目录及用户邮箱文件;


6.usermod

 usermod - 修改一个用户账户

 格式:usermod [选项] username

 常用选项:

 -c, --commentCOMMENT:修改用户的注释信息;

 -d, --homeHOME_DIR:修改用户的家目录;

 -e, --expiredateEXPIRE_DATE:修改用户密码过期的绝对日期;

 -f, --inactiveINACTIVE:修改用户密码过期之后的宽限期;

 -g, --gidGROUP:修改用户的主要组(GID);

 -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用户的附加组为此          列表中的组,如果同时使用了-a选项,则保留原有的附加组,将此          列表中的组追加至用户的附加组列表;

 -l, --loginNEW_LOGIN:修改用户的登录名;

 -s, --shellSHELL:修改用户的登录shell;

 -u, --uidUID:修改用户的UID;

 -L, --lock:锁定用户;

 -U, --unlock:解锁被usermod -L锁定的用户;技术分享


7.passwd

 passwd - update user‘s authentication tokens

 格式:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x              maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin]            [username]

 常用选项:

 -l, --lock:锁定用户;

 -u, --unlock:解锁用户;

 --stdin:通过标准输入接受密码,可以用于管道;

 -d, --delete:删除用户的密码,也可以用于解除用户锁定;

 -e, --expire:直接设置用户密码过期;

 -n, --minimum DAYS:用户密码的最短使用时长;默认值为0;

 -x, --maximum DAYS:用户密码的最长使用时长;默认值为99999;

 -w, --warning DAYS:用户密码过期之前多少天开始发送警告信息;

 -i, --inactive DAYS:用户密码过期之后的宽限期;

 -S, --status:查看用户密码的状态信息;


8.chage

 chage - 更改用户密码过期信息

 格式:chage [选项] username

 常用选项:

 -d, --lastdayLAST_DAY

 -E, --expiredateEXPIRE_DATE

 -I, --inactiveINACTIVE

 -l, --list

 -m, --mindaysMIN_DAYS

 -M, --maxdaysMAX_DAYS

 -W, --warndaysWARN_DAYS


9.chsh

 chsh - change your login shell == usermod -s 

 格式:chsh [-s shell] [-l] [-u] [-v] [username]


10.finger

  finger — user information lookup program

  格式:finger [-lmsp] [user ...] [[email protected] ...]


11.id

  id - print real and effective user and group IDs

  格式:id [OPTION]... [USER]

  常用选项:

  -u:显示用户的有效UID;

  -g:显示用户的有效GID;

  -n:显示名称;


12.su

  su - run a command with substitute user and group ID

  格式:su [options...] [-] [user [args...]]

  常用选项:

  -l, --login:以后面的用户身份登录到系统;

  -c "COMMAND":以前面指定的用户身份运行COMMAND;不进行身份登录         切换;   


  






























本文出自 “计算机基础” 博客,转载请与作者联系!

003-文本处理排序统计及bash特性用户组权限用户管理配置文件

l  1、文本处理命令1.)cat(concatenate):连接并显示tac:倒序显示文件-n(number):显示行号               -E(show-ends):显示行结束符2.)more、less:分屏显示mo 查看详情

用户和组管理权限及文件访问控制

  用户和组管理权限及文件访问控制  与用户账户和组帐户相关的文件:  1./etc/passwd  2./etc/group  3./etc/shadow  4./etc/gshadow  5./etc/default/useradd   查看详情

用户和组管理及权限设置(代码片段)

用户作用:用于管理Linux系统的文件用户分类超级用户:root一个Linux系统只能有一个超级用户,持有最高管理权限普通用户:一般只在用户自己的宿主目录下有完整的权限程序用户:用来维持系统或程序的正常运行,一般不允许... 查看详情

puppet用户和组资源管理(代码片段)

1.用户和组资源的特性:  1.1用户特性:            allows_duplicates 支持含有相同UID的用户。manages_aix_lam  用来管理AIX的LAM(LoadableAuthenticatio 查看详情

查找过滤及用户和组管理

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。Who|cut-d""-f1|sort-u650)this.width=650;"src="http://s5.51cto.com/wyfs02/M00/88/6B/wKioL1f3XAGC7ByHAAAY6ilvJqc653.png"title="1.png"alt="wKioL1f3XAGC7ByHAAA 查看详情

简述centos7系统用户和组的管理及配置

一、1.Linux中用户的类型超级管理员root,默认ID为0;超级管理员root默认ID0只能有一个普通用户除管理员以外用户创建的账户都是普通用户;默认ID500~60000程序用户管理Linux系统的应用程序使用;默认ID1~4992.组的类型基本组和附加... 查看详情

用户和组管理

一、用户配置文件和密码配置文件/bin/bash可以登录/sbin/nologin就算设置了密码还是无法登录etc/shawow专门存密码的和etc/passwd类似二、用户组管理groupadd增加组同时可以指定组的IDgroupadd-g1005grp2(centos7以上增加组需要1000以上,1000以内... 查看详情

用户和组管理类命令的使用方法及描述

(1)、创建组distro,其GID为2016;     groupadd-g2016distro(2)、创建用户mandriva,其ID号为1005;基本组为distro;     useradd-u1005-gdistro mandriva(3)、创建用户mageia,其ID号为110 查看详情

windows_learn002用户管理和组策略

windows_learn002用户管理和组策略内容总览 域用户与组的管理 用户和组 用户登录名 添加用户工具 在活动目录中使用组 为何使用组? 全局组GlobalGroupRules 域本地组DomainLocalGroupRules 通用组UniversalGroupRules 在域中使用组的策略 使用组... 查看详情

bash的常见特性及文本查看命令实战

bash的基础特性之一:bash有很多特性能辅助我们完成系统管理命令历史:shell进程会在其会话中保存此前用户提交执行过的命令~]#history我们这个命令第一能保存多少个?第二如果我们系统出现关机了,下次我们在重启以后这些命... 查看详情

用户和组管理

与用户有关的两个文件/etc/passwd和./etc/shadow/etc/passwd以冒号为分割为7段,第一段表示用户名,第二段表示密码,第三段表示用户的uid,第四段表示用户的gid,第五段表示用的解释说明(修改信息用命令chfn),第六段表示用户的家... 查看详情

11-用户及组管理.txt

回顾:文件管理命令,bash的基础特性,文件本管理命令文件管理命令:cp,mv,rmbash的基础特性,alias/unalias,glob(*,?,[],[^]),快捷键IO重定向、管道,标准输出重定向:>,>>标准错误重定向:2>,2>>&>,&>>COMMND... 查看详情

linux系列笔记-------用户账户和组管理详解及实用指令补充

...dn.net/Eterlove/article/details/120684556目录1.其他实用指令2.认识用户账户和组 查看详情

centos用户和组管理

用户和用户组及权限管理:一:基本概念linux是一个多任务(multi-task)多用户(multi-user)的操作系统,每个用户和用户组都有自己的ID号UIDGID,每个用户都有自己的家目录不能随意访问其他用户的家目录,管理员root除外。  ... 查看详情

网络操作系统第二章用户和组管理

本章小结  本章介绍了用户和用户的基本概念。讲解了在Windows Server2008中用户和组的创建、删除及其属性的修改。在Linux部分,首先通过图形配置工具介绍了Linux、中用户及组的相关属性,然后讲解了与用户和组相关的配置文... 查看详情

linux综合顺练(涉及管道,正则,重定向用户及组管理权限管理等相关知识点)(代码片段)

...合利用,涉及的知识点比较广泛,涉及的大概有"bash特性之管道","bash特性之重定向","grep命令与正则表达式的利用","linux下用户与组管理","linux下权限管理"等。下面给出上边提到知识点... 查看详情

bash的常见特性及文本查看命令

(一)bash的基础特性命令补全shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令;命令查找机制:shell首先会在内部命令中匹配查找,如果没有找到,则会在PATH环境变量设置的目录中,自左向... 查看详情

用户和组管理用户和组管理(代码片段)

Linux运维之路基础篇:(三)用户和组管理用户和组管理:实现资源分派Linux用户:root用户:UID为0普通用户:UID为1-65535系统用户:UID为1-499(RHEL7为1-999)登录用户:UID为500+(RHEL7为1000+)Linux组:将多个用户与权限相关联root组:... 查看详情