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 没有切换过来。

  • 相关阅读:
    cmd 一键获取 所有连接过的wifi 密码
    MYSQL注入语句
    Web安全篇之SQL注入攻击
    Kali Linux 不能联网上网 解决方法
    php杂项
    laravel下的数据序列化
    填充数据
    css
    array
    GD库常用函数
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/9942596.html
Copyright © 2011-2022 走看看