zoukankan      html  css  js  c++  java
  • linux 用户管理

    用户及用户组

    linux文件属性和权限的时候提到过用户和用户组,

     

    回顾:

    linux是多任务、多用户的系统。

     

    用户、用户组的概念

    每个文件和进程,都需要对应一个用户和用户组

     

    linux系统时通过UID和GID来识别用户和组的。

    用户名相当于人名(给人用的)

    UID和GID相当于身份证号(系统用的)

    linux管理员:root

     

    用户和组的关系:

    一对一,多对一,一对多

     

    linux系统用户分类:

    超级用户:UID为0代表是root,皇帝

    普通用户:UID范围500---65535,由超级用户或者具有超级用户权限的用户创建的用户(大臣、布衣)。

    虚拟用户:UID范围1--499,存在满足文件或者服务启动的需要。一般都不能登录,只是傀儡

    每个文件和进程,都满要对应一个用户和用户组。

     

    和用户关联的四个文件

    /etc/passwd

    /etc/shadow

    /etc/group

    /etc/gshadow

    以上文件内容是由冒号分隔:/etc/Passwd内容需要比较熟悉(放在大脑里),其它的了解(在大脑建立索引)

     

     

    用户管理的命令:

     

    useradd

    添加用户

    userdel

    删除用户及相关用户的配置文件

    passwd

    为用户设置或改密码,更改/etc/shadow文件

    usermod

    修改用户信息,可以修改登录名、用户的家目录等

    id

    显示用户的UID,GID及所属用户组

    chage

    修改用户密码属性,管理/etc/shadow文件

    groupadd

    添加组

    groupdel

    除组

    groups

    查看组信息

    whoami

    查看当前用户

    su

    切换角色

    sudo

    提权

    visudo

    编辑sudo配置文件(自动检查语法),也可以用vi来编辑/etc/sudoers实现                                        

    /etc/skel文件

    用户环境变量存放的初始目录

    w whlast lastlog

    查询登陆用户信息

     

     

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

    6.4.3 /etc/skel目录

     

        /etc/skel 日录是用来存放新用户环境变量文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家下:默认情况下,/etc/skel 下的所有文件都是隐藏之件(以.开头的的之件):通过改、添加、删/etc/skel 文件,我们为新创建的用户提供统一的、标准的、初始化用户环境

        查看/etc/skel 目录下的内容:

     

     1 [root@wen ~]# ls -al /etc/skel
     2 总用量 24
     3 drwxr-xr-x.  3 root root 4096 8月  30 05:50 .
     4 drwxr-xr-x. 91 root root 4096 10月 22 01:52 ..
     5 -rw-r--r--.  1 root root   18 7月  24 2015 .bash_logout
     6 -rw-r--r--.  1 root root  176 7月  24 2015 .bash_profile
     7 -rw-r--r--.  1 root root  124 7月  24 2015 .bashrc
     8 drwxr-xr-x.  2 root root 4096 11月 12 2010 .gnome2
     9  
    10 [root@wen ~]# cd /etc/skel
    11 [root@wen skel]# touch readme.txt
    12 [root@wen skel]# useradd wen
    13 [root@wen skel]# ll /home/wen -al
    14 总用量 24
    15 drwx------  3 wen  wen  4096 10月 22 03:00 .
    16 drwxr-xr-x. 8 root root 4096 10月 22 03:00 ..
    17 -rw-r--r--  1 wen  wen    18 7月  24 2015 .bash_logout
    18 -rw-r--r--  1 wen  wen   176 7月  24 2015 .bash_profile
    19 -rw-r--r--  1 wen  wen   124 7月  24 2015 .bashrc
    20 drwxr-xr-x  2 wen  wen  4096 11月 12 2010 .gnome2
    21 -rw-r--r--  1 wen  wen     0 10月 22 02:59 readme.txt

     

     

    /etc/skel业场景作用

    1、可以把通知的内容放到skell,让登录的人去看

    2、统一初始化新用户的环境变量

    3、面试题:出现bash4.1$问题原因及解决方法。环境变量没了或没有家目录或下面的.bashrc*被删

    知识点:

    [root@wen skel]# PS1='[u@h W ]$'

    [root@wen skel03:08:19]#

     

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

    6.4.4  /etc/login.defs配置文件

         /etc/login.defs 文件是用来定义用户创建时需要的一些用户的配置信息,如创建用户时,是否需要目录,UIDGID的范围,用户及密码的有效期等等

    *REQUIRED*
    #   Directory where mailboxes reside, _or_ name of file, relative to the
    #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
    #   QMAIL_DIR is for Qmail
    #
    #QMAIL_DIR        Maildir
    MAIL_DIR        /var/spool/mail
    #MAIL_FILE        .mail
     
    # Password aging controls:
    #
    #        PASS_MAX_DAYS        Maximum number of days a password may be used.
    #        PASS_MIN_DAYS        Minimum number of days allowed between password changes.
    #        PASS_MIN_LEN        Minimum acceptable password length.
    #        PASS_WARN_AGE        Number of days warning given before a password expires.
    #
    PASS_MAX_DAYS        99999
    PASS_MIN_DAYS        0
    PASS_MIN_LEN        5
    PASS_WARN_AGE        7
     
    #
    # Min/max values for automatic uid selection in useradd
    #
    UID_MIN                          500
    UID_MAX                        60000
     
    #
    # Min/max values for automatic gid selection in groupadd
    #
    GID_MIN                          500
    GID_MAX                        60000
     
    #
    # If defined, this command is run when removing a user.
    # It should remove any at/cron/print jobs etc. owned by
    # the user to be removed (passed as the first argument).
    #
    #USERDEL_CMD        /usr/sbin/userdel_local
     
    #
    # If useradd should create home directories for users by default
    # On RH systems, we do. This option is overridden with the -m flag on
    # useradd command line.
    #
    CREATE_HOME        yes
     
    # The permission mask is initialized to this value. If not specified, 
    # the permission mask will be initialized to 022.
    UMASK           077
     
    # This enables userdel to remove user groups if no members exist.
    #
    USERGROUPS_ENAB yes
     
    # Use SHA512 to encrypt password.
    ENCRYPT_METHOD SHA512 
    View Code 

     

    6.4.5 /etc/default/useradd文件

       /etc/default/useradd文件是在使用useradd添加用户时的一个默认的配置文件,可以使用"useradd -D 参数"这样的命令格式来修改文件里的内容,

    1 [root@wen ~]#cat /etc/default/useradd
    2 # useradd defaults file
    3 GROUP=100                             #依赖于/etc/login.defs的USERGROUPS_ENAB参数,如果为no,则此处控制
    4 HOME=/home                          #把用户的家目录建在/home中
    5 INACTIVE=-1                       #是否启用账号过期停权,-1表示不启用
    6 EXPIRE=                               #账号终止日期,不设置表示不启用
    7 SHELL=/bin/bash             #用户默认所用的血液类型
    8 SKEL=/etc/skel#配置新用户家目录的默认文件存放路径,前文提到的/etc/skell,就是配在这里生效的,即当我们使用useradd添加用户时,用户家目录下的文件,都是从这里配置的目录中复制过去的。
    9 CREATE_MAIL_SPOOL=yes  #创建mail文件

     

     

    useradd  参数选项

    注释说明

    -c  comment

    新账号passwd 的说明栏,相当于该账号的注释说明

    -d home_dir

    新账号每次登陆时所使用的home_dir,预设值为default_homelogin的名字,并当成登入时目录的名称

    -e expire_date

    账号终止日期。日期格式指定为MM/DD/YY

    -g initial_group

    group名称或以数字来作为用户登录起始用户组group,用户组名须为系统现有存在的名称,用户数字也须为现有存在的用户组,预设的用户组数字为1

    -G  group,[…]

    定义用户为多个不同groups的成员,每个用户组使用","逗号分分隔。用户组名同-g选项限制,默认值为用户的起始用户组。

    -M

    不建立家目录优先于/etc/login.defs文件的设定,一般创建虚拟用户建立家目录部署服务时需要创建虚拟用户

    -s

    用户登录后使用的shell名称,默认值不填写,这样系统会帮你指定预设登入shell(根据/etc/default/useradd预设的值)

    -u

    用户的ID,这个必须是唯一的,除非用-o选项,数字不可为负值

     

     

     1 [root@wen ~]# useradd ju01 -g fadewalk -e "2019/07/01" -M
     2 [root@wen ~]# tail -1 /etc/passwd
     3 ju01:x:506:501::/home/ju01:/bin/bash
     4 [root@wen ~]# id ju01
     5 uid=506(ju01) gid=501(fadewalk) 组=501(fadewalk)
     6 [root@wen ~]# ls -ld /home/ju01
     7 ls: 无法访问/home/ju01: 没有那个文件或目录
     8 [root@wen ~]# chage -l ju01
     9 Last password change                                        : Oct 21, 2017
    10 Password expires                                        : never
    11 Password inactive                                        : never
    12 Account expires                                                : Jul 01, 2019
    13 Minimum number of days between password change                : 0
    14 Maximum number of days between password change                : 99999
    15 Number of days of warning before password expires        : 7
    View Code

     

      改变新建用户的预设值

        当执行useradd命令加-D选项时,可以更改新建用户的默认配置值(/etc/default/useradd,或是有命令编辑的方式更新预设置

     

     

    useradd -D参数选项

    注释说明

    -b    default_home

    定义用户所属目录的前一个目录,用户名称会附加在default_home面用来建立新用户的目录,使用-d后则此项无效

    -c      default_expire_date

    用户账号停止日期,

    -f   default_inactive

    账号过期几日后停权

    -g   default_group

    新账号起始用户名或ID,用户组须为现有存在的名称用户ID为现存有用户组

    -s   default_shell

    用户登入后使用的shell名称修改后新加入的用户将使用shell类型,useradd -s 参数优先此默认配置

     

     

  • 相关阅读:
    git ssh配置
    spring事务的传播行为
    springboot tomcat启动
    error while loading shared libraries: libstdc++.so.6: cannot open shared object file
    centos7安装nginx1
    linux jdk 配置
    NET CORE 3.1 UPLOAD
    vue table formrt datetime languer
    net core 3.1 swagger
    css
  • 原文地址:https://www.cnblogs.com/wenyule/p/7715397.html
Copyright © 2011-2022 走看看