• 关于权限对于文件的说明
    • r(4):可读,表示可以使用文本查看命令,cat,more,less;
    • w(2):表示可以编辑或者删除这个文件;
    • x(1):可执行文件在命令提示符下当作命令提交给内核执行;
  • 关于权限对于目录的说明:
    • r(4):表示可以对这个目录执行ls,用于列出里面的文件;
    • w(2):表示可以在这个目录里面创建文件,但是不一定可以删除文件;
    • x(1):表示可以使用cd,切换进入这个目录,使用ls -l查看这里面的文件;
  • 权限: 是对于计算机资源的一种控制策略,用于方便资源的管理,在权限的基础上进一步引入了用户和组的概念,用户是获取资源的标识.组同样也是标识符, 进程是用户操作计算机的代理, 进程以发起人的身份进行, 也是有权限的.称为进程的安全上下文(secure context),进程以及进程的权限是交给内核进行管理的;
  • 用户管理
  • 用户概念:用户是对于资源获取的一种身份标识;
    • 用户使用UID进行用户名和系统标示符 /etc/passwd;
    • 用户组使用GID进行管理/etc/group;
    • 用户使用的默认的shell也在/etc/passwd,这个文件里面的密码字段是加密存储,使用影子口令/etc/shadow里面;
    • 用户组也是有密码的/etc/gshadow里面;
  • 用户的类别:
    • 管理员:UID0;
    • 普通用户:(1-65535)
      • 系统用户:1-499:系统用户是用来运行后台进程的,这类用户的关乎系统安全这类用户不需要登陆系统;
      • 一般用户:500-60000,一般用户,和系统进程无关的某些进程,这类用户需要登陆系统并且获得资源;
  • 用户组的类别:
    • 基本组(默认组):用户创建的文件,文件的属主是这个用户,属组是这个用户的私有组(基本组);
    • 私有组:在创建用户的过程中,如果没有指定组,那么就会创建一个和用户同名的用户的基本组,也就是这个用户的私有组;
    • 附加组:额外组,表示用户默认组以外的其他的组;
  • 在进程执行访问某个资源时,首先确定这个进程的属主,并且确定权限,其次确定所访问资源的权限;通常来说进程的属主属组是进程发起者的属主和属组,与这个可执行文件的属主,属组无关,但是文件的权限确定了进程的发起者是否有权限执行这个文件;
  • 例如:tom 执行/bin/ls 对于这个文件来说属主,属组仍然是root,tom属于其他人身份,但是这个进程的属主和属组仍然是tomroot无关,也就是说/bin/ls是可执行文件,这个可执行文件存在属主和属组,进程的属主是进程打发起者,进程的属组是进程发起者的基本组;
  • /etc/passwd
    用户以及权限管理的相关知识
    • name:
      • This is the user's login name.It should not contain capital letters;
    • password:
      • This is either the encrypted user password,an asterisk (*), or the letter 'x'. (See pwconv(8) for an explanation
    • UID :
      • 表示用户的UID;
    • GID :
      • 表示用户的基本组ID号,附加组在/etc/group里面;
    • GECOS :
      • 表示可选字段,用户的一些附加信息,住址.邮箱;
    • HOME DIR :
      • 表示用户的家目录;
    • SHELL :
    • 表示用户的默认shell,多数为/bin/bash,其中/sbin/nologin表示不允许登录,在/etc/shells里面包含了大多数合法的shell;
  • /etc/shell:
    用户以及权限管理的相关知识
  • /etc/shadow
    用户以及权限管理的相关知识
    • login name:表示登录名,It must be a valid account name,which exist on the system;
    • encrypted password:表示加密后的密码存放位置;,例如:$6$G3buDlaTjGIocoB0$0ReC23TPiaOIpJQ8RgOEgQ0WsEEFX.wlSEe0OlZWCrflF0vJ2WSo,两个$number$:表示的含义是加密使用的算法;如果为1,表示使用的是MD5加密算法,之后的$G3buDlaTjGIocoB0$,表示的是加盐,也就是一些杂质信息,对于包含这种杂质信息的密码验证过程,首先加入者写杂质信息,然后进行密码的验证;其中!!表示这个用户是被锁定的,也就是不能够被登录;
    • date of last password change:表示表示从1970年到最近一次密码修改时间的天数;
    • minimum password age:表示密码最小使用期限,也就是两个密码修改时间之间的间隔,0表示不进行限定;
    • maximum password age:最长密码使用期限,也就是之后必须进行密码更改;
    • password warning period:密码离过期还有多就向用户进行警告;
    • password inactivity period:密码非活跃期限,也就是在登录之后,必须进行密码更改;
    • account expiration date:表示这个用户的最长使用期限,也就是禁止使用这个用户的;
    • reserved field:表示保留的字段;
  • /etc/group:
    用户以及权限管理的相关知识
  • 上面的信息分别是组名,密码占位符号,以及组ID,以这个组为附加组的用户列表;
  • 对一用户的添加过程就是在/etc/passwd,/etc/group,/etc/shadow三个文件里面添加信息
    用户以及权限管理的相关知识
  • 如果更改密码,那么密码占位符号就会发生改变
    用户以及权限管理的相关知识
  • 对于添加用户的默认的信息来自于/etc/default目录里面的useradd这个文件的
    用户以及权限管理的相关知识
  • GROUP:
  • HOME:表示在这个指定的目录里面创建家目录;
  • INACTIVE:密码过期后的宽限时间;-1表示永不过期;
  • EXPIRE:表示用户的过期时间;未指定表示永远不过期;
  • SHELL:表示默认的SHELL;
  • SHELL:指定的是/etc/skel,里面的文件表示的是bash或者其他shell的配置文件;
  • /etc/login.defs:创建用户过程中,密码加密原则,是否创建家目录,是否删除私有组,UID,GID等设定;

  • 用户管理类命令

  • useradd:

    • 用户建立的过程就是在和用户管理相关文件里面写入内容的过程;
    • -u UID:用于手动指定UID,一般用户UID 是需要大于500,并且不能够重复,一般来说用户的UID和默认组的GID是相同的,但是由于手动指定的原因可能出现不同的情况,这种用户就会被视为特殊用户,在权限的设定上是会出现不同的;
      用户以及权限管理的相关知识
    • -g GID/GIDNAME:可以用于指定基本组ID,前提是这个组必须首先存在,并且只能够有一个;
      用户以及权限管理的相关知识
    • -G GID/GIDNAME:用于指定用户的额外组或者附加组,必须存在,可以有多个;
    • -c "COMMAND" :表示添加用户的注释信息

    • -d pathToSomeWhere:表示指定用户的家目录,在指定用户家目录的过程中,这个目录必须不存在就会出错;
      用户以及权限管理的相关知识

    • -s ShellName:Shell的路径一定是在/etc/shell里面的shell;
      用户以及权限管理的相关知识
    • -m:如果用户的家目录不存在,就强制为用户创建家目录;
    • -k:需要和-m一起使用,用于将/etc/skel里面的文件复制到用户的家目录里面去;
    • -M:不给用户创建家目录,即使/etc/login.defs里面设定用户应该存在家目录,也不进行创建;
      用户以及权限管理的相关知识
    • -r:表示用于创建一个系统用户(1-499),对于系统系统用户来说是没有家目录的;
  • pwck:
  • 用于验证用户和认证信息的完整性
    用户以及权限管理的相关知识
  • userdel [OPTION] USERNAME:用于删除一个用户
    • -r:如果在删除用户时,没有指定任何选项,用户的家目录是不会被删除的,用于删除用户以及删除用户的家目录;
  • id:
    • 用于查看哟农户的帐号信息,不见选项,表示查看当前用户的家目录;
    • -u:用于查看用户的UID;
    • -g:表示查看用户的GID;
    • -G:表示查看用户的附加组;
    • -n:表示不用于显示数值,而是显示名称;
  • usermod:
    • 用于修改用户帐号的某些属性,类似于useradd,选项也是相同的;
    • -u UID
    • -g GID:用于更改用户的基本组,基本组必须存在;
    • -G GID:用于更改用户的附加组,这个是存在副作用的,如果用户已经存在附加组,使用这个命令进行了指定,之前的附加组就没有了;
    • -a:和大写G一起使用表示追加附加组,而不是删除原来的附加组;
    • -c:用于添加注释信息;
    • -d:用于修改家目录,对于用于制定了新的家目录,原来目录里面该用户创建的文件,就没有办法进行访问;
    • -m:和-d选项使用,可以用于移动原始家目录里面的内容;
    • -l:可以用于更改用户的登录名;
    • -s:用于更改用户的默认登录shell;
    • -e:用于更改用户的过期时间;
    • -f:用于指定用户的非活动时间;
    • -L:用于锁定用户帐号;
    • -U:用于解锁用户帐号;
  • passwd:
    • 普通用户只能够用于修改自己的密码,管理员可以用来修改其他人的密码;
    • --stdin:表示从标准输入读取密码,echo "passwd" | passwd --stdin username;
    • -u:用于解锁用户帐号;
    • -n:表示密码最短使用期限;
    • -d:用于删除用户的密码;
  • chsh:
    • 用于更改用户的默认shell;
  • chfn:
    • 用于更改finger,表示的是注释信息
  • finger:
    • 用于检索用户信息的程序,可以用于检索远程用户的信息
  • change:

    • 用于改变用户密码过期时限
    • -b:用于指定密码最近修改时间;
    • -m:密码最短使用时间;
    • -M:密码最长使用时间;
    • -I:非活动时间;
    • -E:表示密码过期时间;
    • -W:表示密码警告时间;
  • 组管理命令

  • groupadd:
    • -g GID:用于添加组,并且指定GID,大于 500ID;
    • -r:用于添加系统组,通常是1--499
    • -s:可以用于指定shell;
  • groupdel:
    • 用于删除某个组;
  • groupmod:
    • -g GID:用于修改GID;
    • -n GIDNAME:用于修改组名;
  • gpasswd:

    • 用于给组添加密码,用于创建文件的属组是用户的基本组,可以方便无关的用户在知道密码的时候进行登录
  • newgrp:

    • 表示登录到一个一个已经创建的组里面,为了安全需要密码,在登录和自己用户无关的组时,是需要密码的,登录自己的基本组和附加组是不需要密码的,登录这个组成功,用户的基本组就会改变,在使用exit,用户的基本组就会切换回来;但是在登录到其他组创建的文件的基本组仍然是登录到的组;这个命令适用于临时切换用户的基本组,创建的文件为登录的组,使用exit退出;
  • 权限管理
  • chown:
    • chown USERAME file,...
    • 用于改变文件,目录的属主,只有管理员才有这个权限,如果对于目录进行权限更改,里面文件的权限是不会改变的;
    • -R:用于递归修改里面的文件和目录的权限;
    • --reference=/path/to/somefile,表示将文件的所有权改为和somefile一致;
    • chown USERNAME:GRPNAME file,....:表示用于修改属主和属组;
    • chown USERNAME.GRPNAME file,...:表示同时用于修改属主和属组;
  • chgrp:
    • -R:同样表示支持递归进行修改;
    • -reference=/path/to/somefile:表示将文件的属组改为和somefile一致;
  • chmod:

    • 用于更改文件的权限,rwx这三种权限;
    • -R:用于实现对于目录以及目录里面的内容进行递归修改;
    • --refernece=/path/to/somefile:表示将文件的权限更改为和参考文件一样;
    • 修改用户的权限:chmod 777 | 644 FILENAME 默认的权限为是从前面补0开始的;
    • 修改某个或者是某些用户的权限:这里修改权限不可以使用数字,三类用户为u g o a(表示所有用户权限):chmod 用户类别=权限,多个之间使用,隔开;
    • 修改某类用户的某为或者是某些权限:chmod u | g | o | a +| - |r | w | x FILENAME
  • umask:

    • 关于文件和目录的默认权限,也就是用户在创建文件和目录时是存在默认权限的,对于Linux文件是没有执行权限的,在用户创建目录或者文件时,目录时使用777-umask,创建文件时使用666-umask,对于文件来说默认是没有执行权限的,但是对于目录来说是存在执行权限的;
    • 设定umask的方式umask 022;
    • 关于umask 023的两个题:
      • 1.文件:666-023=643,对于这个来说,真实的结果是644,对于文件默认来说是没有执行权限的,如果计算出来存在执行权限,就会默认加1,结果为644;
      • 2.目录:777-023=754:这个没有特殊的,权限就是这个;
    • umask:默认的配置文件在/etc/bashrc,可以通过这个文件进行更改,虽然可以通过命令的方式进行更改,命令更改的方式在退出当前shell时,就会失效;
  • 用户登录:
    • 用户角度分类:
      • 登录式:户通过某终端登陆的, 使用su – username登陆的,
      • 非登录式:su username 登陆的属于非登陆式 shell, 图形终端中打开的命令窗口, 自动执行的 shell脚本;
    • bash的配置文件:
      • 作用范围:
        • 全局配置文件:是对于所有的的用户都生效的配置文件
          • /etc/rpofile, /etc/profile.d/*.sh /etc/bashrc
        • 个人配置:是对于单个用户生效的,一般是位于用户的家目录底下的;
          • ~/.bash_profile, ~/.bashrc
      • 作用:
        • profile类的文件:
          • 设定环境变量;
          • 运行命令或者脚本;
        • bashrc类环境变量:
          • 设定本地变量,定义命令别名;
    • 如果全局和个人的配置不一样,以个人的为准,作用范围越小的越有用;
    • 登录式shell读取配置文件的顺序:
      • etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc -->/etc/bashrc;
    • 非登录式shell读取配置文件:
      • ~/.bashrc -->/etc/bashrc -->/etc/profile.d/*.sh;
  • su -su切换的区别就是su -是全切换读取配置文件,使用户自己的配置文件,但是su仅仅读取全局的配置文件进行切换;
  • 手动添加用户的过程:
    用户以及权限管理的相关知识
  • 三个文件分别添加的内容为
    用户以及权限管理的相关知识
    用户以及权限管理的相关知识
    用户以及权限管理的相关知识
  • 加密一段密码使用hive能够登陆
    用户以及权限管理的相关知识
  • 这个用户就是可以登陆的
    用户以及权限管理的相关知识

相关文章:

  • 2021-07-03
  • 2021-07-07
  • 2022-12-23
  • 2021-10-27
  • 2021-09-03
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-09
  • 2021-10-26
  • 2021-11-10
  • 2021-12-14
  • 2021-09-19
相关资源
相似解决方案