zoukankan      html  css  js  c++  java
  • Linux用户和用户组管理 用户管理相关命令

    用户添加命令 useradd 

    注意: 新添加的用户如果不设定密码是不能够登录系统的

    命令格式:

     [root@localhost ~]#useradd [选项] 用户名

    选项说明:

    选项 选项说明
    -u UID 手工指定用户的 UID,注意手工添加的用户的 UID 不要小于 500;
    -d 手工指定用户的家目录。家目录必须写绝对路径,而且如果需要手工指定家目录,则一定要注意权限;
    -c 手工指定用户说明。 /etc/passwd 文件的第5个字段就是该字段内容的;
    -g

    手工指定用户的初始组。在创建用户时会默认以用户名相同的组作为用户的初始组。如果不想使用默认初始组,则可以用 -g 手工指定。不建议手工修改;

    -G 指定用户的附加组。我们把用户加入其他组,一般都使用附加组;
    -s 手工指定用户的登录 Shell。默认是 /bin/bash;
    -e 指定用户的失效曰期,格式为"YYYY-MM-DD"。也就是/etc/shadow文件的第8个字段;
    -o 允许创建的用户的 UID 相同。例如,执行"useradd -u 0 -o usertest"命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0;
    -m 建立用户时强制建立用户的家目录。在建立系统用户时,该选项是默认的;

    1.添加默认用户:

    [root@localhost ~]# useradd lizhouwei

    如果我们只是创建用户,而不使用任何选项,系统会默认值按照下面的步骤帮我们指定这些选项;

    [root@localhost ~]# grep "lizhouwei" /etc/passwd  
    [root@localhost ~]# grep "lamp" /etc/shadow 
    [root@localhost ~]# grep "lizhouwei" /etc/group lizhouwei:x:1000:   
    [root@localhost ~]# grep "lizhouwei" /etc/gshadow lizhouwei:!::
    [root@localhost ~]#ll -d /home/lizhouwei/
    [root@localhost ~]#ll /var/spod/mail/lizhouwei

    在 /etc/passwd 文件中按照文件格式添加一行用户信息。

    在 /etc/shadow 文件中按照文件格式添加一行用户密码信息。当然,这个用户还没有设置密码,所以密码字段是"!!",代表这个用户没有合理密码,不能正常登录。同时会按照默认值设定时间字段。

    在 /etc/group 文件中按照文件格式添加和用户相关的组信息。会以用户名对应的组作为用户的初始组,所以用户名不会写入第4个字段,也就是初始组为空。

     在 /etc/gshadow 文件中按照文件格式添加和用户相关的组密码信息。当然,我们没有设定组密码,所以这里没有密码,也没有组管理员。

    使用 /etc/skel/下的用户模板目录建立用户的家目录和邮箱。

    用户密码修改命令: passwd

    命令格式:

    [root@localhost ~]#passwd [选项] 用户名

    选项:

    选项 选项说明
    -S

    査询用户密码的状态,也就是 /etc/shadow 文件中的内容。仅 root 用户可用;

    -l 暂时锁定用户。仅 root 用户可用;
    -u 解锁用户。仅 root 用户可用;
    --stdin 可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用;

    说明:

    要想给其他用户设定密码,只有两种用户可行:一种是 root 用户;另一种是 root 通过 sudo 命令赋予权限的普通用户。也就是说,普通用户只能修改自己的密码,而不能设定其他用户的密码。

    root用户修改密码

    root用户修改密码时可以 passwd 新密码 用户名;

    普通用户修改密码

    普通用户只能修改自己的密码,修改密码时 先输入passwd命令,然后再输入新密码;

    查看用户密码状态

    [root@localhost ~]# passwd -S lizhouwei
    lizhouwei PS 1969-12-31 0 99999 7 -1 (Password set, SHA512 crypt.)(密码已设置,使 用SHA512加密。)

    上面这行代码的意思依次是:用户名 密码 设定时间(1969-12-31) 密码修改间隔时间(0) 密码有效期(99999) 警告时间(7) 密码不失效(-1)

    "-S"选项会显示出密码状态,这里的密码修改间 隔时间、密码有效期、警告时间、密码宽限时间其实分别是 /etc/shadow 文件的第4、5、6、7个字段的内容。

    锁定和解锁用户

    [root@localhost ~]# passwd -I lizhouwei
    
    解锁用户lizhouwei 的密码。
    [root@localhost ~]# passwd -u lizhouwei

    使用字符串作为用户的密码

    这种做法主要是批量添加用户时,给所有的用户设定一个初始密码。但是需要注意的是,这样设定的密码会把密码明文保存在历史命令中,会有安全隐患。所以,如果使用了这种方式修改密码,那么应该记住两件事情:第一,手工清除历史命令;第二,强制这些新添加的用户在第一次登录时必须修改密码(具体方法参考"chage"命令)。

    [root@localhost ~]# echo "123" | passwd -stdin lizhouwei

    说明:调用管道符,让 echo 的输出作为 passwd 命令的输入,就可以把 lizhouwei 用户的密码设定为"123"了。

    用户信息修改命令: usermod

    命令的格式 :

    [root@localhost ~]#usermod [选项] 用户名

    选项:

    选项 选项说明
    -u UID 修改用户的UID;
    -d 家目录 修改用户的家目录。家目录必须写绝对路径;
    -c 用户说明 修改用户的说明信息,就是 /etc/passwd 文件的第五个字段;
    -g 组名 修改用户的初始组,就是 /etc/passwd 文件的第四个字段;
    -G 组名 修改用户的附加组,其实就是把用户加入其他用户组;
    -s shell 修改用户的登录 Shell。默认是 /bin/bash;
    -e 日期 修改用户的失效曰期,格式为"YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段;
    -L 临时锁定用户(Lock);
    -U 解锁用户(Unlock);

    说明:usermod 命令多出了几个选项,其中,-L 可以临时锁定用户,不让这个用户登录。其实锁定的方法就是在 /etc/shadow 文件的密码字段前加入"!"。大家已经知道密码项是加密

    换算的,所以加入任何字符都会导致密码失效,所以这个用户就会被禁止登录。而解锁(-U)其实就是把密码字段前的"!"取消。
     
    锁定用户
    [root@localhost ~]# usermod -L lizhouowei

     解锁用户

    [root@localhost ~]# usermod -U lamp

    把lizhouwei用户加入root组

    [root@localhost ~]# usermod -G root lizhouwei

     修改用户说明

    [root@localhost ~]# usermod -c "test user" lizhouwei  

    用户密码状态修改: chage

    通过 chage 命令可以查看和修改 /etc/shadow 文件的第3个字段到第8个字段的密码状态

    命令的格式:

    [root@localhost ~]#chage [选项] 用户名

    选项:

    选项 选项说明
    -l 列出用户的详细密码状态;
    -d 日期 密码最后一次修改曰期(/etc/shadow 文件的第三个字段),格式为 YYYY-MM-DD;
    -m 天数 密码的两次修改间隔时间(第4个字段);
    -M 天数 密码的有效期(第5个字段);
    -W 天数 密码修改到期前的警告天数(第6个字段)
    -i 天数 密码过期后的宽限天数(第7个字段);
    -E 日期 账号失效时间(第8个字段),格式为 YYYY-MM-DD;

    查看一下用户密码状态

    [root@localhost ~]# chage -l lizhouwei

    把密码修改曰期归零

    [root@localhost ~]# chage -d 0 lamp

    说明:这样用户一登录就要修改密码

    删除用户命令:userdel

    命令格式:
    [root@localhost ~]# userdel [-r] 用户名
    选项:
    选项 选项说明
    -r 在删除用户的同时删除用户的家目录;
    删除用户
    [root@localhost ~]# userdel -r lizhouwei

    说明:在删除用户的同时如果不删除用户的家目录,那么家目录就会变成没有属主和属组的目录,也就是垃圾文件。

    查看用户的UID和GID命令:id

    id 命令可以査询用户的UID、GID 和附加组的信息
    命令格式:
    [root@localhost ~]# id 用户名

    查看用户的UID和GID

    能看到uid(用户ID)、gid(初始组ID), groups是用户所在组,这里既可以看到初始组,如果有附加组,则也能看到附加组

    [root@localhost ~]# id lizhouwei
    uid=1000(lizhouwei) gid=1000(lizhouwei) groups=1000(lizhouwei)

    切换用户身份命令:su

     su 命令可以切换成不同的用户身份 

    命令格式:

    [root@localhost ~]# su [选项] 用户名
    选项:
    选项 选项说明
    - 选项只使用"-"代表连带用户的环境变量一起切换;
    -c 命令 仅执行一次命令,而不切换用户身份
    说明:"-" 不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量。大家知道环境变量是用来定义用户的操作环境的,如果环境变量没有随用户身份切换,那么很多操作将无法正确执行。
    例如,普通用户 lamp 切换成超级用户 root,但是没有加入"-",那么虽然是 root 用户,但是 $PATH 环境变量还是 lamp 用户的,不包含 /sbin、/usr/sbin 等超级用户命令保存路径,所以无法使用管理员命令;而且 root 用户在接收邮件时,还会发现收到的是 lamp 用户的邮件,因为环境变量 $MAIL 没有切换过来。

  • 相关阅读:
    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程
    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介
    001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学
    001 Android Studio 首次编译执行项目过程中遇到的几个常见问题
    Dora.Interception,为.NET Core度身打造的AOP框架 [2]:以约定的方式定义拦截器
    Dora.Interception,为.NET Core度身打造的AOP框架 [1]:更加简练的编程体验
    监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile
    轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑
    轻量级ORM框架——第一篇:Dapper快速学习
    CF888G Xor-MST(异或生成树模板)
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/9942596.html
Copyright © 2011-2022 走看看