• Linux九阴真经之催心掌残卷3


    用户、组和权限

    Linux组的类别
    用户必须属于一个且只有一个主组
    组名同用户名,且仅包含一个用户,私有组
    用户的附加组(supplementary group)
    一个用户可以属于零个或多个辅助组

    chsh 更改用户shell类型 

    chsh -s  /etc/nologin wang :更改wang的shell类型为nologin类型

    修改用户口令属性

    [root@laobai ~]#chage root
    Changing the aging information for root
    Enter the new value, or press ENTER for the default
     
        Minimum Password Age [0]: 5        最短口令有效期
        Maximum Password Age [99999]: 56        最长口令有效期
        Last Password Change (YYYY-MM-DD) [2018-04-03]: 2018-040-04  修改口令时间
        Password Expiration Warning [7]: 9      口令过期警报时间
        Password Inactive [-1]:     宽限期
        Account Expiration Date (YYYY-MM-DD) [-1]:     账号有效期

    修改新建账号默认用户口令的属性

    nano  /etc/login.defs

    PASS_MAX_DAYS   42  最长有效期 
    PASS_MIN_DAYS   3   最短有效期
    PASS_MIN_LEN    5
    PASS_WARN_AGE   7

    用户和组的配置文件

    Linux用户和组的主要配置文件:
    /etc/passwd:用户及其属性信息(名称、UID、主组ID等)
    /etc/group:组及其属性信息
    /etc/shadow:用户密码及其相关属性
    /etc/gshadow:组密码及其相关属性

    在shadow文件内  用户后面会有!号,表示锁定。

    useradd -U +用户名 可解锁用户

    useradd -L  +用户名  锁定用户

    passwd -e +用户名    让用户口令立即失效,从新登陆后提示输入旧口令,然后输入新口令

    useradd 创建用户

    • -u:指定uid
    • -g:指定gid为主组
    • -G:指定附加组
    • -o:不检查uid唯一性,结合-u使用
    • -c:添加描述信息
    • -d:指定家目录
    • -s:指定默认shell
    • -N:不创建主组,并且加入users组为主组
    • -r:创建系统用户
    • -m:创建系统用户时强制创建家目录,结合-r使用
    • -M:创建登录用户时不创建家目录
    • -D:修改/etc/default/useradd文件
      • -s SHELL
      • -b HOME
      • -g GROUP

    usermod 修改用户

    • -u:修改uid
    • -g:修改gid
    • -G:修改附加组,结合-a可以追加附加组
    • -s:修改默认shell
    • -c:修改描述信息
    • -d:修改家目录,结合-m可以搬家
    • -l:修改用户名
    • -L:锁定账户
    • -U:解锁账户,在新系统上不支持对空密码用户解锁
    • -e YYYY-MM-DD:设置账户过期时间
    • -f INACTIVE:设定非活动期限

    userdel 删除用户

    •  -r:删除用户时连家目录一并删除

    id 查看用户信息

    • -u:查看uid
    • -g:查看gid
    • -G:查看用户所属的组的ID
    • -n:显示名称,配合-ugG使用

    su 切换用户

    • su USERNAME 非完全切换,部分变量还是原用户的变量
    • su - USERNAME 完全切换,相当于重新登录
    • su [-] USERNAME -c 'CMD' 登录到新用户执行CMD命令后返回旧用户

    passwd 修改用户密码

    • -d:删除指定用户名密码
    • -l:锁定用户密码 == usermod -L
    • -u:解锁用户密码 == usermod -U
    • -e:强制用户下次登录必须修改密码
    • -f:强制操作
    • -n MINDATS:最短使用期限
    • -x MAXDAYS:最长使用期限
    • -w WARNDAYS:提前多少天警告
    • -i INACTIVEDAYS:非活动期限
    • --stdin 从标准输入接受用户密码,如:echo "user1" | passwd --stdin user1 修改user1用户的密码为user1

    chage 修改用户密码默认策略 /etc/login.defs

    • -d LAST_DAY
    • -E --expiredate EXPIRE_DATE
    • -I --inactive INACTIVE
    • -m --mindays MIN_DAYS
    • -M --maxdays MAX_DAYS
    • -W --warndays WARN_DAYS
    • –l 显示密码策略

     

    练习
    1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

    [root@laobai ~]#useradd -s /bin/csh -G bin,root gentoosss -c "hello"
    [root@laobai ~]#genent passwd gentoosss
    -bash: genent: command not found
    [root@laobai ~]#getent passwd gentooss
    [root@laobai ~]#id gentoosss
    uid=517(gentoosss) gid=518(gentoosss) groups=518(gentoosss),0(root),1(bin)


    2、创建下面的用户、组和组成员关系
    名字为webs 的组
    用户nginx 使用webs 作为附属组
    用户varnish,也使用webs 作为附属组
    用户mysql,不可交互登录系统,且不是webs 的成员,nginx,varnish,mysql密码都是magedu

    [root@laobai ~]#groupadd web
    [root@laobai ~]#useradd -G web aaaaa
    [root@laobai ~]#useradd -G web bbbbb
    [root@laobai ~]#useradd -s /sbin/nologin ccccc
    [root@laobai ~]#echo magedu |passwd --stdin aaaaa
    Changing password for user aaaaa.
    passwd: all authentication tokens updated successfully.
    [root@laobai ~]#echo magedu |passwd --stdin bbbbb
    Changing password for user bbbbb.
    passwd: all authentication tokens updated successfully.
    [root@laobai ~]#echo magedu |passwd --stdin ccccc
    Changing password for user ccccc.
    passwd: all authentication tokens updated successfully

     批量创建用户,设置密码

    [root@laobai date]#touch user.txt
    [root@laobai date]#cat user.txt
    app22:x:508:509::/home/app:/bin/bash
    bcd22:x:509:511::/etc/data/bcdhome:/bin/bash
    bcde22:x:510:512::/etc/data/bcdhome:/bin/bash
    bbb22:x:511:513::/etc/data/bbbhome:/bin/bash
    [root@laobai date]#newusers /date/user.txt
    [root@laobai date]#nano pass.txt
    [root@laobai date]#cat pass.txt
    app22:123456
    pcd22:123456
    bcde22:123456
    bbb22:123456
    [root@laobai date]#cat pass.txt | chpasswd

    用户属性修改

    usermod [OPTION] login

    -u UID: 新UID

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

    [root@laobai ~]#usermod -aG bin haha
    [root@laobai ~]#id haha
    uid=513(haha) gid=514(haha) groups=514(haha),0(root),1(bin)


    -s SHELL:新的默认SHELL
    -c 'COMMENT':新的注释信息
    -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
    -l login_name: 新的名字;

    [root@laobai ~]#usermod -l didida didi


    -L: lock指定用户,在/etc/shadow 密码栏的增加 !
    -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
    -e YYYY-MM-DD: 指明用户账号过期日期
    -f INACTIVE: 设定非活动期限

    查看用户相关的ID信息
    id [OPTION]... [USER]
    -u: 显示UID
    -g: 显示GID
    -G: 显示用户所属的组的ID
    -n: 显示名称,需配合ugG使用

    切换用户或以其他用户身份执行命令

    su  +用户名      切换用户(不完全切换)

    su  -  +用户名   切换用户(完全切换)

    换个身份执行命令,再退回到原账号

    [wang@laobai ~]#su - root -c 'cat /etc/shadow'


    设置密码

    passwd [OPTIONS] UserName: 修改指定用户的密码
    常用选项:
    -d:删除指定用户密码
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登录修改密码
    -f: 强制操作
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    -i inactivedays:非活动期限
    --stdin:从标准输入接收用户密码
    echo "PASSWORD" | passwd --stdin USERNAME

     创建组

    groupadd [OPTION]... group_name
    -g GID: 指明GID号;[GID_MIN, GID_MAX]
    -r: 创建系统组

    修改和删除组

    组属性修改:groupmod
    groupmod [OPTION]... group
    -n group_name: 新名字
    -g GID: 新的GID
    组删除:groupdel
    groupdel GROUP

    更改组密码

    组密码:gpasswd
    gpasswd [OPTION] GROUP
    -a user 将user添加至指定组中

    [root@laobai ~]#gpasswd -a varn g1
    Adding user varn to group g1
    [root@laobai ~]#id varn
    uid=521(varn) gid=523(varn) groups=523(varn),521(webs),526(g1)


    -d user 从指定组中移除用户user

    [root@laobai ~]#gpasswd -d varn g1
    Removing user varn from group g1


    -A user1,user2,... 设置有管理权限的用户列表
    newgrp命令:临时切换主组
    如果用户本不属于此组,则需要组密码

    更改和查看组成员

    groupmems [options] [action]
    options:
    -g, --group groupname 更改为指定组 (只有root)
    Actions:
    -a, --add username 指定用户加入组
    -d, --delete username 从组中删除用户
    -p, --purge 从组中清除所有成员
    -l, --list 显示组成员列表
    groups [OPTION].[USERNAME]... 查看用户所属组列表

    将用户加入组

    [root@laobai ~]#groupmems -a varn -g g1
    [root@laobai ~]#id varn
    uid=521(varn) gid=523(varn) groups=523(varn),521(webs),526(g1)

    将用户移除该组

    [root@laobai ~]#groupmems -d varn -g g1
    [root@laobai ~]#id varn
    uid=521(varn) gid=523(varn) groups=523(varn),521(webs)

    文件权限总结

    普通用户对于读写执行权限都是有严格控制的

    对于读写权限,root不受控制,但对于执行权限,如果root没有执行权限,那就无法执行操作

    读权限对于二进制文件来说并不是必不可少的

    普通用户不能修改文件所有者

    删除文件不是对文件的权限,而是对文件所在目录的写权限

    对于目录而言,没有执行权限意味着不可以cd进去看文件的详细属性,也不能访问目录里的文件内容

    文件能否被删除要看目录是否有执行权限

     文件获取权限的顺序是先看所有者 再看组,最后看其他,如果所有者满足条件,直接继承所有者权限,即使权限最小也不例外。

    修改文件的属主和属组

    修改用户权限

    shown + 所有者  +文件名

    chgrp   +所有者  +文件名

    文件权限

    文件的权限主要针对三类对象进行定义
    owner: 属主, u
    group: 属组, g
    other: 其他,  o
    每个文件针对每类访问者都定义了三种权限
    r: Readable
    w: Writable
    x: eXcutable

    修改文件权限

    chmod

    方法1

    chmod  who  opt  per  file

    who:u 、g、o

    otp:+   、--、==

    per:r、w、x、X

    例 :chmod  u+x,g-x,o=   file

    方法2

    参考前文件,修改后面的文件

      chmod  --reference=f1  f2  f3

    方法3

    数字法

    u      g      o

    rwx  rw-   r--

    111 110 100

    r:4   w:2  x:1


  • 相关阅读:
    Javascript实现图片的预加载的完整实现
    python模块查找机制探究
    网络协议模拟之QQ微博分享接口应用
    每周一荐:差异利器Beyond Compare
    Asp.Net MVC4 入门介绍
    单元测试一例:学习断言、测试用例函数的编写
    开源一个网络框架
    .NET服务端持续输出信息到客户端
    Python服务器改造
    CYQ.Data 数据框架 V4.0
  • 原文地址:https://www.cnblogs.com/huxiaojun/p/8719271.html
Copyright © 2020-2023  润新知