温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

linux用户/用户密码和用户组管理

发布时间:2020-07-22 04:31:52 来源:网络 阅读:323 作者:Asn_Fy 栏目:系统运维
  • 用户配置文件:/etc/passwd

    cat /etc/passwd查看linux用户配置文件:linux用户/用户密码和用户组管理
    *用户配置文件的内容一共分为7段,通过 :划分,
    第一段代表用户名
    第二段x代表密码,保存在/etc/shadow文件中
    第三段代表uid(用户编号),
    第四段代表gid(用户组编号
    第五段代表注释(通常为空或描述用户相关注释)
    第六段代表用户家目录
    第七段代表用户的shell(通常为/bin/bash,系统创建用户有/sbin/nologin等,nologin表示不能登录)

  • 密码配置文件:/etc/shadow
    linux用户/用户密码和用户组管理
    *密码配置文件与/etc/passwd用户配置文件对应,分为9段,通过 :划分,
    第一段代表用户名,
    第二段代表加密后的密码(两个用户密码相同,加密后的值也不同)
    第三段代表上次更改密码的日期(单位:天,从1970/01/01计算到上次修改密码那天过了多少天的天数)
    第四段代表两次修改密码中间所需的最小天数
    第五段代表密码保持有效的最大天数
    第六段代表密码失效前多少天开始提示用户
    第七段代表用户在没有登录的情况下账号保持有效的最大天数
    第八段代表用户账号的失效时间
    第九段暂无意义,保留域

  • 系统备份文件
    linux用户/用户密码和用户组管理
    *在/etc目录下出现的一些文件名后面加 - 符号的文件是系统自动备份文件,用于误删重要文件时恢复数据

  • 用户组管理
    1.增加用户组:groupadd groupname
    创建好用户组之后查看用户组配置文件,显示已经创建成功,gid(用户组编号)为1004*linux用户/用户密码和用户组管理
    2.创建用户组时指定gid(用户组编号),-g参数
    *指定gid时选择1000以上未被使用的数字,1000以下为系统保留gidlinux用户/用户密码和用户组管理
    3.删除用户组:groupdel groupname
    删除用户组时,如组内有用户则不能删除*
    linux用户/用户密码和用户组管理

  • 用户管理
    1.创建用户: useradd username
    新增用户时如不指定用户组,会创建一个与username相同的组*
    linux用户/用户密码和用户组管理
    2.创建用户时指定用户组: -g 参数
    *如下图:创建用户usertest2时,指定用户组为grouptest,创建完成后查看用户配置文件gid为用户组grouptest的gid:1001
    linux用户/用户密码和用户组管理
    **
    补充:
    -u参数:指定用户uid(用户编号)
    -d参数:指定用户家目录
    -s参数:指定用户shell(/bin/bash、nologin等)
    -M参数:在创建用户时,不创建家目录
    创建用户命令还可以是:adduser username*
    3.删除用户:userdel username
    *需要注意在使用该命令删除用户后,不会删除用户家目录,ls /home发现usertest2用户目录还在
    linux用户/用户密码和用户组管理
    4.删除用户的同时删除用户家目录:-r 参数
    linux用户/用户密码和用户组管理
    5.usermod命令:更改用户信息
    修改用户uid:usermod -u uid username
    修改用户gid:usermod -g gid username
    修改用户家目录:usermod -d 目录路径 username
    修改用户shell:usermod -s shell路径 username
    锁定用户:usermod -L username
    解锁用户:usermod -U username
    修改用户拓展组:usermod -G groupname username
    查看用户拓展组信息:id username,linux中用户可以属于多个组,如下图第三列显示的就是用户拓展组*
    linux用户/用户密码和用户组管理
    给linux01用户添加用户组linux02:
    linux用户/用户密码和用户组管理
    给linux01用户添加多个组(linux02、linux03):
    *需要给用户添加多个拓展组时,需要写上所有要添加的组用","分隔开,如果第一次添加linux02组,第二次再添加linux03组,那么linux03组会覆盖linux02组,linux01用户的拓展组就只有linux03
    linux用户/用户密码和用户组管理

  • 用户密码管理
    1.更改密码:
    root用户更改密码命令:passwd
    提示密码难度不够时,再次输入即可更改成功*
    linux用户/用户密码和用户组管理
    普通用户更改密码命令:passwd username
    *提示密码长度不够时,再次输入即可更改成功
    linux用户/用户密码和用户组管理
    密码更改成功后查看密码配置文件/etc/shadow中linux01的第二列已经是加密内容:
    第二列显示"!!"代表用户未设置密码,不能登录*
    linux用户/用户密码和用户组管理
    当第二列显示 "*"号时代表密码被锁定,也是无法登陆的用户*
    linux用户/用户密码和用户组管理
    2.锁定与解锁用户密码:
    锁定密码:passwd -l username
    *将刚才创建好密码的用户linux01锁定后查看密码配置文件/etc/shadow第二列密码加密内容前面显示"!!",代表用户密码已被锁定
    linux用户/用户密码和用户组管理
    解锁密码:passwd -u username
    解锁用户linux01的密码后,查看密码配置文件显示正常*
    linux用户/用户密码和用户组管理
    **锁定与解锁用户密码还可以使用上文所说的usermod命令,-L 参数:锁定密码,-U 参数:解锁密码
    3.stdin参数:
    给用户设置密码时,使用stdin参数,可以直接修改无须二次验证,常用语编写shell脚本中

    linux用户/用户密码和用户组管理
    4.一次性修改密码:(在不使用stdin参数时,也可以无需二次验证修改密码)
    使用echo -e一次性修改密码,echo命令加上-e参数时,\n可以解析为换行( \t → tab),组合管道符"|"使用可以直接修改密码,无需二次验证*
    linux用户/用户密码和用户组管理

  • 密码生成工具:mkpasswd
    1.安装expect包:yum -y install expect
    linux用户/用户密码和用户组管理
    2.生成随机密码:
    *输入mkpasswd即可生成随机密码,-l 参数:指定生成密码的长度,-s 参数:指定生成的随机密码包含几个特殊字符linux用户/用户密码和用户组管理

    su命令:
    *su命令有两种用法:1.切换用户,2.以某个用户的身份执行一条命令
    1.切换用户:su - username

[root@localhost ~]# su - linux01     # - 切换用户的同时切换用户环境变量
上一次登录:二 9月  3 19:02:22 CST 2019pts/0 上
[linux01@localhost ~]$ pwd 
/home/linux01    #切换完成后查看当前位置显示在用户家目录中
-------------------------------------------------------------------
[root@localhost ~]# su  linux01    
[linux01@localhost root]$ pwd
/root         #不加 - 只切换用户不切换用户环境变量,当前位置还在/root目录中
[linux01@localhost root]$ ls
ls: 无法打开目录.: 权限不够

2.以某个用户的身份去执行命令: -c 参数
*以linux01用户的身份在/test目录下创建文件,查看文件属于linux01用户

[root@localhost ~]# su - -c "touch /test/linux01file.txt" linux01
[root@localhost ~]# ls -l /test/
总用量 0
-rw-rw-r-- 1 linux01 linux01 0 9月   3 19:21 linux01file.txt

sudo命令:
*让普通用户临时拥有root用户的权限

使用linux01用户查看root用户家目录:

[linux01@localhost ~]$ whoami
linux01
[linux01@localhost ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够

给linux01用户添加sudo权限:

[root@localhost ~]# visudo #编辑sudo配置文件

找到配置文件用以root开始的行:
linux用户/用户密码和用户组管理
添加如下内容,使linux01用户可以临时拥有root用户的ls、cat权限:
linux用户/用户密码和用户组管理
切换linux01用户,使用sudo查看/root目录以及目录中的文件:

[root@localhost ~]# su - linux01
上一次登录:二 9月  3 21:20:21 CST 2019pts/0 上
[linux01@localhost ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[linux01@localhost ~]$ sudo ls /root #在sudo配置文件中添加权限后即可查看
[sudo] linux01 的密码:   #第一次执行需要验证用户密码
test.log
[linux01@localhost ~]$ sudo cat /root/test.log
ABCDEFG

如需在使用sudo时不验证密码,在配置文件中加上NOPASSWD: 即可:
linux用户/用户密码和用户组管理

[root@localhost ~]# su - linux02
[linux02@localhost ~]$ 
[linux02@localhost ~]$ sudo ls /root/
test.log     #修改配置文件后没有要求密码验证,直接显示结果

限制root远程登录:
*在某些情况下,为安全考虑可以限制root用户远程登录

[root@localhost ~]# vi /etc/ssh/sshd_config #编辑配置文件限制root远程登录

将此次配置项的注释符号"#"去掉,修改配置值为no
linux用户/用户密码和用户组管理

[root@localhost ~]# systemctl restart sshd  #重启ssh服务

远程登录提示SSH服务器拒绝了密码,限制远程登录成功
linux用户/用户密码和用户组管理
在限制root用户使用远程登录后,有需要的普通用户可以使用su命令切换到root用户,但同时又不想让普通用户知道root密码,此时可以使用sudo免密码验证登录root用户:
编辑sudo配置文件:
linux用户/用户密码和用户组管理
此时即可使用sudo免密码认证登录root用户:

[linux01@localhost ~]$ whoami
linux01
[linux01@localhost ~]$ sudo su - root
上一次登录:二 9月  3 22:44:47 CST 2019pts/0 上
[root@localhost ~]# 
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI