zoukankan      html  css  js  c++  java
  • linux下用户和组相关的文件及相关管理命令

    1.用户信息文件  /etc/passwd

    示例
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin

    7个字段含义

    第1个字段:用户名称
    第2个字段:密码标志 x表示 用户是有密码的 密码在/etc/shadow
    第3个字段:UID (用户ID)
        0: 超级用户 系统最高级用户的uid表示,把普通用户uid改为0,普通用户也成管理员了,可同时有多个管理员
        1-499:系统用户(伪用户)
        500-65535: 普通用户
    第4个字段:GID (用户初始组id)
    第5个字段:用户说明备注
    第6个字段:家目录
      普通用户:/home/用户名
      超级用户:/root
    第7个字段:登录之后的shell
    linux的命令解释器
    普通用户/bin/bash
    不能登录用户 /sbin/nologin

    初始组和附加组
    初始组:指用户已登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,
    一般就是和这个用户的用户名相同的组名作为这个用户的初始组
    附加组:指用户可以加入多个其它的用户组,并拥有这些组的权限,附加组可以有多个

    2.影子文件 /etc/shadow  权限000

    /etc/passwd   644

    root:$6$nqH42SD3OTNQS3kk$AOec/Whtl5nERj9KFmU.Kwgia1pkw1XWIIfhYMzPqz/sx4EyQJIW0ONrircuhu3wWI4VKJ6kBU1KN6.CVyq6X.:16813:0:99999:7:::
    bin:*:15980:0:99999:7:::
    daemon:*:15980:0:99999:7:::
    adm:*:15980:0:99999:7:::
    lp:*:15980:0:99999:7:::

    9个字段
    第1个字段:用户名
    第2个字段:加密密码
    加密算法升级为sha512散列加密算法
    如果密码是 "!!" 或 "*" 代表没有密码,不能登录
    第3个字段:密码最后一次修改日期 时间戳
    第4个字段:两次密码的修改时间间隔(和第三个字段相比)
    第5个 :密码有效期(单位 天) (和第3个字段相比)
    第6个字段:密码修改到期前的警告天数(和第5个字段相比)
    第7个字段:密码过期后的宽限天数(和第5个字段相比)
    0:代表密码过期后立即失效 或者不写
    -1:代表密码永不会失效
    第8个 :账号失效时间 (时间戳表示)
    第9个 :保留

    时间戳换算为日期
    date -d "1970-01-01 1 days" 1970年 01月 02日 星期五 00:00:00 EST
    1970-01-01 1 天后的时间

    date -d "2016-03-23 1 days"
    2016年 03月 24日 星期四 00:00:00 EDT

    日期换位时间戳
    echo $(($(date --date="2016/03/06" +%s)/86400+1))
    16867
    date -d "1970-01-01 16867 days"
    2016年 03月 07日 星期一 00:00:00 EST

    3.组信息文件 /etc/group
    第1个:组名
    第2个:组密码标志
    第3个:GID
    第4个:组中附加用户

    4.组密码文件:/etc/gshadow
    第1个:组名
    第2个:组密码
    第3个:组管理员用户名
    第4个:组中附加用户

    用户管理相关文件
    1.用户的家目录
    普通用户:/home/用户名 ,所有者和所属组都是此用户 权限 700
    超级用户: /root/,所有者和所属组都是root用户 权限是550
    ll -d /root/
    dr-xr-x---. 30 root root 4096 3月 23 11:32 /root/

    修改/etc/passwd里的 某个普通用户
    把用户的组id改为 管理员组 ,这个用户仍然是普通管理员,登录提示符 $
    将其id改成管理员的id 0,登录提示符编程了 #
    家目录不变,权限是超管的
    2.用户的邮箱
    /var/spool/mail/用户名
    3.用户模板目录
    /etc/skel/
    在创建一个用户时,在其家目录下 会(根据模板(模板目录下的文件))自动拷贝生成 一些文件


    ---------------
    用户管理命令
    添加用户命令 useradd
    修改用户密码 passwd
    修改用户信息 usermod
    修改用户密码状态 chage
    删除用户 userdel
    用户切换命令 su

    1.useradd 命令格式
    useradd [选项] 用户名
    -u UID :手动指定用户的uid号
    -d 家目录: 指定用户的家目录
    -c 用户说明:指定用户说明
    -g 组名: 指定用户的初始组
    -G 组名 :指定用户的附加组,多个 用,分隔
    -s shell: 指定用户登录shell,默认是/bin/bash

    useradd -g  www www -s /bin/false   添加用户www到www组并禁止www用户直接登陆系统

    用户默认值文件
    /etc/default/useradd
    GROUP=100 #默认用户组 现在是创建同名的组
    HOME=/home/ #用户家目录
    INACTIVE=-1 #密码过期宽限天数(shadow文件第7字段)
    EXPIRE= #密码失效时间(shadow文件第8字段)
    SHELL=/bin/bash #默认shell
    SKEL=/etc/skel #模板目录
    CREATE_MALL_SPOOL=yes #是否建立邮箱

    /etc/login.defs
    PASS_MAX_DAYS 999999 #密码有效期
    PASS_MIN_DAYS 0 #密码修改间隔
    PASS_MIN_LEN 5 #密码最小5位 (暂未生效,默认8位)
    PASS_WARN_AGE 7 #密码到期警告,到期前提醒
    UID_MIN 500 #最小和最大uid范围
    GID_MAX 60000
    ENCRYPT_METHOD SHA512 #加密模式

    2. 修改用户密码 passwd
    passwd [选项] 用户名
    -S 查询用户密码的密码状态 仅root用户可用
    -l 暂时锁定用户,仅root用户可用
    -u 解锁用户 仅root用户可用
    --stdin 可通过管道符输出的数据作为用户的密码

    echo '123456'|passwd --stdin admin
    将123456作为admin用户的密码
    3.修改用户信息 usermod
    修改用户密码状态chage
    usermod与useradd类似,一个针对老用户,一个是针对新增用户的 选项一样
    usermod [选项] 用户名
    -u UID 修改用户的UID号
    -c 用户说明 修改用户的说明信息
    -G 组名 修改用户的附加组
    -g 初始组 修改初始组
    -L 临时锁定用户 (Lock)
    -U 解除用户锁定(Unlock)

    修改用户密码状态
    chage [选项] 用户名
    -l 列出用户的详细密码状态
    -d 日期 修改密码最后一次的修改日期(shadow的第三个字段)
    -m 天数 两次密码修改间隔(shadow第四个字段)
    -M 天数 密码有效期(第5个字段)
    -W 天数 密码过期前警告的天数(第6字段)
    -I 天数 密码过期后宽限天数(第7字段)
    -E 日期 密码失效时间(第8字段)


    chage -d 0 admin
    把admin用户的密码修改日期归0 (shadow第三个字段) ,这样用户一登录就要修改密码(强制修改密码)
    4.删除用户userdel
    用户切换命令 su
    userdel [-r] 用户名
    -r 删除用户的同时删除用户家目录

    su [选项] 用户名
    - : 选项只使用"-"代表连带用户的环境变量一起切换

    -c: 仅执行一次命令,而不切换用户身份
    su - root -c "useradd user1"
    不切换成root,暂时以root身份 执行命令

    ---------------------

    用户组管理
    1.添加用户组
    groupadd [选项] 组名
    -g GID :指定组ID
    2.修改用户组
    groupmod [选项] 组名
    -g GID: 修改组id
    -n 新组名: 修改组名
    groupmod -n newgroup_name group_name
    把组名group_name 修改为newgroup_name
    3.删除组名
    groupdel 组名
    当组是一个用户的初始组而且这个用户存在时,不可以删除这个组
    必须得先删初始用户才行
    有附加用户没初始用户的组可以删除
    groupadd gr1
    useradd -g gr1 u1
    useradd -G gr1 u2
    不会产生u1还个组,u1用户的初始组为gr1了

    4.把用户添加入组或从组中移除
    gpasswd [选项] 组名
    -a 用户名: 把用户加入组(操作的是附加用户)
    -d 用户名: 把用户从组中删除

  • 相关阅读:
    小学生二元四则运算(F)
    补进度条
    附加作业
    个人总结
    第四 五周结对作业(照片)
    第四,五周——Java编写的电梯模拟系统(结对作业)
    第三周(JAVA编写的 wordcount)
    第三周续(读代码)
    第三周
    第二周续.(代码)
  • 原文地址:https://www.cnblogs.com/HKUI/p/5313706.html
Copyright © 2011-2022 走看看