linux用户管理

用户管理

安全上下文:linux操作系统上,用户执行程序,就会启动一个与用户相关的进程(即进程的用户是启动程序的用户,对程序的权限),这个进程对资源的权限,取决于进程用户对资源的操作权限。

用户

用户:系统的使用者,如某某公司的张某;
系统用户:和用户相关联的标识符,如root,sshd、mail;

用户分类

根据用户的UID的不同,可以分为:

  • 超级用户:uid为0
  • 系统管理/服务用户:uid为1~999,如系统上的sshd、mail、adm这些用户
  • 普通用户:uid为1000~65535,如使用useradd USERNAME创建的用户

用户组

为了方便对用户进行批量管理,将一个或多个用户放入一个组里面,组里的所有用户都具有和组相关的权限。

用户组分类

  • 附加组:要让用户加入附加组,这个附加组必须已经存在。
  • 私有组:使用adduser会为用户分配一个与用户同名的一个组。
  • 基本组:/etc/passwd中用户对应的组。

用户、组库文件

为了方便管理用户和用户组,将数据存放在某一个文件中,记录这个用户或用户组的相关信息。这些文件如下:

  • 用户信息:/etc/passwd
    root:x:0:0:root:/root:/bin/bash
    特点:用“:”分割每个字段,每个字段都有不同的含义
    字段1:root:用户标识符(用户名)
    字段2:x:用户密码
    字段3:0:用户id
    字段4:0:用户组id
    字段5:root:注释信息
    字段6:/root:用户家目录,超级用户的家目录在/root目录下,其他用户默认的家目录为/home/USERNAME
    字段7:/bin/bash:用户登录后启动的默认shell程序
  • 密码信息:/etc/shadow
    root:\$6\$UruBqy/D$QffFf4w6OiARF8aT0Eej5yp7ommFbwsalNZZL3O6v74GBVc7B7MpJeBXqJxnxhMFEZeUHX1ncBct/ChTt/nRC/:18331:0:99999:7:::
    字段1:root:用户名
    字段2:字符串和特殊字符:加密过后的密码,若密码前面有!或者密码字段为空,对应用户是不能登录的
    字段3:18331:从1970年1月1日0:0:0到最后一次修改密码所经过的天数
    字段4:0:密码最短"寿命",单位为"天",期间不能修改,0表示随时都可以修改
    字段5:99999:密码的最长寿命,单位为"天",表示还有多少天后,用户登录后提示必须修改密码
    字段6:7:密码过期前多少天给用户提示
    字段7::密码过期后多少天禁用登录,未设置表示不禁用
    字段8::YYYY-MM-DD账号过期时间==
    字段9::保留字段
    简单说明下加密方式:
    1.秘钥加密:加密和解密都是使用同一个秘钥
    2.公钥加密:加密和解密使用一对秘钥对完成,一般有一个秘钥和一个公钥
    3.单向加密:不可逆,文件发生变化,密码会发生雪崩的变化;一般用来做数据校验和各种智能识别技术
  • 组信息:/etc/group
    root:x:0:test1
    字段1:root:组名
    字段2:x:组密码
    字段3:0:GID组id号
    字段4:test1:该组的附加用户

用户、组管理命令

了解了上面/etc/passwd、/etc/shadow、/etc/group三个文件每个字段的意义之后,就可以向这三个文件来添加内容来新增用户了。linux上的用户也可以通过下列命令来添加。

useradd命令

  • 命令解释:添加用户
  • 选项[OPTION]:
    -u:指定用户uid
    -g:指定用户基本组gid或者group名
    -G:指定用户的附加组,多个附加组用,隔开
    -d:directory指定用户家目录
    -s:指定用户默认的shell程序
    -m:创建用户的家目录
    -M:不创建用户家目录
    -r:创建一个系统用户(centos7中系统用户id号小于999)
    -c:注释信息

id命令

  • 命令解释:查看有效用户id和组id信息
  • 选项[OPTION]:
    -u:查看用户对应的id号
    -g:查看用户对应的组id号
    -n:name,配合-u和-g一起使用表示查看用户名和组名
    -G:查看基本组id和附加组id,也可以配合-n选项一起使用

finger命令

  • 命令解释:查看用户的注释信息
~]# finger test1
Login: test1          			Name: 
Directory: /home/test1              	Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.

chfn命令

  • 命令解释:修改用户finger信息
~]# chfn test1
Changing finger information for test1.
Name []: lg  
Office []: abc
Office Phone []: 170
Home Phone []: 250

Finger information changed.
[root@git ~]# finger test1
Login: test1          			Name: lg
Directory: /home/test1              	Shell: /sbin/nologin
Office: abc, 170			Home Phone: 250
Never logged in.
No mail.
No Plan.

usermod命令

  • 命令解释:修改用户信息
  • 选项[OPTION]:
    -d:指定用户新的家目录,一般和-m选项一起使用
    -m:移动家目录到新的家目录下
    -f:密码过期多少天后禁用该用户
    -e:YYYY-MM-DD账号过期时间
    -g:指定用户基本组id或组名
    -G:指定用户的附加组
    -L:lock禁用一个用户
    -U:unlock解禁一个用户
    -u:修改uid
    -s:指定新的shell

passwd命令

  • 命令解释:设置用户密码
  • 命令选项:
    –stdin:从标准输入中读取密码
    -l:锁定用户密码
    -u:解锁用户密码
    -x:密码最大使用期限
    -n:密码最短寿命
    -w:密码最大使用期限前多少天提示
    -i:密码最大使用期限之后多少天后禁用密码
    -d:删除用户密码
    -e:将用户的密码设置为过期

pwck命令

  • 命令解释:检查密码文件的完整性

userdel命令

  • 命令解释:删除用户账号和相关文件
  • 选项:
    -r:删除家目录

groupadd命令

  • 命令解释:创建一个新的组
  • 选项:
    -g:指定组号
    -r:创建一个系统组

groupmod命令

  • 命令解释:修改组信息
  • 选项:
    -g:指定新的组id
    -n:指定新的组名称

groupdel命令

  • 命令解释:删除一个组

gpasswd命令

  • 命令解释:管理/etc/group和/etc/shadow,可给group创建组密码
  • 选项:
    -a:添加一个用户到一个组
    -d:从某个组中删除用户

newgrp命令

  • 命令解释:临时登录某个组
~]# gpasswd test2   ##交互式给test2组设置密码
Changing the password for group test2
New Password: 
Re-enter new password: 
[root@git ~]# su - test1  ##切换到test1
Last login: Thu Jun  4 14:10:10 CST 2020 on pts/0
[test1@git ~]$ cd /tmp ##创建c.txt,文件属主是test1
[test1@git tmp]$ touch c.txt
[test1@git tmp]$ ll c.txt
-rw-rw-r-- 1 test1 test1 0 Jun  4 14:11 c.txt
[test1@git tmp]$ newgrp test2 #登录到test2组
Password: 
[test1@git tmp]$ touch c1.txt #创建的文件属组是test2
[test1@git tmp]$ ll c1.txt
-rw-r--r-- 1 test1 test2 0 Jun  4 14:12 c1.txt
#注:退出test2组,可以使用exit命令

用户相关的其他命令

who系列

  • who命令:显示登录到系统的用户信息。
  • whoami命令:显示登录系统的当前用户(su -l USER登录的用户也生效)。
  • who am i命令:显示登录系统的当前用户信息。

w命令

  • 命令解释:显示登录当前系统的用户,总登录用户,系统运行时间,正在执行的命令,系统的负载信息。(不记录su -l USER登录的用户)

last命令

  • 命令解释:记录所有用户的登录信息,系统关机信息。读取/var/log/wtmp中的内容。

lastlog命令

  • 命令解释:显示所有用户最后一次登录的信息。

lastb命令

  • 命令解释:显示用户登录失败信息。读取/var/log/btmp中的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值