Linux用户管理及文件权限

一、Linux用户管理

       Linux系统不同用户权限不一样。

       root用户:此用户是唯一的,且拥有系统的所有权限。

       普通用户

       虚拟用户

       在Linux中,用户有自己的UID身份账号且唯一

       在Linux系统中UID为0,就是超级用户,如要设置管理员用户,可以修改UID为0,建议使用sudo

        系统用户UID为1~999,Linux安装的服务程序都会创建独有的用户,负责运行

        普通用户UID从1000开始:由管理员创建(CentOS 7),最大值1000~60000范围

        UID 用户id号;GID用户组id号;root用户、组id号都为0

   1. 常用命令解释器

        /bin/sh   默认

        /bin/bash 默认

        /sbin/nologin 虚拟用户

   2. 用户信息配置文件

       /etc/passwd :用户信息

     

  

       /etc/shadow :用户密码信息

       /etc/group :用户组信息

       /etc/gshadow:用户组密码信息

       /etc/sk

  3. 用户管理命令

     

      1)useradd命令

          此命令用于Linux中创建新的用户。账号建好之后,再使用passwd设定账号密码,而userdel删除账号 

          -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
          -d<登入目录>:指定用户登入时的启始目录;
          -D:变更预设值;
          -e<有效期限>:指定帐号的有效期限;
          -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
          -g<群组>:指定用户所属的群组;
          -G<群组>:指定用户所属的附加群组;
          -m:自动建立用户的登入目录;
          -M:不要自动建立用户的登入目录;
          -n:取消建立以用户名称为名的群组;
          -r:建立系统帐号;
          -s<shell>:指定用户登入后所使用的shell;
          -u<uid>:指定用户id。

      创建用户流程:

       a. useradd user_account

       b. 系统读取/etc/login.defs(用户定义文件),和/etc/default/useradd (用户默认配置文件)两文件中定义的规则创建新用户

       c. 向/etc/passwd 和/etc/group 文件中添加用户和用户组信息,向/etc/shadow和/etc/gshadow中添加密码信息

       d. 根据/etc/default/useradd文件中配置的信息创建用户家目录

       e. 把/etc/skel 中所有的文件复制到新用户家目录中

      

      

     创建用户有关的目录/etc/skel

        此目录存放新用户需要的基础环境变量文件,添加新用户时,这个目录下所有文件自动被复制到新家目录下,且默认是隐藏文件,以点开头的

     

    

    

    

   

    -D参数用来修改配置文件/etc/default/useradd 文件中的默认值

    useradd -D 参数选项

   

    2)usermod命令        

          此命令用于修改系统已经存在的用户信息,只能修改未使用中的用户

    3)userdel命令

          删除用户与相关文件(建议注释/etc/passwd用户信息而非直接删除用户)

         userdel (选项)(参数)

         -f:强制删除用户,即使用户当前已登录

         -r:删除用户的同时,删除与用户相关的所有文件

        

   4)groupadd命令

        此命令用于创建一个新的工作组,新工作组信息将被添加到系统文件中     

        语法
        groupadd - 建立新群组
        groupadd [ -ggid [ -o ]] [ -r ] [ -f ] group [[ ]]

        选项
           -g:指定新建工作组的id;
           -r:创建系统工作组,系统工作组的组ID小于500;
           -K:覆盖配置文件“/ect/login.defs”;
           -o:允许添加组ID号不唯一的工作组。

        

      5)groupdel命令

           删除用户组

       

      6)passwd 命令

           passwd命令修改用户密码和过期时间等,root可以修改普通用户      

           语法
           passwd(选项)(参数)
           选项
           -d:删除密码,仅有系统管理者才能使用;
           -f:强制执行;
           -k:设置只有在密码过期失效后,方能更新;
           -l:锁住密码;
           -s:列出密码的相关信息,仅有系统管理者才能使用;
           -u:解开已上锁的帐号。
           -i:密码过期多少天后禁用账户
          -x:设置x天后可以修改密码
          -n:设置n天内不得改密码
          -e:密码立即过期,强制用户修改密码
          -w:用户在密码过期前收到警告信息的天数

       

       

         批量更新密码命令

         a.查看当前机器的用户信息

             tail /etc/passwd

         b.批量改密码,ctrl + d结束输入

            chpasswd

      7)  用户查询相关命令

            id 命令

            id命令用于检查用户和组以及对应的uid,gid等信息

      8)whoami、who、w、last、lastlog

            whoami:显示可用于查看当前登录用户

             w:显示当前已登录的用户

          

            last、lastlog查看用户详细的登录信息

            last:命令显示已登录的用户列表和登录时间

            lastlog:命令显示当前机器所有用户最近的登录信息

         

         

     9)Linux用户身份切换命令

          su命令用于切换到指定用户

          root切换普通用户,无须密码

          普通用户切换其他用户,需要输出用户密码

         

        

         visudo命令

          用于编辑/etc/sudoers文件,且提供语法检测,用于配置sudo命令

         为oldboy用户配置sudo使用权

       

         sudo配置文件

      

        配置sudo目的在于即能让运维方便干活(权限不足问题),又不威胁系统安全

        sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。普通用户就不需要root密码即可使用root权限

        

        配置了/etc/sudoers文件后,可以对用户命令提权,sudo命令

        切换root执行操作,使用sudo su -,需要输入当前用户的密码

        

二、Linux文件权限

   1. 文件权限

       r :read可读,可以用cat等命令查看

       w :write写入,可以编辑或者删除这个文件

       x : 可以执行

       - : 没有权限

      

    2. 文件夹权限

       r : 可以对此目录执行ls列出所有文件

       w :可以在此目录下创建文件

       x :可以cd进入此目录或者查看详细信息

     

   3. 文件权限与数字转化

  

   4. chmod命令

       此命令用来变更文件或目录权限 

        

      操作对像

      u 文件属主权限
      g 同组用户权限
      o 其它用户权限
      a 所有用户(包括以上三种)

      权限设定

     + 增加权限
     - 取消权限
     = 唯一设定权限

    权限类别

     r 读权限
    w 写权限
    x 执行权限
    X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
    s 文件属主和组id
    i 给文件加锁,使其它用户无法访问

     

    

 5. chown命令

      此命令用来修改文件属组,属主信息

      chown 用户:组   filename/directory

      chown  :组      filename/directory

      -R,--recursive   递归处理所有文件及子目录

      -v,--verbose      为处理的所有文件显示诊断信息

    

 6. chgrp命令

     此命令用来改变文件及目录所属的用户组、其中组名可以是用户组的id,也可以是用户组的组名

    

 7. umask命令

     umask命令用来限制新文件权限的掩码,防止文件,文件夹创建的时候,权限过大。

     新文件创建时,其最初的权限由文件创建掩码决定

     umask默认配置在/etc/profile 61-64行

    

     语法

     -S :以字符的形式显示当前的掩码

     -p : 带umask开头以数字的形式显示当前掩码

    

     计算umask文件权限

     默认文件、文件夹权限减去umask值等于最终的权限值

     文件最大:666;文件夹最大:777

     注:默认创建的文件不得有执行权限

     Linux默认权限:文件默认644;目录默认755

   

 8. chattr命令

    此命令用于更改文件的扩展权限,比chmod更改的rwx权限更底层

    参数

    -R:递归更改目录属性
    -V:显示命令执行过程

   模式
    + 增加参数
    - 移除参数
    = 更新为指定参数

    A 不让系统修改文件最后访问时间
    a 只能追加文件数据,不得删除
    i 文件不能被删除、改名、修改内容

  

 9. lsattr命令

     lsattr命令用来查看文件的第二扩展文件系统属性,结合chattr一起用    

    -R 递归地列出目录以及其下内容的属性.
    -V 显示程序版本.
   -a 列出目录中的所有文件,包括以`.'开头的文件的属性.
   -d 以列出其它文件的方式那样列出目录的属性, 而不列出其下的内容.
   -v 显示文件版本.

  

posted @ 2020-04-07 00:06  出水芙蓉·薇薇  阅读(726)  评论(0编辑  收藏  举报