Linux运维学习笔记-用户管理

用户分类

超级用户:UID=GID=0的用户,一般为root

普通用户:只有root用户可以创建(UID范围:6.x系统起步为500,7.x系统起步为1000,最大为65535)

系统用户(虚拟用户):不可以登录系统的用户,可以具备密码。(UID范围:6.x系统为1-499,7.x系统为1-999)

 文件

/etc/passwd文件:存放系统上所有本地用户

用户名(注册名):密码:UID:GID:用户名(标识现实真实用户信息):家目录:使用的bash解释器

/etc/shadow文件(影子文件):将用户的密码加密保存

1、用户名

2、加密后的密码,如果这一栏为”*”:说明这是一个没有配置密码的系统用户,如果为”!!”:一般情况下这是一个普通用户,而且密码为空

3、最近改动密码的日期

4、密码不可被变更天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制

5、密码需要重新变更的天数:如果为99999则没有限制

6、密码过期预警天数

7、密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数

8、账号失效日期:过了这个日期账号就无法使用

9、保留

/etc/group文件:存放系统本地组信息

1、组名

2、组密码标志:这里的"x"仅仅是密码标识,真正的加密之后的组密码保存在 /etc/gshadow 文件中。

3、组ID(GID)

4、组中的用户:表示的就是这个用户组中到底包含了哪些用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段。也就是说,写入这个字段的用户是这个用户组的附加用户。

/etc/gshadow文件(影子文件):将组密码加密保存(组可以设置密码,但是一般不用)

1、用户组名

2、用户组密码:这个段可以是空的或!,如果是空的或有!,表示没有密码

3、用户组管理员的名称:这个字段也可为空,如果有多个用户组管理者,用,号分割

4、组成员:如果有多个成员,用,号分割

命令

id命令:显示真实有效的用户ID(UID)和组ID(GID)

[root@localhost ~]# id ftd001
uid=1000(ftd001) gid=1000(ftd001) groups=1000(ftd001)
[root@localhost ~]# 

打印用户的UID、GID以及groups(扩展组),注意:扩展组里一定有他自己的主组

 

选项:

-g或--group   显示用户所属群组的ID。

-G或--groups   显示用户所属附加群组的ID。

-n或--name    显示用户,所属群组或附加群组的名称。

-r或--real    显示实际ID。

-u或--user    显示用户ID。

-help         显示帮助。

-version      显示版本信息。

su命令:用户切换

[root@localhost ~]# su - ftd001
Last login: Fri Mar 15 11:13:07 EDT 2019 on pts/0
[ftd001@localhost ~]$ 
[ftd001@localhost ~]$ 
[ftd001@localhost ~]$ su -
Password: 
Last login: Fri Mar 15 11:13:18 EDT 2019 on pts/0
[root@localhost ~]# 
[root@localhost ~]# 

选项:

-:直接切换到用户家目录

-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;

-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;

-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;

-m,-p或--preserve-environment:变更身份时,不要变更环境变量;

-s<shell>或--shell=<shell>:指定要执行的shell;

--help:显示帮助;

--version;显示版本信息。

useradd命令:增加用户

创建用户,默认创建用户有家目录

[root@localhost ~]# ls -l /home/
total 0
[root@localhost ~]# 
[root@localhost ~]# useradd ftd001
[root@localhost ~]# 
[root@localhost ~]# ls -l /home/
total 0
drwx------. 2 ftd001 ftd001 62 Mar 15 11:18 ftd001
[root@localhost ~]# 
[root@localhost ~]# id ftd001
uid=1000(ftd001) gid=1000(ftd001) groups=1000(ftd001)
[root@localhost ~]# 
创建系统用户(不创建家目录,不允许登录)

[root@localhost ~]# ls -l /home/
total 0
drwx------. 2 ftd001 ftd001 62 Mar 15 11:18 ftd001
[root@localhost ~]# 
[root@localhost ~]# useradd ftd002 -s /sbin/nologin -M
[root@localhost ~]# 
[root@localhost ~]# ls -l /home/
total 0
drwx------. 2 ftd001 ftd001 62 Mar 15 11:18 ftd001
[root@localhost ~]# 
[root@localhost ~]# id ftd002
uid=1001(ftd002) gid=1001(ftd002) groups=1001(ftd002)
[root@localhost ~]# 
[root@localhost ~]# su - ftd002
su: warning: cannot change directory to /home/ftd002: No such file or directory
This account is currently not available.
[root@localhost ~]# 

选项

-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;

-d<登入目录>:指定用户登入时的启始目录(指定用户的家目录);

-D:变更预设值;

-e<有效期限>:指定帐号的有效期限(指定用户到期时间,格式为YYYY-MM-DD);

-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;

-g<群组>:指定用户所属的群组;

-G<群组>:指定用户所属的附加群组;

-m:自动建立用户的登入目录;

-M:不要自动建立用户的登入目录(不创建家目录);

-n:取消建立以用户名称为名的群组;

-r:建立系统帐号;

-s<shell>:指定用户登入后所使用的shell(-s /sbin/nologin指定为系统用户);

-u<uid>:指定用户id

 

passwd命令:设置密码

当前用户直接使用,则直接修改自己的密码

[root@localhost ~]# passwd
Changing password for user root.
New password: 
passwd 用户名    修改指定用户的密码

[root@localhost ~]# passwd ftd001
Changing password for user ftd001.
New password: 
直接修改密码

[root@localhost ~]# echo "123456" | passwd ftd001 --stdin
Changing password for user ftd001.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# 

选项:

-d:删除密码,仅有系统管理者才能使用;

-f:强制执行;

-k:设置只有在密码过期失效后,方能更新;

-l:锁住密码;

-s:列出密码的相关信息,仅有系统管理者才能使用;

-u:解开已上锁的帐号。

chage命令:修改帐号和密码的有效期限

[root@localhost ~]# chage -l root
Last password change					: never
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
[root@localhost ~]# 
修改账户属性

[root@localhost ~]# chage ftd001
Changing the aging information for ftd001
Enter the new value, or press ENTER for the default

	Minimum Password Age [0]: 
	Maximum Password Age [99999]: 
	Last Password Change (YYYY-MM-DD) [2019-03-15]: 
	Password Expiration Warning [7]: 
	Password Inactive [-1]: 
	Account Expiration Date (YYYY-MM-DD) [-1]: 
[root@localhost ~]# 

选项:

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期

 userdel命令:删除账户

[root@localhost ~]# ls -l /home/
total 0
drwx------. 2 ftd001 ftd001 62 Mar 15 11:30 ftd001
[root@localhost ~]# 
[root@localhost ~]# userdel ftd001
[root@localhost ~]# 
[root@localhost ~]# ls -l /home/
total 0
drwx------. 2 1002 1002 62 Mar 15 11:30 ftd001
[root@localhost ~]# 
[root@localhost ~]# id ftd001
id: ftd001: no such user
[root@localhost ~]# 

-f:强制删除用户,即使用户当前已登录;

-r:删除用户的同时,删除与用户相关的所有文件。

[root@localhost ~]# ls -l /home/
total 0
drwx------. 2 ftd001 ftd001 62 Mar 15 11:31 ftd001
[root@localhost ~]# 
[root@localhost ~]# userdel -rf ftd001
[root@localhost ~]# 
[root@localhost ~]# ls -l /home/
total 0
[root@localhost ~]# 
[root@localhost ~]# id ftd001
id: ftd001: no such user
[root@localhost ~]# 

 

 usermod命令:修改用户的基本信息

[root@localhost ~]# id ftd001
uid=1002(ftd001) gid=1002(ftd001) groups=1002(ftd001)
[root@localhost ~]# 
[root@localhost ~]# usermod ftd001 -u 1111
[root@localhost ~]# 
[root@localhost ~]# id ftd001
uid=1111(ftd001) gid=1002(ftd001) groups=1002(ftd001)
[root@localhost ~]# 

选项:

-c<备注>:修改用户帐号的备注文字;

-d<登入目录>:修改用户登入时的目录;

-e<有效期限>:修改帐号的有效期限;

-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;

-g<群组>:修改用户所属的群组;

-G<群组>;修改用户所属的附加群组;

-l<帐号名称>:修改用户帐号名称;

-L:锁定用户密码,使密码无效;

-s<shell>:修改用户登入后所使用的shell;

-u<uid>:修改用户ID;

-U:解除密码锁定。

groupadd命令:创建一个新的工作组

groupdel命令:删除指定的工作组

groupmod命令:更改组的GID或名称

 chown命令:改变某个文件或目录的所有者和所属的组

修改文件属主:

[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 15 11:39 test001
[root@localhost aaa]# 
[root@localhost aaa]# chown ftd001 test001 
[root@localhost aaa]# 
[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 ftd001 root 0 Mar 15 11:39 test001
[root@localhost aaa]# 
修改文件属组:

[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 15 11:39 test001
[root@localhost aaa]# 
[root@localhost aaa]# chown :ftd001 test001 
[root@localhost aaa]# 
[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 root ftd001 0 Mar 15 11:39 test001
[root@localhost aaa]# 

 

同时修改文件属主与属组:

[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 15 11:39 test001
[root@localhost aaa]# 
[root@localhost aaa]# chown ftd001:ftd001 test001 
[root@localhost aaa]# 
[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 ftd001 ftd001 0 Mar 15 11:39 test001
[root@localhost aaa]#

选项:

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;

-f或--quite或——silent:不显示错误信息;

-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;

-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;

-v或——version:显示指令执行过程;

--dereference:效果和“-h”参数相同;

--help:在线帮助;

--reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;

--version:显示版本信息。

chgrp命令:只修改组 

[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 15 11:39 test001
[root@localhost aaa]# 
[root@localhost aaa]# chgrp ftd001 test001 
[root@localhost aaa]# 
[root@localhost aaa]# ls -l
total 0
-rw-r--r--. 1 root ftd001 0 Mar 15 11:39 test001
[root@localhost aaa]# 

选项:

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;

-f或--quiet或——silent:不显示错误信息;

-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;

-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;

-v或——verbose:显示指令执行过程;

--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值