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

    useradd      添加用户

    passwd       修改用户密码

    userdel       删除用户,默认不删除用户主目录和email,如果想删除可加 –r 参数

    groupadd   添加组

    gpasswd   修改组密码(用的非常少)

    groupdel     删除组

    需要注意四个文件:

    /etc/passwd       存储用户信息:用户名,UID,GID,帐号描述,主目录,登录后的shell等信息‘

    /etc/shadow       存储用户密码信息: 用户名,密码,密码使用期限,禁用时间等等

    /etc/group          存储组信息:组名,GID,组成员等

    /etc/gshadow     组密码相关信息

    当我们使用 useradd shrek 添加shrek用户时,linux都做了哪些工作呢?

    首先会创建用户和与用户同名的组,我们看一下,对应的文件

    # tail -3 /etc/passwd
    sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
    zhangsan:x:1001:1001::/home/zhangsan:
    shrek:x:1002:1002::/home/shrek:
    # tail -3 /etc/group
    sambashare:x:124:huanghao
    zhangsan:x:1001:
    shrek:x:1002:

    可以看到,用户和组都创建了;

    同时创建/home/shrek目录,接着会复制一些文件进去

    cp –r /etc/skel/*   /home/shrek/

    最后设置一下权限

    chown –R shrek shrek  /home/shrek

    好了,到这里用户就创建完成了,linux系统为创建用户做了一系列的工作。

    那这四个文件里的内容到底是什么呢?

    /etc/passwd

    pulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false
    huanghao:x:1000:1000:huanghao,,,:/home/huanghao:/bin/bash
    sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
    zhangsan:x:1001:1001::/home/zhangsan:
    shrek:x:1002:1002::/home/shrek:

    可以看出文件中是用:来分隔的,各段的意思是:

    用户名:密码(x表示有密码,空表示无密码):UID:GID:用户描述信息:家目录:登录后的shell

    /etc/shadow

    sshd:*:16825:0:99999:7:::
    zhangsan:$6$OsmW2vs/$Iuth6FJfDqn7s9MQvagO2./BjOXcCeUH/LxSqdth3KXdF.qxC.2wyL5yA0EasxSnevlNra0LdXj2n7annlJyU/:16825:0:99999:7:::
    shrek:!:16847:0:99999:7:::
    
    用户名:密码(md5加密后的,$$之间是阀值):unixtime(1970.1.1至今的天数):密码最短历史:密码最长历史:过期前多少天通知::多少
    天禁用用户

    密码最短历史: 0表示任意时间,如果设为1,则表示1天后才能修改密码

    密码最长历史: 最长99999天

    多少天后禁用用户: 也是unixtime来算

    /etc/group

    sambashare:x:124:huanghao
    zhangsan:x:1001:
    shrek:x:1002:
    
    组名:是否有密码:GID:组成员

    注意组成员如果有多个,用,分隔

    /etc/gpasswd  这个里面没什么内容,略过。。

    那么问题来了:A机器上有200个用户,现在新装了机器B,想把用户转移过去,怎么办呢?

    直接将这四个文件复制过去,然后将home目录复制过去就好了。 一切皆文件嘛。

    刚才看了四个文件,我们在创建用户的时候有些属性是没有设置的,比如密码历史时间什么的,但是也默认有了。那这些默认属性在哪里设置的呢?

    /etc/login.defs, 这个文件里可以设置用户的默认属性

    # cat /etc/login.defs |grep -v '^#'|grep -v '^$'
    MAIL_DIR        /var/mail
    FAILLOG_ENAB        yes
    LOG_UNKFAIL_ENAB    no
    LOG_OK_LOGINS        no
    SYSLOG_SU_ENAB        yes
    SYSLOG_SG_ENAB        yes
    FTMP_FILE    /var/log/btmp
    SU_NAME        su
    HUSHLOGIN_FILE    .hushlogin
    ENV_SUPATH    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    ENV_PATH    PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    TTYGROUP    tty
    TTYPERM        0600
    ERASECHAR    0177
    KILLCHAR    025
    UMASK        022
    PASS_MAX_DAYS    99999
    PASS_MIN_DAYS    0
    PASS_WARN_AGE    7
    UID_MIN             1000
    UID_MAX            60000
    GID_MIN             1000
    GID_MAX            60000
    LOGIN_RETRIES        5
    LOGIN_TIMEOUT        60
    CHFN_RESTRICT        rwh
    DEFAULT_HOME    yes
    USERGROUPS_ENAB yes
    ENCRYPT_METHOD SHA512

    下面看几个命令

    usermod     修改用户属性

    usermod –G root,bin,todd shrek     将shrek用户所属组修改为root,bin,todd,注意是修改,不是追加

    id shrek     查看用户属性

    gpasswd –M shrek,todd,ttt   root     将多个用户加入root组

    到这问题又来了,如果不小心删除了这四个文件,怎么办?系统还能登录吗?

    可以使用单用户模式进入系统

    ll /etc/passwd
    passwd   passwd-

    看到了吗,有一个passwd-的文件,这是passwd的备份,复制一份就行了,其它三个文件一样都有备份。

    继续我们的命令:

    users        显示当前登录的用户,只显示用户名

    who          也是显示当前登录的用户,但要详细一些

    w              这个就更详细了

    # w
     13:03:32 up 21 days, 22:25,  3 users,  load average: 2.12, 2.07, 2.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    huangxm :0       :0               25 1月16 ?xdm?   4:04m  0.48s init --user
    huangxm pts/11   :0               25 1月16 21days  0.42s  0.42s bash
    huangxm pts/1    192.168.0.201    一16    4.00s  0.37s  0.05s sshd: huanghao [priv]

    kill –9 pts/1    踢掉pts/1的用户

    write     给当前联机的某个用户发消息,注意需要使用mesg y 打开开关才可以使用

    write “hahahah” pts/1      发送消息到pts/1

    wall    “hahahahha”    发送消息给所有控制台

    last     查看谁登录了系统,什么时间登录的

    # last
    huanghao pts/1        192.168.0.201    Mon Feb 15 16:20   still logged in   
    huanghao pts/24       192.168.0.201    Thu Feb  4 14:04 - 02:54 (10+12:50)  
    huanghao pts/1        192.168.0.201    Wed Feb  3 16:54 - 02:54 (11+10:00)

    finger shrek   查看shrek用户信息,可能需要安装才可以使用

    # finger shrek
    Login: shrek                      Name: 
    Directory: /home/shrek                  Shell: /bin/sh
    Never logged in.
    No mail.
    No Plan.
  • 相关阅读:
    软件可靠性与安全性设计与实现知识梳理(软件可靠性与安全性高级技术研讨会心得)
    SSM框架整合
    不注册Tomcat服务,运行Tomcat不弹出JAVA控制台窗口
    ExtJS表单之复选框CheckboxGroup展示与取值
    ExtJS获取父子、兄弟容器元素方法
    LabVIEW之生产者/消费者模式--队列操作 彭会锋
    ExtJS Grid导出excel文件
    jeesite部署到Tomcat后,无法访问,cannot be resolved in either web.xml or the jar files deployed with this application
    滚动轮播插件——jCarouselLite
    统计学基础之假设检验
  • 原文地址:https://www.cnblogs.com/huangxm/p/5192735.html
Copyright © 2011-2022 走看看