美文网首页
Linux命令行与Shell-----用户和用户组

Linux命令行与Shell-----用户和用户组

作者: Captain_tu | 来源:发表于2017-07-28 16:14 被阅读182次
    1. 所有用户信息

       cat /etc/passwd | grep user1  #xy:x:1000:1000:CentOS7:/home/xy:/bin/bash
      
      • 这些账户并不是真的用户。 这些账户叫作系统账户 , 是系统上运行的各种服务进程访问资源用的特殊账户

      • Linux为系统账户预留了500以下的UID值。 有些服务甚至要用特定的UID才能正常工作。为普通用户创建账户时, 大多数Linux系统会从500开始, 将第一个可用UID分配给这个账户( 并非所有的Linux发行版都是这样) 。

      • /etc/passwd格式:

        • 登录用户名
        • 用户密码
        • 用户账户的UID( 数字形式)
        • 用户账户的组ID( GID) ( 数字形式)
        • 用户账户的文本描述( 称为备注字段)
        • 用户HOME目录的位置
        • 用户的默认shell

        绝大多数Linux系统都将用户密码保存在另一个单独的文件中( 叫作shadow文件, 位置在/etc/shadow),只有特定的程序( 比如登录程序) 才能访问这个文件。

      • /etc/shadow文件为系统上的每个用户账户都保存了一条记录

          rich:$1$.FfcK0ns$f1UgiyHQ25wrB/hykCn020:11627:0:99999:7:::
        

        格式:

        • 与/etc/passwd文件中的登录名字段对应的登录名
        • 加密后的密码
        • 自上次修改密码后过去的天数密码( 自1970年1月1日开始计算)
        • 多少天后才能更改密码
        • 多少天后必须更改密码
        • 密码过期前提前多少天提醒用户更改密码
        • 密码过期后多少天禁用用户账户
        • 用户账户被禁用的日期( 用自1970年1月1日到当天的天数表示)
        • 预留字段给将来使用
    2. 添加新用户
      用来向Linux系统添加新用户的主要工具是useradd,useradd 命令使用系统的默认值以及命令行参数来设置用户账户。 系统默认值被设置在/etc/default/useradd文件中。可以使用加入了-D 选项的useradd 命令查看所用Linux系统中的这些默认值。

      • 默认情况下, useradd 命令不会创建HOME目录, 但是-m 命令行选项会使其创建HOME目录。系统会将/etc/skel(默认配置)目录下的内容复制到用户的HOME目录下;

      • useradd参数

          -c comment 给新用户添加备注
          -d home_dir 为主目录指定一个名字( 如果不想用登录名作为主目录名的话)
          -e expire_date 用YYYY-MM-DD格式指定一个账户过期的日期
          -f inactive_days 指定这个账户密码过期后多少天这个账户被禁用; 0 表示密码一过期就立即禁用, 1 表示禁用这个功能
          -g initial_group 指定用户登录组的GID或组名
          -G group ... 指定用户除登录组之外所属的一个或多个附加组
          -p passwd 为用户账户指定默认密码
          -n 创建一个与用户登录名同名的新组
          -r 创建系统账户
          -s shell 指定默认的登录shell
          -u uid 为账户指定唯一的UID
        
    3. 删除用户 userdel

    4. 修改用户

      1. usermod
        usermod 命令是用户账户修改工具中最强大的一个。 它能用来修改/etc/passwd文件中的大部分字段,参数大部分跟useradd 命令的参数一样( 比如, -c 修改备注字段, -e 修改过期日期, -g 修改默认的登录组)

          -l 修改用户账户的登录名。
         -L 锁定账户, 使用户无法登录。
         -p 修改账户的密码。
         -U 解除锁定, 使用户能够登录。
        
      2. passwd 和chpasswd
        如果只用passwd 命令, 它会改你自己的密码。 系统上的任何用户都能改自己的密码, 但只有root用户才有权限改别人的密码

    5. 用户组

      1. etc/group文件
        /etc/group文件包含系统上用到的每个组的信息
        格式:

        • 组名
        • 组密码
        • GID
        • 属于该组的用户列表
      2. 创建新组
        groupadd 命令没有提供将用户添加到组中的选项, 但可以用usermod 命令来弥补这一点

         usermod -G shared rich
         usermod -G shared test
        
    6. 文件权限

      1. 文件权限符


        image.png
        - 代表文件
        d 代表目录
        l 代表链接
        c 代表字符型设备
        b 代表块设备
        n 代表网络设备
        
        r 代表对象是可读的
        w 代表对象是可写的
        x 代表对象是可执行的
        

        对象的属主
        对象的属组
        系统其他用户

      2. 默认文件权限
        umask 命令用来设置所创建文件和目录的默认权限,umask 命令可以显示和设置这个默认权限

      3. Linux文件权限码

             rwx  111  7
             rw-  110  6
             r-x  101  5
             r--  100  4
             -wx  011  3
             -w-  010  2
             --x  001  1
        
      4. 改变权限 chmod

         chmod o+x file  #file的other组添加执行权限
         chmod u+w file  #file的所属用户添加写入权限
         chmod g+r file  #file的所属组添加读权限
         chmod +x file  #file的所有用户添加执行权限
         chmod -r  file  #file的所有用户去掉读权限
         chmod 777 file  #将file的权限改为777 -rwxrwxrwx
        
      5. 改变所属用户 chown

         chown php file  #将file的所属用户改为php
         chown -R php direct #将direct下的所有文件递归的改变用户
        
      6. 改变所属组

         chgrp php file  #将file的用户组改为php
         chgrp -R php direct  #递归的改变direct下边的所有文件所属用户组
        

    相关文章

      网友评论

          本文标题:Linux命令行与Shell-----用户和用户组

          本文链接:https://www.haomeiwen.com/subject/xcfflxtx.html