linux用户和组相关的命令

文章目录

  • linux用户和组相关的命令
    • 0.介绍
    • 1.用户管理
      • useradd创建用户
        • su切换用户
        • whoami查看当前用户
        • $SHELL显示shell类型
        • id查看用户属性
      • passwd修改密码
        • passwd
        • chage
        • usermod
      • usermod 修改用户属性
      • userdel 删除用户
    • 2.组管理
      • groupadd 创建组
      • groupmod 修改组
      • groupdel 删除组
      • gpasswd 修改组的密码
        • newgrp 切换用户的基本组
    • 3.示例

0.介绍

linux是多用户,多任务系统。文件系统是一种数据抽象
文件权限针对下面三种对象:属主,属组,其他人

  • 属主:拥有者
  • 属组:所属的组
  • 其他人:不属于上述两类

用户:分为管理员和普通用户

  • 管理员:root用户,id=0
  • 普通用户分为系统用户(用来执行系统程序,不能登录用来管理系统,id在1-499),可登录用户(id >500)

组:容器,映射用户群和访问权限

1.用户管理

可以创建用户,修改用户属性,删除用户,创建组,修改组属性,删除组等操作

useradd创建用户

useradd或adduser都可以用户创建用户
useradd tom
创建用户时,系统自动创建同名的组,用户的私有组,只为用户一个人使用

用户数据保存在/etc/passwd文件夹,格式如下
fedora:x:2003:2003:Fedora Community:/home/fedora:/bin/tcsh
用户名:密码占位符:UID:GID:注释信息:家目录:默认shell

useradd USERNAME:-u UID 指定uid,有效范围 0-65535,不能重复;如果没有给用户指定基本组,且与UID相同的GID没有被占用,这GID同UID-g GID 有效范围已有的GID的基本组-G GID 有效范围已有的GID,可以有多个额外组-c COMMENT 指定注释信息-d  /path/to/somewhere 指定家目录的路径-s /path/to/shell_command 指定shell路径-r 创建系统用户,ID号为1-499之间的用户系统用户的家目录有路径,但是不会被创建-M 不为用户创建家目录-m 必须为用户创建家目录

创建用户示例:
点击跳转示例1
点击跳转示例2

su切换用户

su (switch user) 命令,管理员su到普通用户,不需要用户密码;反之,不行

su USERNAME
su -l USERNAME
su - USERNAME

whoami查看当前用户

显示当前登录的用户名

$SHELL显示shell类型

echo $SHELL

id查看用户属性

id USERNAME:显示的用户uid gid等

id suse -u 显示uid-g 显示gid-gn 显示组名finger 查看用户信息
finger suse

passwd修改密码

linux没有密码的用户不允许登录

passwd  # 修改当前用户的密码
passwd USERNAME # 修改指定用户的密码,只有管理员有这个权限  passwd -l USERNAME # 锁定用户账号
passwd -u USERNAME # 锁定用户账号

修改密码示例:
点击跳转示例4

用户密码在/etc/shadow文件夹中,通常改文件没有任何权限,每一行格式如下
fedora:$6$CEJ63Rfa$UEsHnz/cx/tDRTFAfEawjEI7yGiOzedpMEXcjWvkRvDx14FmXceqquhmAtMWuv764zgtufgdUaNVEokrFkTfu1:19112:2:50:7:::
登录名 : 加密的密码串 : 最近一次修改密码的时间 : 密码最短使用期限 : 密码最长使用期限 : 密码到期警告天数 : 账号非活动天数 : 账号过期期限 : 预留段

  • 加密密码串
    $ 加密方法 $ 8位随机数salt $ 密码
    $分隔符,加密方法:1代表MD5加密,6代表sha-512
  • 最近一次修改密码的时间:1970/1/1开始到上次修改密码时间
  • 账号非活动天数:密码到期后,账号没有立即锁定账户,但是用户登录必须修改密码
  • 加密算法:
  1. 对称加密:加密解密使用同一个秘钥,例如:3DES,AES;
    缺点:秘钥管理和分发不利
  2. 非对称加密:公钥加密,秘钥是成对的,私钥(s)/公钥§,公钥可以从私钥中提取得到,公钥加密,私钥解密。例如:RSA,DSA;
    特点:加密速度慢,安全性高;能完成秘钥分发
  3. 单项加密:只能加密,不能解密,类似于hash,用于实现提取数据特征码;例如:md5(128位),sha,SHA1(160位),SHA256(256位),SHA512
    特点:无论输入多大数据,输出是定长的;输入一样,结果一定一样,反正输入数据微小改变,结果巨大改变(雪崩效应)
    通常密码加密,还需要加salt,salt不同,密码加密后hash值也不一样。防止hash值相同时,密码被破解。所以即使看到salt和加密后hash值,也不能推出原密码
    加密命令
    openssl passwd -1 -salt 12345678 redhat

密码安全策略
足够复杂:
1.密码长度至少5位以上;
2.要包含大小写,数字,特殊字符至少三类;
3.要定期更换,不要重复使用此前用过的密码

查看passwd和shadow文件的帮助文件

[root@node1 ~]# whatis shadow
shadow (3)           - 加密密码文件工具函数
shadow (5)           - 影子化了的密码文件
[root@node1 ~]# man 5 shadow   可以查看相关用法
[root@node1 ~]# whatis passwd
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens
passwd (5)           - password file
[root@node1 ~]# man 5 passwd

passwd

修改秘钥属性有passwd,chage,usermod方法,但是只有管理员可以操作

passwd USERNAME-e  YYYY-MM-DD-i 非活动天数-n 密码最短使用天数-x 最长使用天数-w 警告天数

修改密码示例:
点击跳转示例4

chage

chage USERNAME-d 修改最近一次密码修改时间-m 最短使用天数-M 修改最长使用天数-W 警告天数-I 非活动天数-E 过期时间

usermod

usermod USERNAME-e YYYY-MM-DD 过期时间 -i day 非活动天数

usermod 修改用户属性

可以修改用户属性

usermod:-u UID-g GID-G GID 修改额外组,覆盖原来的额外组-a -G 保留原来的额外组,并追加新GID  -c COMMENT-s /PATH/TO/SHELL-l NEW_NAME 修改用户的登录名称-d /path/to/somewhere  修改家目录-m -d /path/to/somewhere 修改家目录,并将原家目录中的文件移动过去-r 创建系统组

每个家目录是由系统从/etc/skel目录中的隐藏文件生成的默认家目录。
修改用户属性示例:
点击跳转示例3
点击跳转示例5

userdel 删除用户

不会删除用户家目录
userdel USERNAME

2.组管理

groupadd 创建组

创建用户时,会给用户创建一个私有组(用户基本的组),除此之外的组成为额外组,系统用户的组称为系统组。

groupadd GRPNAME-g 创建组的时候指定GID

/etc/group文件存放组的信息
组名:密码占位符:GID:以此组为额外组的用户列表
新建组示例:
点击跳转示例1

groupmod 修改组

相当于操作/etc/group文件夹

groupmod 修改组属性-g GID-n NEW_NAME

groupdel 删除组

groupdel GRPNAME

gpasswd 修改组的密码

当其他用户不属于这个组时,但需要临时使用这个组,就需要组密码,才能使用这个组
gpasswd GROUPNAME
组密码存放在/etc/gshadow目录下,格式如下
hellogrp:$6$Lt7iB/9mtcO/$AJ1NGZFNOSO7dN96ZUrGThD6vN.1r0IpIUDfgfRA9WUBAScaBz3RrFXns.q.wMp4DOxfkv2KzfJMVb3o5u6Fe0::
组名:组密码:管理员:成员

newgrp 切换用户的基本组

newgrp GROUPNAME
临时切换当前用户的基本组,退出使用exit
修改组密码示例:
点击跳转示例6

3.示例

示例1

创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux

groupadd -g 3003 distro
groupadd linux
useradd -u 2002 -g distro -G linux mandriva

创建结果如下

[root@node1 ~]# tail -2 /etc/group
linux:x:1001:mandriva
distro:x:3003:
[root@node1 ~]# tail -1 /etc/passwd
mandriva:x:2002:3003::/home/mandriva:/bin/bash

示例2

创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;

useradd -c "Fedora Community" -s /bin/tcsh fedora

创建结果如下

[root@node1 ~]# tail -1 /etc/passwd
fedora:x:2003:2003:Fedora Community:/home/fedora:/bin/tcsh

示例3

修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora

usermod -u 4004 -g linux -G distro,fedora mandriva

创建结果如下

[root@node1 ~]# id mandriva
uid=4004(mandriva) gid=1001(linux) 组=1001(linux),3003(distro),2003(fedora)

示例4

给fedora加密码,并设置其密码最短使用期限为2天,最长为50天

passwd fedora
passwd -n 2 -x 50 fedora
或者
chage -m 2 -M 50 fedora

结果如下

[root@node1 ~]# id fedora
uid=2003(fedora) gid=2003(fedora) 组=2003(fedora)
[root@node1 ~]# passwd fedora
更改用户 fedora 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]# passwd -n 2 -x 50 fedora
调整用户密码老化数据fedora。
passwd: 操作成功

示例5

将mandriva的默认shell改为/bin/bash

usermod -s /bin/bash mandriva

示例6

创建一个hellogrp组,设置密码;并且使用fedora用户基本组切换为hellogrp,创建一个1.txt文件

[root@node1 ~]# groupadd hellogrp
[root@node1 ~]# gpasswd hellogrp
正在修改 hellogrp 组的密码
新密码:
请重新输入新密码:
[root@node1 ~]# su - fedora
[fedora@node1 ~]$ cd /tmp
[fedora@node1 /tmp]$ id
uid=2003(fedora) gid=2003(fedora) 组=2003(fedora)
[fedora@node1 /tmp]$ touch 1.txt
[fedora@node1 /tmp]$ ls -l
总用量 0
-rw-rw-r-- 1 fedora fedora  0 5月   1 15:45 1.txt
[fedora@node1 /tmp]$ newgrp hellogrp
密码:
[fedora@node1 /tmp]$ touch 2.txt
[fedora@node1 /tmp]$ ls -l
总用量 0
-rw-rw-r-- 1 fedora fedora    0 5月   1 15:45 1.txt
-rw-r--r-- 1 fedora hellogrp  0 5月   1 15:46 2.txt
[fedora@node1 /tmp]$ id
uid=2003(fedora) gid=4006(hellogrp) 组=4006(hellogrp),2003(fedora)
[fedora@node1 /tmp]$ exit
exit

如果切换到该用户已有的额外组,则不需要输入组密码

linux新增、修改用户和组的方法相关推荐

  1. Linux centos修改用户所属组的方法

    Linux修改用户所属组1.设置某个用户所在组1 usermod -g 用户组 用户名 注:-g|--gid,修改用户的gid,该组一定存在2.把用户添加进入某个组(s)1 usermod -a -G ...

  2. linux usermod修改用户所在组方法

    usermod 用户名 -g 组名 -g<群组> 修改用户所属的群组. -G<群组> 修改用户所属的附加群组. 转载于:https://www.cnblogs.com/wuyo ...

  3. Linux中修改用户UID和组GID的方法

    Linux中修改用户UID和组GID的方法 http://www.sijitao.net/2401.html 发表时间:2016-04-20 21:30 | 分类: Linux | 浏览:2,344 ...

  4. linux 添加用户主目录,linux下修改用户主目录的方法

    linux下修改用户主目录的方法 第一,修改/etc/passwd文件 第二,usermod命令 具体方法: 第一种方法:vi /etc/passwd 找到要修改的用户那几行,修改掉即可.此法很暴力, ...

  5. linux基础入门---用户和组管理命令

    计算机中用户的作用:主要实现资源分享,在分享资源同时涉及到资源安全,又新增用户密码认证,使其资源由特定权限的用户或用户组才可访问. linux系统中用户和组分类: 用户分为:管理员用户(root).普 ...

  6. linux能修改用户的权限,linux怎样修改用户权限

    ls -l  查看目录下的文件详细信息 ll 同上 whoami 功能说明:先似乎用户名称. 语 法:whoami [--help][--version] 补充说明:显示自身的用户名称,本指令相当于执 ...

  7. Linux——万字总结用户与组相关知识!建议收藏!

    目录 用户和组 用户账户 用户的家目录 组账号 创建用户背后发生了什么? ​ 小练习:# 截取第七字段并查找出几种 useradd命令 userdel -r 用户名 -->家目录和本地邮件目录全 ...

  8. linux 查看当前用户和组的信息,Linux查看所有用户和组信息

    主要通过以下两个命令: cat /etc/passwd cat /etc/group 步骤一:cat /etc/passwd查看所有的用户信息,详情如下图: 步骤2:cat /etc/passwd|g ...

  9. linux下创建用户及组

    linux下创建用户及组: 1.创建组 groupadd  组名 2.创建用户,并将用户添加到组 useradd  用户名  -g  组名 3.更改用户的密码 password  用户名 4.修改目录 ...

最新文章

  1. 基于微软开源深度学习算法,用 Python 实现图像和视频修复
  2. python求圆柱表面积_python基础知识-字典
  3. linux日常运维手册_Linux日常运维上传下载工具lrzsz
  4. 设置IDEA中各种线条颜色
  5. 阿里云在应用扩缩容下遇到的挑战与选型思考
  6. 计算机科学的大部分研究是基于,计算机科学
  7. php try catch 作用域,php作用域
  8. 攻防演练中的业务逻辑漏洞及检测思路
  9. 第六章勘误以及Normalization算法不完整
  10. [注]什么是用户?估计90%人不知道
  11. Github上好的Android开源框架
  12. synchronized可重入锁
  13. linux socket版本 can,linux socket can程序cantool
  14. 推荐好用的ssh远程连接 linux的工具
  15. 开学必备宿舍神器,续航好的蓝牙耳机推荐
  16. 计算机硬盘容量分配,电脑磁盘分区容量大小怎么调整
  17. 《python股票量化交易从入门到实践》摘要
  18. 数学小故事之 柯西的故事
  19. 每当我夜深人静的时候下载小电影,总是会卡在百分之九十九,这是正义的制裁么?
  20. linux服务器之间文件传输scp

热门文章

  1. HTML5创作生日蛋糕,three.js创作生日蛋糕,生日快乐3D建模动画
  2. Android 完美实现图片圆角和圆形(对实现进行分析)
  3. html做出便签效果,便签菜单.html
  4. 面试后说hold什么意思_常说的hr面试是指什么意思
  5. Android和Linux:你俩到底啥关系
  6. MySQL执行计划解读 转他人文章
  7. 从零开发微信公众号系列 【一】账号准备及公众号类型简介
  8. 如何更改Apple Watch 上的表盘?
  9. js文件名去除后缀名
  10. U盘、硬盘插入没反应,右下角有设备但我的电脑里没有