谢烟客---------Linux之用户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谢烟客---------Linux之用户相关的知识,希望对你有一定的参考价值。
《上邪》:
上邪!我欲与君相知,长命无绝衰。山无陵,江水为竭,冬雷震震夏雨雪,天地合,乃敢与君绝!
基础框架:
用户、密码、权限、组
属主、属组
进程的安全上下文
用户密码相关的配置文件
用户密码相关的命令
用户user
计算机用一个用户名识别、区辨使用电脑或网络服务的人。也可以说计算机将现实中的人映射为一个独立的账号。
计算机更易识别的是数字并非字串,而人易记的是字串,能否用人易理解的字串来表示计算机易识别的数字呢?Sun公司,就研发了一种用操作系统作为抽象底层硬件功能的中间层来理解的框架,你不必关心它是什么,只需要知道当我们输入用户名时,调用此中间层或nsswitch的库,就能完成名称到数字的转换。
nsswitch的配置文件 /etc/nsswitch.conf 库文件 /usr/lib64/libnss*
密码password
计算机每为一个用户分配一个用户账号,就要分配一些资源可供此用户使用,为了保证使用这些资源必须是此用户账号所对应的用户,需要一种可靠机制保证,pam用户认证框架,一种中间层,就能在用户输入密码后,对密码进行校验。
pam的配置文件 /etc/pam.d/ 库文件 /usr/lib64/security/
资源指派的层级
更为精细控制用户对资源的访问权限,用户更为安全,更能保障计算机的安全。
认证:Authentication 提供用户名和密码,只代表用户能进入此计算机的范围。
授权:Authorization 基于授权的方式,确定用户能够访问资源的范围。
授权的机制:Linux哲学思想"一切皆文件",用户也不例外,对资源的授权是通过对文件附加一层元数据,文件属于谁
审计:Audition ,文件资源归你所使用,具体怎么用?确保用户对文件一个合理的使用范围.
用户的分类
不同用户对相同的资源将有不同的使用权限,一般来说:管理员的权限几乎拥有系统上的所有权限。但是并非所有管理员都是理性的,不同的发行版对管理员的权限开放程度都各有不同,redhat发行版6.0之后,比如,对于删除根就做了一定的限制,只有 rm --no-preserve-root 时,才能删除根,当然rm -rf /*也能完成。 一字之师著名作家列夫托尔斯泰曾说:“幸福的家庭大抵一样,不幸的家庭却各有不同。”对于普通用户,对资源的访问的权限各有各的不同。
计算机是依据ID号识别用户的,管理员用0,普通用户用1-65535中间的任意数字表示。
管理员:root,uid: 0
普通用户:非root,uid: 1-65535
系统用户: 为服务类(守护类)进程获取系统资源进行权限分配,1-499
登陆用户: 交互式登陆使用 500+
组:Groupname/GID "角色”使多个用户拥有相同权限的容器,可容纳多个用户
组的分类:
管理员组:root 0
普通组:
系统组 1-499 , 1-999(rhel7)
普通组 500-65535 , 1000+(rhel7)
* 查看系统的版本
[[email protected] ~]# cat /etc/centos-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# uname -r 3.10.0-514.6.2.el7.x86_64
-rw-r--r-- 1 root root 9117 Jul 28 2017 boot.log - 普通文件 rw- 属主的权限 r-- 属组的权限 r-- 非属主、属组的权限 1 文件被硬链接的次数 左root 文件的属主 右root 文件的属组
属主:文件的属主,文件所有者
组的分类:
基本组:用户必须属于某个用户(角色)
私有组: 组名同用户名,且包含一个用户
用户的附加组(额外组) :判断用户的权限
进程的安全上下文即一个程序被调度至CPU上运行时,进程的身份是谁?
进程的身份取决于进程的发起者。
程序对文件是否有权限:
程序发起者,同文件的属主,应用属主的权限。
程序发起者,同文件 的属组,应用属组的权限。
否则,应用非属主、属组的权限
用户名和密码保存的文件位置,文件也被称为"配置文件"
获取配置文件的格式:
[[email protected] ~]# man 5 passwd [[email protected] ~]# man 5 shadow [[email protected] ~]# man 5 gshadow [[email protected] ~]# man 5 group *man5 专用保存配置文件格式的章节
1)/etc/passwd配置文件
作用:用于保存"用户及其属性信息(名称,UID,基本组ID)"
文件格式:name:password:UID:GID:GECOS:directory:shell
用户名:密码占位符:用户的ID号:用户的基本组ID:用户的完整信息(命名,办公电话,..):用户的主目录:用户登陆后的默认shell(用户默认所使用的shell程序)
相关的命令: useradd,userdel,usermod,chfn,chsh,finger,id,su
2)/etc/group配置文件
作用: 用于保存 "组及其属性信息"
文件格式:name:password:GID:user_list
组名:组密码占位符:组ID:以当前组为附加组的用户列表(多个用户时,分隔符为逗号)
相关的命令:groupadd,groupdel,groupmod,gpasswd
3)/etc/shadow配置文件
作用:用于保存"用户密码及其相关属性"
文件权限: (mode:----------,密码单独存放位置)
用户名:加密后的密码:最近一次更改密码的日期:密码的最小使用期限:密码的最大使用期限:密码到最大使用期限前的一段时间(警告时间):密码到最大使用期限后的一段时间(非活动期限):账号的过期日期
相关的命令:useradd,usermod,passwd,chage
4)/etc/gshadow配置文件
作用: 用于保存"组密码及其相关属性",基本组切换时,需要使用到
相关的命令,gpasswd
密码基础概念
用户名:加密后的密码:最近一次更改密码的日期
加密后的密码:
$6$cFyIyt7B$4Kw7Xk4xW8BpvKQZHhOk4lShz9ax83N2eOfLCAISmTk4VVpe6Z0Iplv8LEGEdMczUi9htOmHrvQJTv0m5ks5a.
$6$:sha512
$6$cFyIyt7B$:杂质
加密: 基于某种算法,将明文转换为密文,(AES、DES、RC4、Rabbit、TripleDes等多种算法)
解密: 基于某种算法,将密文转换为明文
单向加密:提取数据的特征码或指纹
特点:
1、只能加密,不能解密
2、定长输出:对任何数据加密,输出位数一致
3、雪崩效应:初始数据的微小波动,结果巨大差异
4、长度越长,消耗CPU时钟周期越多,消耗空间越大
计算指纹的工具:
128,md5
160,sha1
224,sha224
sha256
sha384
sha512
对数据加密:COMMAND FILE
密码复杂性策略
1、数字、大小写字母、特殊字符、至少3种
2、长度足够长
3、密码循环同期长
4、足够随机
5、密码定期更换
单身加密如何破解:枚举方法
配置文件相关的命令框架:
方法一:命令总结
方法二:命令语法
方法三:按文件格式,分析相关的命令的使用方法
------------------------------------------------------------------------------
方法一:命令总结
/etc/passwd文件相关的命令:
useradd,userdel,usermod,chfn,chsh,finger,id,su命令
修改用户名: usermod -l new_name old_name
添加id:useradd -u UID user
修改id: usermod -u UID user
添加组Id: gropadd -g GID group
指定组ID:useradd -g GID/GROUP user
修改组ID:groupmod -g GID group
修改组ID: usermod -g GID/GROUP user
添加系统用户: useradd -r user
添加用户基本信息: chfn,useradd -c ‘GECOS‘ user
查看:finger user,
修改:chfn,usermod -c ‘GECOS‘ user
添加用户主目录: useradd -d DIR user
添加用户不给主目录: useradd -M user
修改用户主目录: usermod [-m] -d DIR user,-m,原目录文件会随之移动
默认shell: useradd -D -s SHELL, usermod -s SHELL user,useradd -s SHELL user,chsh
删除用户: userdel user
删除用户时,连家目录删除,userdel -r user
/etc/group文件相关的命令:
groupadd,groupdel,groupmod,gpasswd命令
修改组名: groupmod -n new_name old_name
指定附加组: useradd -G group1,group2,... group
修改附加组: usermod -G group1,group2,... group
添加附加组: usermod -a -G group1,group2,... group; 对原有的group进行附加
删除组: groupdel group
添加系统组: groupadd -r group
修改组密码:gpasswd group
临时切换基本组: newgrp group
/etc/shadow文件相关的命令:
useradd,usermod,passwd,chage命令
锁定用户: usermod -L user, passwd -l user,
解锁用户: usermod -U user, passwd -u user,
设定用户的密码: echo "STRING" | passwd --stdin user
删除用户的密码: passwd -d user
最近一次修改密码的时间: chage -d DAYS user
密码的最小使用期限: passwd -n DAYS user,chage -m DAYS user
密码的最大使用期限: passwd -x DAYS user, chage -M DYAS user
密码到最大使用期限前的一段时间(警告时间): passwd -w DYAS user, chage -W DAYS user
密码到最大使用期限后的一段时间(非活动期限): useradd -D -f DAYS user,usermod -f DAYS user
passwd -i DAYS user,chage -I DAYS user
账号的过期日期: useradd -D -e DYAS user, usermod -e DAYS user, passwd -e user(马上过期)
chage -e DASY user
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
方法二:命令语法
/etc/passwd文件相关的命令:
useradd命令语法
[[email protected] ~]# type useradd #获取useradd的类型 useradd is hashed (/usr/sbin/useradd) #结果被hash化了,之前用过此命令 [[email protected] ~]# hash -r #清理hash表 [[email protected] ~]# type useradd #重新获取useradd的类型 useradd is /usr/sbin/useradd #useradd是外部命令 [[email protected] ~]# useradd --h #获取命令的帮助 useradd: option ‘--h‘ is ambiguous; possibilities: ‘--home-dir‘ ‘--help‘ Usage: useradd [options] LOGIN useradd -D useradd -D [options] 作用:添加用户和修改用户默认属性 -u, --uid UID #添加用户时指明 用户的UDI -g, --gid GROUP #添加用户时指明 用户的GID/GROUP -G, --groups GROUPS #添加用户时指明 用户的附加组 -c, --comment COMMENT #添加用户时指明 用户的完整信息 -d, --home-dir HOME_DIR #添加用户时指明 用户的主目录 -D, --defaults #添加用户时不用指明,即会有的信息 默认属性 -e, --expiredate EXPIRE_DATE #默认的过期时间 -f, --inactive INACTIVE #默认的非活动期 -M, --no-create-home #添加用户时不创建其家目录 -p, --password PASSWORD #用户的密码 -r, --system #添加系统用户 -s, --shell SHELL #默认shell,添加时指明shell
userdel命令的语法
[[email protected] ~]# type userdel userdel is /usr/sbin/userdel [[email protected] ~]# userdel --h Usage: userdel [options] LOGIN options: -r, --remove 移除用户家目录
usermod命令的语法
[[email protected] ~]# type usermod usermod is /usr/sbin/usermod [[email protected] ~]# usermod --h usermod: option ‘--h‘ is ambiguous; possibilities: ‘--home‘ ‘--help‘ Usage: usermod [options] LOGIN -u, --uid UID #修改用户的UID -g, --gid GROUP #修改用户的GID/GROUP -G, --groups GROUPS #修改用户的附加组 -c, --comment COMMENT #修改用户的完整信息, -d, --home-dir HOME_DIR #修改用户的主目录-m表示连用户的家目录一块移动 -s, --shell SHELL #修改用户的shell
chfn命令
[[email protected] ~]# type chfn chfn is /usr/bin/chfn [[email protected] ~]# chfn --h chfn: option ‘--h‘ is ambiguous; possibilities: ‘--home-phone‘ ‘--help‘ Usage: chfn [options] [username]
chsh命令
[[email protected] ~]# type chsh chsh is /usr/bin/chsh [[email protected] ~]# chsh --help Usage: chsh [options] [username]
finger命令
[[email protected] ~]# type finger finger is /usr/bin/finger [[email protected] ~]# finger --help finger: invalid option -- ‘-‘ usage: finger [-lmps] [login ...]
id命令
[[email protected] ~]# type id id is /usr/bin/id [[email protected] ~]# id --help Usage: id [OPTION]... [USER] -n, --name 与-u,-g,-G连用,用于显示名字 -u, --user 显示用户ID -g, --group 显示组ID -G, --groups 所有组ID
su命令
[[email protected] ~]# type su su is /usr/bin/su [[email protected] ~]# su --help Usage: su [options] [-] [USER [arg]...] -, -l, --login 为交互式登陆 -s, --shell <shell> 切换时改变其shell环境 -g, --group <group> 切换时改变其基本组 -c, --command <command> 以另一个用户的身份执行命令
/etc/group文件相关的命令:
groupadd命令
[[email protected] ~]# type groupadd groupadd is /usr/sbin/groupadd [[email protected] ~]# groupadd --help Usage: groupadd [options] GROUP Options: -g, --gid GID #添加组ID -p, --password PASSWORD #添加组密码 -r, --system #添加系统组
groupdel命令
[[email protected] ~]# type groupdel groupdel is /usr/sbin/groupdel [[email protected] ~]# groupdel --help Usage: groupdel GROUP 作用删除组
groupmod命令
[[email protected] ~]# type groupmod groupmod is /usr/sbin/groupmod [[email protected] ~]# groupmod --help Usage: groupmod [options] GROUP #修改组 -g, --gid GID #修改组ID -n, --new-name NEW_GROUP #修改组名 -p, --password PASSWORD #修改组密码
/etc/shadow文件相关的命令:
useradd、usermod、passwd、chage
useradd -D [options] -b, --base-dir BASE_DIR 默认主目录 -e, --expiredate EXPIRE_DATE 默认的过期时间 -f, --inactive INACTIVE 默认的非活动天数 -g, --gid GROUP -s, --shell SHELL
usermod [options] LOGIN -e, --expiredate EXPIRE_DATE 添加即可指明过期时间 -f, --inactive INACTIVE 非活动天数
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] -n, --minimum DAYS 最小使用天数 -x, --maximum DAYS -w, --warning DAYS -i, --inactive DAYS -e, --expire 使密码过期 -S, --status 密码的详细信息 --stdin 非交互式设定密码
chage [options] LOGIN -d, --lastday LAST_DAY 修改最近一次修改密码的时间 -m, --mindays MIN_DAYS -M, --maxdays MAX_DAYS -W, --warndays WARN_DAYS -I, --inactive INACTIVE -E, --expiredate EXPIRE_DATE -l, --list 密码相关的详细信息
-----------------------------------------------------------------------------
方法三:按文件格式,分析相关的命令的使用方法
/etc/passwd文件相关的命令:
管理用户名相关的命令
useradd LOGIN
[[email protected] ~]# useradd testuser #生成用户名 tail -1 /etc/passwd testuser:x:2002:2002::/home/testuser:/bin/tcsh [[email protected] ~]# usermod -l helloeveryone testuser #修改用户名 [[email protected] ~]# tail -1 /etc/passwd helloeveryone:x:2002:2002::/home/testuser:/bin/tcsh
管理用户ID号相关的命令
useradd -u UID LOGIN
[[email protected] ~]# useradd -u 666 testuser1 #生成用户ID [[email protected] ~]# tail -1 /etc/passwd testuser1:x:666:2003::/home/testuser1:/bin/tcsh [[email protected] ~]# usermod -u 667 testuser1 [[email protected] ~]# tail -1 /etc/passwd testuser1:x:667:2003::/home/testuser1:/bin/tcsh
管理用户基本组相关的命令
useradd -g 组名/组ID LOGIN
[[email protected] ~]# useradd -g AAAAAAAAAAAAAAAAAAAA testuser6 #基本组不存在时 useradd: group ‘AAAAAAAAAAAAAAAAAAAA‘ does not exist tail -1 /etc/passwd testuser4:x:2003:2004::/home/testuser4:/bin/tcsh [[email protected] ~]# id testuser6 id: testuser6: no such user [[email protected] ~]# groupadd testuser3 #先添加基本组 [[email protected] ~]# useradd -g testuser3 testuser4 #以存在的组名作为用户的基本组 [[email protected] ~]# tail -1 /etc/passwd #显示为ID号 testuser4:x:2003:2004::/home/testuser4:/bin/tcsh [[email protected] ~]# tail -1 /etc/group #testuser3的ID号就是2004 testuser3:x:2004: [[email protected] ~]# tail -1 /etc/group #组testuser3已经存在,其ID为2004 testuser3:x:2004: [[email protected] ~]# useradd -g 2004 testuser5 #存在的组ID作为用户的基本组 [[email protected] ~]# tail -1 /etc/passwd testuser5:x:2004:2004::/home/testuser5:/bin/tcsh
usermod -g 组名/组ID LOGIN
[[email protected] ~]# id testuser4 #用户存在,组名不同用户名,为用户的非私有组(基本组) uid=2003(testuser4) gid=2004(testuser3) groups=2004(testuser3) [[email protected] ~]# usermod -g AAAAAAAAAAAAAAAAAAAA testuser4 #修改的组名不存在,组不能修改 usermod: group ‘AAAAAAAAAAAAAAAAAAAA‘ does not exist [[email protected] ~]# id testuser4 uid=2003(testuser4) gid=2004(testuser3) groups=2004(testuser3) [[email protected] ~]# groupadd AAAAAAAAAAAAAAAAAAAA #添加组名 [[email protected] ~]# tail -1 /etc/group #验证存在 AAAAAAAAAAAAAAAAAAAA:x:10001: [[email protected] ~]# usermod -g AAAAAAAAAAAAAAAAAAAA testuser4 #修改组名 [[email protected] ~]# id testuser4 #id为10001 uid=2003(testuser4) gid=10001(AAAAAAAAAAAAAAAAAAAA) groups=10001(AAAAAAAAAAAAAAAAAAAA) [[email protected] ~]# usermod -g 10000 testuser4 #修改的组id不存在,组不能修改 usermod: group ‘10000‘ does not exist [[email protected] ~]# id testuser4 uid=2003(testuser4) gid=2004(testuser3) groups=2004(testuser3) [[email protected] ~]# groupadd -g 10000 mygrp #添加此组id [[email protected] ~]# usermod -g 10000 testuser4 #修改的组id已经存在 [[email protected] ~]# id testuser4 #修改成功 uid=2003(testuser4) gid=10000(mygrp) groups=10000(mygrp)
管理用户的完整信息相关的命令
finger,chfn,useradd -c ‘GECOS‘ LOGIN , usermod -c ‘GECOS‘ LOGIN
[[email protected] ~]# finger testuser4 #查看用户的完整信息 Login: testuser4 Name: Directory: /home/testuser4 Shell: /bin/tcsh Never logged in. No mail. No Plan. [[email protected] ~]# chfn testuser4 Changing finger information for testuser4. Name []: helloeveryone Office []: 123 Office Phone []: 123 Home Phone []: 96168^C [[email protected] ~]# chfn testuser4 Changing finger information for testuser4. Name []: Xie Daxia Office []: [email protected] Office Phone []: 96168 Home Phone []: 96168 Finger information changed. [[email protected] ~]# finger testuser4 #查看用户的完整信息 Login: testuser4 Name: Xie Daxia Directory: /home/testuser4 Shell: /bin/tcsh Office: [email protected], x9-6168 Home Phone: x9-6168 Never logged in. No mail. No Plan. [[email protected] ~]# tail /etc/passwd #查看用户的完整信息 testuser4:x:2003:10001:Xie Daxia,[email protected],96168,96168:/home/testuser4:/bin/tcsh [[email protected] ~]# useradd -c ‘www.magedu.com‘ testuser8 #添加时指定 [[email protected] ~]# tail -1 /etc/passwd testuser8:x:2005:2005: [[email protected] ~]# usermod -c ‘mageedu.com‘ testuser8 #修改时指定 [[email protected] ~]# tail -1 /etc/passwd testuser8:x:2005:2005:mageedu.com:/home/testuser8:/bin/tcsh
删除用户相关的命令
[[email protected] ~]# tail -1 /etc/passwd myuser2:x:2009:2009::/home/myuser2:/bin/bash [[email protected] ~]# ls -dl /home/myuser2 drwx------ 2 myuser2 myuser2 4096 Jan 2 12:30 /home/myuser2 [[email protected] ~]# userdel myuser2 #删除时,保留家目录 [[email protected] ~]# ls -dl /home/myuser2 drwx------ 2 2009 2009 4096 Jan 2 12:30 /home/myuser2 [[email protected] ~]# tail -1 /etc/passwd myuser1:x:2008:2008::/home/myuser1:/bin/bash [[email protected] ~]# ls -dl /home/myuser1 drwx------ 2 myuser1 myuser1 4096 Jan 2 12:28 /home/myuser1 [[email protected] ~]# userdel -r myuser1 #删除时,不保留家目录 [[email protected] ~]# ls -dl /home/myuser1 ls: cannot access /home/myuser1: No such file or directory
管理用户的主目录
[[email protected] ~]# useradd -d /tmp/hello testuser10 #添加时,随意指定用户的家目录 [[email protected] ~]# ls -a /tmp/hello #家目录下会生成与用户相关的文件 . .. .bash_history .bash_logout .bash_profile .bashrc [[email protected] ~]# tail -1 /etc/passwd #家目录,确实是/tmp/hello testuser10:x:2006:2006::/tmp/hello:/bin/bash [[email protected] ~]# finger testuser10 Directory: /tmp/hello [[email protected] ~]# su - testuser10 #能够正常登陆 Last login: Sat Jan 2 12:04:22 CST 2016 on pts/0 [[email protected] ~]$ [[email protected] ~]$ [[email protected] ~]$ exit logout [[email protected] ~]# usermod -d /home/testuser10 testuser10 #修改用户的家目录 [[email protected] ~]# tail -1 /etc/passwd #修改成功 testuser10:x:2006:2006::/home/testuser10:/bin/bash [[email protected] ~]# ls -a /home/testuser10 #新的家目录虽修改,但不会被创建 ls: cannot access /home/testuser10: No such file or directory [[email protected] ~]# su - testuser10 #切换至此用户 Last login: Sat Jan 2 12:05:41 CST 2016 on pts/0 su: warning: cannot change directory to /home/testuser10: No such file or directory -bash-4.2$ #登陆不成功,此时没有家目录 -bash-4.2$ exit logout [[email protected] ~]# usermod -d /tmp/hello testuser10 #修改回 [[email protected] ~]# ls -a /tmp/hello . .. .bash_history .bash_logout .bash_profile .bashrc [[email protected] ~]# su - testuser10 #正常登陆 Last login: Sat Jan 2 12:07:40 CST 2016 on pts/0 [[email protected] ~]$ [[email protected] ~]$ exit logout [[email protected] ~]# usermod -m -d /home/testuser10 testuser10 #修改家目录时,-m连胜 [[email protected] ~]# ls -a /home/testuser10 #新的家目录被创建,且文件存在 . .. .bash_history .bash_logout .bash_profile .bashrc [[email protected] ~]# ls /tmp/hello #原有的家目录被删除 ls: cannot access /tmp/hello: No such file or directory [[email protected] ~]# su - testuser10 #正常登录 Last login: Sat Jan 2 12:08:42 CST 2016 on pts/0 [[email protected] ~]$ [[email protected] ~]$ exit logout [[email protected] ~]# su - user1 -c ‘whoami‘ #以另一个用户身份执行命令 user1
管理用户的默认shell
[[email protected] ~]# useradd myuser [[email protected] ~]# tail -1 /etc/passwd #新加一个用户,其默认shell为/bin/bash myuser:x:2007:2007::/home/myuser:/bin/bash [[email protected] ~]# tail /etc/default/useradd # useradd defaults file SHELL=/bin/bash #此处的shell为默认的shell [[email protected] ~]# useradd -D -s /bin/sh #修改默认shell [[email protected] ~]# tail /etc/default/useradd # useradd defaults file SHELL=/bin/sh #此处的shell随之改变 [[email protected] ~]# useradd myuser1 [[email protected] ~]# tail -1 /etc/passwd #shell为SHELL变量的值 myuser1:x:2008:2008::/home/myuser1:/bin/sh [[email protected] ~]# useradd -s /bin/bash myuser2 #SHELL=/bin/sh #手动指明shell,不在随默认shell [[email protected] ~]# tail -1 /etc/passwd myuser2:x:2009:2009::/home/myuser2:/bin/bash [[email protected] ~]# usermod -s /bin/bash myuser1 #修改shell [[email protected] ~]# tail -1 /etc/passwd myuser1:x:2008:2008::/home/myuser1:/bin/bash
切换用户
1、交互式切换 [[email protected] ~]# useradd myuser1 [[email protected] ~]# echo $PATH /usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# su - myuser1 -sh-4.2$ echo $PATH /usr/local/nginx/sbin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin -sh-4.2$ exit logout 2、非交互式切换 [[email protected] ~]# echo $PATH /usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] ~]# su myuser1 [[email protected] root]$ echo $PATH /usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [[email protected] root]$ exit exit
查看用户的基本信息
[[email protected] ~]# id testuser4 uid=2003(testuser4) gid=10001(AAAAAAAAAAAAAAAAAAAA) groups=10001(AAAAAAAAAAAAAAAAAAAA) [[email protected] ~]# id -u testuser4 2003 [[email protected] ~]# id -un testuser4 testuser4 [[email protected] ~]# id -g testuser4 10001 [[email protected] ~]# id -gn testuser4 AAAAAAAAAAAAAAAAAAAA [[email protected] ~]# usermod -a -G myuser1 testuser4 [[email protected] ~]# id testuser4 uid=2003(testuser4) gid=10001(AAAAAAAAAAAAAAAAAAAA) groups=10001(AAAAAAAAAAAAAAAAAAAA),2008(myuser1) [[email protected] ~]# id -G testuser4 10001 2008 [[email protected] ~]# id -Gn testuser4 AAAAAAAAAAAAAAAAAAAA myuser1
etc/group文件相关的命令:
与组名相关的命令
[[email protected] ~]# groupadd aux #添加组 [[email protected] ~]# tail -1 /etc/group aux:x:10002: [[email protected] ~]# groupmod -n eFH aux #修改组名 [[email protected] ~]# tail -1 /etc/group eFH:x:10002: *同ID号是同一个组 [[email protected] ~]# groupdel eFH #删除组 [[email protected] ~]# tail -1 /etc/group myuser1:x:2008:testuser4
与组密码相关的命令
[[email protected] ~]# groupadd -p 123 aux #添加时指明组密码 [[email protected] ~]# tail -1 /etc/group aux:x:10002: [[email protected] ~]# tail -3 /etc/gshadow #查看组密码 myuser:!:: myuser1:!::testuser4 aux:123:: [[email protected] ~]# groupmod -p 666 aux [[email protected] ~]# tail -3 /etc/gshadow myuser:!:: myuser1:!::testuser4 aux:666:: !代表没有密码 [[email protected] ~]# gpasswd aux #设定密码,123 Changing the password for group aux New Password: Re-enter new password: [[email protected] ~]# tail -3 /etc/gshadow #密文存放 myuser:!:: myuser1:!::testuser4 aux:$6$FVea6d2Z$H9MOV7cCj8jJ6M7zxZMB6c9Pot8nOOl96Fy1XrlHzoqMxuP/In8gDsmWx48UoOp0mJtyiGo5KixvQD7Gdp7XL1::
$6$FVea6d2Z$H9M
6:sha512算法
$FVea6d2Z$ : 红色为杂质
以当前组为附加组的用户列表
1、生成组内用户列表 [[email protected] ~]# tail /etc/passwd #查看可用的倒数10行的用户列表 puppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologin tom:x:2001:2001::/home/tom:/bin/tcsh helloeveryone:x:2002:2002::/home/testuser:/bin/tcsh testuser1:x:667:2003::/home/testuser1:/bin/tcsh testuser4:x:2003:10001:Xie Daxia,[email protected],96168,96168:/home/testuser4:/bin/tcsh testuser5:x:2004:2004::/home/testuser5:/bin/tcsh testuser8:x:2005:2005:mageedu.com:/home/testuser8:/bin/tcsh testuser10:x:2006:2006::/home/testuser10:/bin/bash myuser:x:2007:2007::/home/myuser:/bin/bash myuser1:x:2008:2008::/home/myuser1:/bin/sh [[email protected] ~]# tail -1 /etc/group #没有附加组 aux:x:10002: [[email protected] ~]# gpasswd -M puppet,tom,helloeveryone,testuser1 aux [[email protected] ~]# tail -1 /etc/group aux:x:10002:puppet,tom,helloeveryone,testuser1 2、添加用户时,指定附加组:将此用户的基本组作为这些组的附加组 [[email protected] ~]# tail /etc/group #查看可用的倒数10行的组列表 testuser:x:2002: testuser1:x:2003: testuser3:x:2004: mygrp:x:10000: AAAAAAAAAAAAAAAAAAAA:x:10001: testuser8:x:2005: testuser10:x:2006: myuser:x:2007: myuser1:x:2008:testuser4 aux:x:10002:puppet,tom,helloeveryone,testuser1 [[email protected] ~]# useradd -G testuser,testuser1,testuser3 eFH [[email protected] ~]# id eFH uid=2009(eFH) gid=2009(eFH) groups=2009(eFH),2002(testuser),2003(testuser1),2004(testuser3) 3、添加附加组 [[email protected] ~]# usermod -G myuser1 -a eFH [[email protected] ~]# id eFH uid=2009(eFH) gid=2009(eFH) groups=2009(eFH),2002(testuser),2003(testuser1),2004(testuser3),2008(myuser1) 4、覆盖附加组 [[email protected] ~]# usermod -G myuser1 eFH [[email protected] ~]# id eFH uid=2009(eFH) gid=2009(eFH) groups=2009(eFH),2008(myuser1)
临时切换基本组
[[email protected] ~]# id root uid=0(root) gid=0(root) groups=0(root) [[email protected] ~]# groupmod -p 123 aux [[email protected] ~]# fgrep aux /etc/gshadow aux:123::puppet,tom,helloeveryone,testuser1 [[email protected] ~]# su - eFH -sh-4.2$ id uid=2009(eFH) gid=2009(eFH) groups=2009(eFH),2008(myuser1) -sh-4.2$ newgrp aux Password: Invalid password. sh-4.2$ exit exit [[email protected] ~]# gpasswd aux Changing the password for group aux New Password: Re-enter new password: [[email protected] ~]# fgrep aux /etc/gshadow aux:$6$ggVWoVfqDgU5$hYO5qEOslzR/zYY3XZ6G8MEkH9t87Nxdtp24UFVwpC8CEAtvyjd1bouN84o3pl3fMg4RYIWP4VGwukhY40Ns4/::puppet,tom,helloeveryone,testuser1 [[email protected] ~]# su - eFH -sh-4.2$ id uid=2009(eFH) gid=2009(eFH) groups=2009(eFH),2008(myuser1) -sh-4.2$ newgrp aux Password: sh-4.2$ id uid=2009(eFH) gid=10002(aux) groups=10002(aux),2008(myuser1),2009(eFH)
/etc/shadow文件相关的命令:
锁定/解锁密码
[[email protected] ~]# usermod -p 123 eFH #设定密码 [[email protected] ~]# tail -1 /etc/shadow eFH:123:16802:0:99999:7::: [[email protected] ~]# usermod -L eFH #对密码加锁 [[email protected] ~]# tail -1 /etc/shadow eFH:!123:16802:0:99999:7::: [[email protected] ~]# usermod -U eFH #对密码解锁 [[email protected] ~]# tail -1 /etc/shadow eFH:123:16802:0:99999:7::: [[email protected] ~]# echo ‘123‘ | passwd --stdin eFH #非交互式设定密码 Changing password for user eFH. passwd: all authentication tokens updated successfully. [[email protected] ~]# tail -1 /etc/shadow eFH:$6$cHbhiXqW$xxF35fzXMEQmROJfq6dBM/YXDqHjoMahC6Nq5P1wCe.u7bG7sHXLwWljWZd3uifug6DiRhZUpDPInXtL42cJ61:16802:0:99999:7::: [[email protected] ~]# passwd -l eFH #加锁密码 Locking password for user eFH. passwd: Success [[email protected] ~]# tail -1 /etc/shadow eFH:!!$6$cHbhiXqW$xxF35fzXMEQmROJfq6dBM/YXDqHjoMahC6Nq5P1wCe.u7bG7sHXLwWljWZd3uifug6DiRhZUpDPInXtL42cJ61:16802:0:99999:7::: [[email protected] ~]# passwd -u eFH #解锁密码 Unlocking password for user eFH. passwd: Success [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:16802:0:99999:7:::
最近一次修改密码的日期
[[email protected] ~]# date #现在的时间 Sun Jul 30 11:31:25 CST 2017 [[email protected] ~]# tail -1 /etc/shadow #修改密码的天数 eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:16802:0:99999:7::: 1、设定修改密码的日期 [[email protected] ~]# passwd -S eFH #具体时间 eFH PS 2016-01-02 0 99999 7 -1 (Password set, SHA512 crypt.) [[email protected] ~]# chage -l eFH #具体时间 Last password change : Jan 02, 2016 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 2、设定修改密码的日期 [[email protected] ~]# chage -d 15000 eFH #修改最近一次修改密码的时间 [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:0:99999:7::: [[email protected] ~]# passwd -S eFH eFH PS 2011-01-26 0 99999 7 -1 (Password set, SHA512 crypt.) [[email protected] ~]# chage -l eFH Last password change : Jan 26, 2011 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
密码的最小、大使用期限
1、修改最小使用期限:0无限制 [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:0:99999:7::: [[email protected] ~]# passwd -n 10 eFH Adjusting aging data for user eFH. passwd: Success [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:10:99999:7::: [[email protected] ~]# chage -m 0 eFH [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:0:99999:7::: 2、修改最大使用期限:9999,永久 [[email protected] ~]# passwd -x 10 eFH Adjusting aging data for user eFH. passwd: Success [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:0:10:7::: [[email protected] ~]# chage -M 99999 eFH [[email protected] ~]# tail -1 /etc/shadow
密码到最大使用期限前的一段时间(警告时间)
[[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:0:99999:7::: [[email protected] ~]# passwd -w 10 eFH Adjusting aging data for user eFH. passwd: Success [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:0:99999:10::: [[email protected] ~]# chage -W 7 eFH [[email protected] ~]# tail -1 /etc/shadow eFH:$6$yR05nh36$JXL77z8usrEDURWC82p57q/5gTqqL9D1abrB07re62utw42eXEll1o5SIDXXsysOXq9nFEP3WyRWfrrEi1VVn1:15000:0:99999:7:::
密码到最大使用期限后的一段时间(非活动期限)
1、设定默认值 [[email protected] ~]# cat /etc/default/useradd # useradd defaults file INACTIVE=-1 [[email protected] ~]# useradd -D -f 10 [[email protected] ~]# cat /etc/default/useradd # useradd defaults file INACTIVE=10 [[email protected] ~]# useradd user1 [[email protected] ~]# id user1 uid=2010(user1) gid=2010(user1) groups=2010(user1) [[email protected] ~]# tail -1 /etc/shadow user1:!!:17377:0:99999:7:10:: 2、修改用户的非活动期 [[email protected] ~]# passwd -S myuser myuser LK 2016-01-02 0 99999 7 -1 (Password locked.) [[email protected] ~]# usermod -f 10 myuser [[email protected] ~]# passwd -S myuser myuser LK 2016-01-02 0 99999 7 10 (Password locked.) 3、修改用户的非活动期 [[email protected] ~]# passwd -i -1 myuser Adjusting aging data for user myuser. passwd: Success [[email protected] ~]# passwd -S myuser myuser LK 2016-01-02 0 99999 7 -1 (Password locked.) 4、修改用户的非活动期 [[email protected] ~]# chage -I 10 myuser [[email protected] ~]# passwd -S myuser myuser LK 2016-01-02 0 99999 7 10 (Password locked.)
账号的过期日期
1、设定默认值 [[email protected] ~]# cat /etc/default/useradd # useradd defaults file EXPIRE= [[email protected] ~]# useradd -D -e 100 [[email protected] ~]# cat /etc/default/useradd # useradd defaults file EXPIRE=100 [[email protected] ~]# useradd user13 [[email protected] ~]# tail -1 /etc/shadow user13:!!:17377:0:99999:7:10:100: 2、修改用户的过期日期 [[email protected] ~]# tail -1 /etc/shadow user13:!!:17377:0:99999:7:10:100: [[email protected] ~]# usermod -e 10 user13 [[email protected] ~]# tail -1 /etc/shadow user13:!!:17377:0:99999:7:10:10: 3、立即过期 [[email protected] ~]# passwd -e user13 Expiring password for user user13. passwd: Success 4、修改过期的日期 [[email protected] ~]# chage -E 123 user13 [[email protected] ~]# tail -1 /etc/shadow user13:!!:0:0:99999:7:10:123:
本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1952071
以上是关于谢烟客---------Linux之用户的主要内容,如果未能解决你的问题,请参考以下文章