• linux 用户、用户组及相关命令(useradd 、passwd、userdel 、groupadd 、groupdel、usermod 、gpasswd 、 id、su)


    linux是一个多用户系统,用于权限管理(权限最小化);

    相关命令:

    7 8 9 10 11 12 13 14 15
    useradd passwd userdel groupadd groupdel usermod gpasswd id su

    1、linux系统中主组和附加组

    在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组;

    用户的基本组(主组)
    用户的附加组:用户额外属于的组,一个用户可以加入多个附加组

    2、Linux中的用户类别

    在linux系统中共有3种用户:

    管理员用户(root) uid=0 可以登录系统 有管理权限
    普通用户 1000<uid 可登录系统 没有管理权限
    系统用户 1<uid<999 不可以登录用户 没有管理权限

    注意:是否可以登录系统由shell类型决定,详见:本文中useradd命令讲解

    3、用户管理相关文件

    文件位置 文件信息
    /etc/passwd 用户基本信息
    /etc/shadow 用户密码信息、过期时间等
    /etc/group 用户组信息
    /etc/gshadow 用户组密码
    /etc/default/useradd 创建用户的默认配置信息
    /etc/skel/ 用户家目录模板
    /etc/login.defs 全局用户设定信息

    4、/etc/passwd文件详解

    /etc/passwd: 每行是一个用户,用来记录用户的基本信息,每行的格式

    account:password:UID:GID:GECOS:directory:shell
    其中:
    accout:用户名
    password:用户密码,密码位置默认是x
    UID:用户身份id,用来唯一的标识一个用户
    GID:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组ID)
    GECOS:用户描述信息,可以空白,也可以随意写(useradd -c )
    directory:用户家目录
    shell:用户所使用的shell类型
    /bin/bash–>可以登录系统
    /sbin/nologin–>该用户一定无法登录系统

    ╭─root@localhost.localdomain ~  
    ╰─➤  cat /etc/passwd
    root:x:0:0:root:/root:/bin/zsh
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    du:x:1000:1000:du:/home/du:/bin/bash
    
    root   :   x   :    0    :       0       :   newuser  :  /root  :  /bin/bash
    用户名  :  密码  :  用户id  :  用户所在组的id :  描述信息  :  家目录  :  shell类型
    

    5、/etc/group文件详解

    用户组信息

    linux,用户一定是属于一个组的在linux中,创建用户的时候,会自动创建一个组,组名和组id都和所创建的用户相同,而且,该用户会自动加入到这个组中;

    groupname:password:GID: [user1, user2…..]
    组成:
    groupname:组名
    password:组密码
    GID:组id
    [user1, user2…..]:该组中的用户列表

    ╭─root@localhost.localdomain ~  
    ╰─➤  cat /etc/group
    root:x:0:
    bin:x:1:
    daemon:x:2:
    sys:x:3:
    adm:x:4:
    mail:x:12:postfix
    tcpdump:x:72:
    du:x:1000:du
    

    6、/etc/shadow文件详解

    zxhk:  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :
    

    第一段:用户名:
    第二段:加密后的密码
    第三段:上次修改密码举例元年经过的天数1970年1月1日(如果该字段空,意味着该用户密码被禁用)
    第四段:密码最短使用时间(0表示不限制)
    第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码)
    第六段:密码到期前几天开始发送告警,提示密码即将过去,请立即修改
    第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录)
    第八段:密码过期时间(也是举例计算机元年经过的天数)(这里和前面的几个时间没有联系)
    第九段:保留字段

    ╭─root@localhost.localdomain ~  
    ╰─➤  cat /etc/shadow
    root:$6$8.xhQ.jTum4dlHEi$fM.SZ2c7mEx7pfCNRJbOrwGBDM5OUySnv7pXIGrjhDbCWEk8Omba3atvGw8GexM/IhEyxskiPx4sE4beJPVKK.::0:99999:7:::
    bin:*:17110:0:99999:7:::
    daemon:*:17110:0:99999:7:::
    du:$6$0RkDAuAfxyCuINAA$3PokksZIeoqccUXseqJBhhHoQEjT0G97IvztZNupUwBC4cxN3JtZkLlsaExH7Api0GTmDcASMZnCG/mVsa3dJ.::0:99999:7:::
    

    7、Useradd命令

    useradd [options] username
    options:
    -d:指定用户家目录 –home
    -c:用户说明信息–comment
    -e: 指的账号的过期时间–expiredate ;时间格式 YYYY/MM/DD
    -g:指的用户的基本组的组id –gid #1
    -G:指的用户的附加组列表 –groups #2
    -u :指的用户的uid #3
    -r :创建一个系统用户 #4 不创建家目录,不会复制 /etc/skel 下的文件;
    -s :指定用户的shell类型(/bin/bash/,/sbin/nologin) #5
    /bin/bash–>可以登录系统
    /sbin/nologin–>该用户一定无法登录系统

    useradd -s /sbin/nologin  -r user1                       #创建一个系统用户user1
    

    8、passwd 修改用户密码

    passwd [[options] username]

    options:
    -l:锁定用户
    -u:解锁用户
    -d:删除用户密码
    -e:让用户密码过期
    :如果不指定用户名,那么就是修改当前用户的密码
    --stdin

    echo “ 123“ | passwd --stdin user1        #表示给user1 用户设置密码123 (user1 用户必须存在)
    

    9、Userdel命令

    userdel [-r] username #-r:在删除用户的时候,连同用户数据一并删除
    rm -rf /home/username 删除用户名
    rm -rf /var/spool/mail/* 删除邮件mail

    10、 groupadd 创建用户组

    groupadd [-g] groupname # -g 指定组ID

    11、 groupdel 删除用户组

    groupdel groupname

    12、Usermod命令

    usermod [options] username
    options:
    -g, –gid 基本组组id #1
    -G, –groups 附加组组id #2
    -u, –uid user的id #3
    -s, –shell 更改shell类型 #4
    -L, –lock: 锁定用户账号
    -U : 解锁用户账号
    -l, –login变更使用者login时的名称为login_name
    -e, –expiredate 加上使用者帐号停止日期 ,日期格式为MM/DD/YY.
    -d, –home 更新使用者新的登入目录
    -m, –move-home:移动用户家目录至新的位置

    ╭─root@localhost.localdomain ~  
    ╰─➤  useradd -s /sbin/nologin test1
    ╭─root@localhost.localdomain ~  
    ╰─➤  usermod -s /bin/bash test1
    ╭─root@localhost.localdomain ~  
    ╰─➤  id test1
    uid=1001(test1) gid=1001(test1) group=1001(test1)
    
    

    13、gpasswd 命令

    option:
    -a, --adduser
    向名为 group 的组中添加用户 user
    -d, --deleteuser
    从名为 group 的组中移除用户 user

    ╭─root@localhost.localdomain ~  
    ╰─➤  usermod -G root du
    ╭─root@localhost.localdomain ~  
    ╰─➤  id du
    uid=1000(du) gid=1000(du) 组=1000(du),0(root)
    ╭─root@localhost.localdomain ~  
    ╰─➤  usermod -G du du
    ╭─root@localhost.localdomain ~  
    ╰─➤  id du
    uid=1000(du) gid=1000(du) 组=1000(du)
    ╭─root@localhost.localdomain ~  
    ╰─➤  man gpasswd 
    ╭─root@localhost.localdomain ~  
    ╰─➤  gpasswd -a du root
    正在将用户“du”加入到“root”组中
    ╭─root@localhost.localdomain ~  
    ╰─➤  id du
    uid=1000(du) gid=1000(du) 组=1000(du),0(root)
    ╭─root@localhost.localdomain ~  
    ╰─➤  gpasswd -a root du
    正在将用户“root”加入到“du”组中
    ╭─root@localhost.localdomain ~  
    ╰─➤  gpasswd -d du root
    正在将用户“du”从“root”组中删除
    ╭─root@localhost.localdomain ~  
    ╰─➤  gpasswd -d root du
    正在将用户“root”从“du”组中删除
    

    14、id命令

    作用:用来查看指定的用户的信息(或判断用户是否存在)

    id [-u|-g|-G] username
    option:
    -u:仅仅显示用户uid
    -g:仅仅显示用户gid
    -G:仅仅显示用户全部组id

    15、su命令(switch user)

    • 作用:进行切换用户
    • 格式:su – 目标用户
    • su命令和su -命令最大的本质区别就是:
      前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了;只有切换了Shell环境才不会出现PATH环境变量错误;su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了;用echo $PATH命令看一下su和su -以后的环境变量有何不同;以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令.
    ╭─root@localhost.localdomain ~  
    ╰─➤  su - du
    上一次登录:五 5月 10 20:30:49 CST 2019pts/0 上
    [du@localhost ~]$ 
    
    

  • 相关阅读:
    【干货】使用SIFT取证工作站校验文件哈希----哈希一致则文件具备完整性
    【干货】搭建国际化取证系统
    犯罪手法:信息隐藏,消失的上线。
    github信息安全开源课
    在线哈希工具
    node服务传输数据大小限制问题
    nodejs base64 编码解码
    十四,SpringBoot读取配置文件application.properties
    java后台服务器向Nodejs客户端发送压缩包文件
    java基于jcifs.smb实现远程发送文件到服务器
  • 原文地址:https://www.cnblogs.com/du-z/p/10840560.html
Copyright © 2020-2023  润新知