zoukankan      html  css  js  c++  java
  • Linux:Day4(下) 用户及组管理

    Linux用户:Username/UID

      管理员:root,0

      普通用户: 1-65535

        系统用户:1-499

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

        登陆用户:500+

          交互式登录;

    Linux组:Groupname/GID

      管理员组:root,0

      普通组:

        系统组:1-499

        普通组:500+

    Linux安全上下文:

      运行中的程序:进程(process)

        以进程发起者的身份运行;

      进程所能够访问的所有资源的权限取决于进程的发起者的身份;

    Linux组的类别:

      用户的基本组(主组):

        组名同用户名,且仅包含一个用户:私有组

      用户的附加组(额外组): 

    Linux用户和组相关的配置文件:

      /etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);

      /etc/group:组及其属性信息;

      /etc/shadow:用户密码及其相关属性;

      /etc/gshadow:组密码及其相关属性;

    /etc/passwd:

      account:password:UID:GID:GECOS:directory:shell

    /etc/group:

      group_name:passwd:GID:user_list

      组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)

    /etc/shadow:

    root:$6$pX89hXMLJ11VQTuV$efkL761n04ambIMkFwIsS2UvAmNU9ZMJMJwBje1N4HD0.alpduURuv9zF3S52W62wUqXSkQk2.VwXGQO.IhgZ.:17747:0:99999:7:::

    用户名:$加密方式$杂质$加密后的密码:最近一次更改密码的日期:密码的最小使用期限:最大使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段

    用户和组的相关管理命令:

      用户创建:useradd

        useradd [options] LOGIN

          -u UID:[ UID_MIN, UID_MAX ],定义在/etc/login.defs

          -g GID:指明用户所属基本组,可为组名,也可以GID;组必须事先存在。可以通过命令id USERNAME查看。

          -c "COMMENT":用户的注释信息;

          -d /PATH/TO/HOME_DIR:以指定的路径为家目录;

          -s SHELL:指明用户的默认shell程序,可用列表在/etc/shells文件中;

          -G GROUP1 [, GROUP2, ...[, GROUPN]]]:为用户指明附加组,组必须事先存在;

          -r:创建系统用户;

        默认值设定:/etc/default/useradd文件中

          useradd -D

            -s SHELL

          示例:

            useradd -D -s /bin/tcsh  修改默认值的,/etc/default/useradd 

      示例: 

        [root@localhost ~]# tail -1 /etc/shadow
        tom:!!:17776:0:99999:7:::    两个!!表示账号处于禁用状态,linux是禁止空密码用户登陆的。

      练习:创建用户gentoo,附加组为distro和linux,默认shell为/bin/csh,注释信息为“Gentoo Distribution";

     创建组:groupadd

      groupadd [options] group_name

        -g GID:指明GID号;

        -r:创建系统组;

    查看用户相关的ID信息:id

      id [OPTION]... [USERNAME]

        -u:UID

        -g:GID

        -G:Groups

        -n:Name

    切换用户或以其它用户身份执行命令:su

      su [OPTION]... [-] [USER [ARG]...]

        切换用户的方式:

          su UserName:非登录式切换,即不会读取目标用户的配置文件;

          su - UserName:登录式切换,会读取目标用户的配置文件,完全切换;

          Note:root su至其它用户无须密码;非root用户切换是需要密码;

        换个身份执行命令(账户不切换):

          su [ - ] UserName -c "COMMAND"

        选项:

          -l:“ su -l UserName" 相当于" su - UserName"

    用户属性修改:usermod

      usermod [OPTION] login

        -u UID:更改UID;

        -g GID:更改GID;

        -G GROUP1 [, GROUP2, ...[, GROUPN]]]:新附加组,原来的附加组会被覆盖;若保留原有的,则要同时使用-a选项,表示append

        -l login_name:新的名字;

        -L:lock指定用户;

        -U:unlock指定用户;

    给用户添加密码:passwd

      passwd [OPTION] UserName:修改指定用户的密码,仅root用户有权限。

      passwd:修改自己的密码;

        常用选项:

          -l:锁定指定用户

          -u:解锁指定用户;

          -n mindays:指定最短使用期限;

          -x maxdays:最大使用期限;

          -w warndays:提前多少天开始警告;

          -l inactivedays:非活动期限;

          --stdin:从标准输入接收用户密码;

            echo "PASSWORD" | passwd --stdin USERNAME  # 此种方式直接赋值,不需要确认。

          Note:/dev/null,bit buckets

             /dev/zero

    删除用户:userdel

      userdel [OPTION]... login

        -r:删除用户家目录;

    组属性修改:groupmod

      groupmod [OPTION]...group

        -n group_name:新名字

        -g GID:新的GID

    组删除:groupdel

      groupdel GROUP

    组密码:gpasswd

      gpasswd [OPTION] GROUP

        -a user:将user添加至指定组中;

        -d user:删除用户user的

        -A user1,user2,....:设置有管理权限的用户列表

      newgrp命令:临时切换基本组;

        如果用户本不属于此组,则需要组密码;

    权限管理:

      文件的权限主要针对三类对象进行定义:

        owner:属主,u

        group:属组,g

        other:其它,o

      每个文件针对每类访问者都定义了三种权限:

        r:Readable

        w:Writable

        x:eXcutable

        文件:

          r:可使用文件查看类工具获取其内容;

          w:可修改其内容;

          x:可以把此文件提请内核启动为一个进程;

        目录:

          r:可以使用ls查看此目录中的文件列表;

          w:可在此目录中创建文件,也删除此目录中的文件;(能否删除一个文件,取决于此)

          x:可以使用ls -l 查看此目录中文件列表,可以cd进入此目录;

         

      修改文件权限:chmod

        chmod [OPTION]... OCTAL-MODE FILE...

          -R:递归修改权限

        chmod [OPTION]... MODE[,MODE]... FILE...

          MODE:

            修改一类用户的所有权限:  # 此种方式为全部修改,不涉及的改为无。

              u=r  # 修改后文件只有读权限,拥有的其它权限将修改为无

              g=

              o=

              ug=

              a=

              u=,g=

            修改一类用户某位或某些位权限,无法同时执行+-操作,如果操作中包含加和减使用上面修改方法。  # 此种方式为部分修改,不涉及的不修改。

              u+rw

              u-

              ug+

        chmod [OPTION]... --reference=RFILE FILE...

          参考RFILE文件的权限,将FILE的权限修改为同RFILE;

    修改文件的属主和属组:

      仅root可用;

      修改文件的属主:chown  注:这个命令也可以修改属组

        chown [OPTION]... [OWNER][:[GROUP]] FILE...

        用法:

          OWNER

          OWNER:GROUP

          :GROUP

          Note:命令中的冒号可用.替换

        示例:chown :root fstable 

          -R:递归

        chown [OPTION]... --reference=RFILE FILE...

    修改文件的属组:chgrp

      chgrp [OPTION]... GROUP FILE...

      chgrp [OPTION]... --reference=RFILE FILE...

    文件或目录创建时的遮罩码:umask

      FILE:666-umask

        Note:如果某类用户的权限减得的结果中存在x权限,则将其权限+1

      DIR:777-umask

      umask:查看

      umask #:设定

  • 相关阅读:
    jQuery
    基于Js实现的UrlEncode和UrlDecode函数代码
    利用缓存、Timer间隔时间发送微信的实例,很有用的例子
    VisualStudio 自动排版等 快捷键
    正则表达式判断手机号码属于哪个运营商
    .Net常用方法汇总
    .NET中的三种Timer的区别和用法
    C# List和String互相转换
    Tempdb--TempDB Basic
    Tempdb--查看tempdb使用的脚本
  • 原文地址:https://www.cnblogs.com/sq5288/p/9575600.html
Copyright © 2011-2022 走看看