zoukankan      html  css  js  c++  java
  • 用户管理相关的配置文件和命令选项

    上一篇总结了创建新用户时的常见命令,写完后意犹未尽,干脆从配置文件的角度对这个问题再小结一下。

    1 配置文件

    linux下的很多文件都可以在man(5)中找到说明,如/etc/sudoers的说明可以用命令man 5 sudoers 查到

    /etc/sudoers

    主要用于指定用户(组)的在特定主机上特权命令。除此之外,该文件中允许设置别名。

    设定的格式为:
    适用的用户 权限生效的主机 = (使用的执行身份) 可以运行的命令

    # Host alias specification
    Host_Alias  REMOTES = host1, host2, host3
    # User alias specification
    
    # Cmnd alias specification
    Cmnd_Alias  FILEOP = /bin/cp, /bin/rm, /bin/mv
    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    noway   ALL=(ALL) ALL
    tom     REMOTES = (john) FILEOP
    
     # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL
    

    /etc/sudoers文件中有四类别名,User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias, 分别对应设定格式中的四个字段。

    /etc/passwd

    passwd主要用于储存用户信息,每一行有7个字段,用冒号隔开:
    登录名:口令占位符x:UID:默认组id(GID):用户私人信息:用户家目录:登录shell

    UID: root用户的UID为0, 系统用户的UID比较小, 普通用户的UID从一个较大的数开始
    GID: 这里指的是默认组的GID

    这里对普通用户和组ID设定的默认值可以在/etc/login.defs中看到
    对于默认的用户家目录和登录的shell可以在etc/default/useradd中予以设定

    /etc/shadow

    这个文件用于保存用户的口令信息,每一行的格式为
    登录名:加密口令:上次修改密码的日期:两次修改口令之间的天数(最少):天数(最多):提前提醒天数:账户失活时间:过期的日期:保留字段

    这里与时间相关的默认值可以在/etc/login.defs中查看到

    /etc/gshadow

    这个文件用于保存用户组的口令信息,每一行的格式为
    组名:加密口令:管理者:组成员(用逗号隔开)

    /etc/group

    主要用于储存用户组信息
    组名:密码占位符:GID:组成员(用逗号隔开)

    /etc/shells

    这个文件记录了系统中合法的shell,这里包含的是shell的绝对路径名

    /etc/skel/

    这个文件夹中包含了创建新用户家目录时预设的文件(夹),在创建用户家目录时这些文件将会被复制到用户的家目录中

    /etc/login.defs

    这个文件记录了用户信息的一些基本参数规范

    /etc/default/useradd

    这个文件记录了useradd命令的默认参数

    小结:linux中一切皆文件,创建用户涉及到的配置文件有
    /etc/passwd, /etc/shadow, /etc/group, /etc/default/useradd, /etc/skel/
    手动添加新用户的步骤:

    1. /etc/group 中添加基本组的信息
    2. /etc/passwd中添加 登录名,UID, GID(默认与UID同,可指定已有组的id), 用户个人信息, 使用的shell
    3. /etc/shadow中添加加密口令,口令一般用md5加密((1)), 和密码的有效时限相关信息
    4. 创建用户家目录,把/etc/skel/中的内容复制到家目录中
    5. /etc/sudoers 设置用户(组)的sudo权限

    2 命令

    用户相关

    useradd [option] USERNAME
    基本信息:
    -u 指定UID
    -s 指定shell
    -c 用户基本信息, 依次为:全名, 办公室, 工作电话, 家庭电话,用逗号隔开
    用户家目录相关:
    -m 若新用户无家目录则创建家目录, 若与-k联用则同时将/etc/skel/中的文件复制一份
    -M 不创建家目录
    -d 指定家目录位置
    组相关:
    -g 默认组GID
    -G 附加组
    其他:
    -r 添加系统用户,选择1-999作为UID, 该用户无家目录
    若要新用户无法登陆系统,则可以用useradd -s /sbin/nologin

    userdel [option] USERNAME
    -r 同时删除用户的家目录,慎用
    usermod [option] USERNAME
    -d 修改家目录,若要讲当前家目录中的内容复制到新的家目录,则要与-m联用
    -e 修改账号有效期限 MM/DD/YY
    -g 修改用户默认属组
    -G 修改用户附加属组, 若要添加附加属组,则与-a联用
    -l 修改用户登录名
    -s 修改用户使用的shell

    passwd [option] USERNAME
    --stdin 表示通过标准输入来接收口令
    -d 删除用户密码,密码清空后用户无法登陆

    groupadd [option] GROUPNAME
    groupadd [option] GROUPNAME
    groupadd [option] GROUPNAME
    这三个命令与user系列类似

    除此之外,常用的命令还有id和finger,用于查看用户的账号属性信息

    ch系列的就不详细说明了:
    chage用于修改口令期限相关的信息 change age
    chsh 修改默认shell change shell
    chfn 修改用户信息 change finger

  • 相关阅读:
    【五种方法】mybatis使用Map返回时,当value为空时不显示key
    【日常填坑】com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql.
    NVL2(表达式1,表达式2,表达式3)表达式1带或者,与
    oracle存储过程is和begin之间的参数说明
    Idea全局搜索没有把html文件显示出来
    JAVA
    (日常踩坑)idea启动多个tomcat时,报Invalid command '' received警告
    java中impl作用
    localhost:8080要加项目名能访问的解决方法
    【ubuntu】搭建mysql5.7
  • 原文地址:https://www.cnblogs.com/noway-neway/p/5078816.html
Copyright © 2011-2022 走看看