用户和用户组管理

来源:互联网 发布:iphone6s用不了4g网络 编辑:程序博客网 时间:2024/05/21 20:23

用户和用户组管理

越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范,在Linux中主要通过用户配置文件来查看和修改用户信息

用户配置文件

用户信息文件/etc/passwd影子文件/etc/shadow组信息文件/etc/group组密码文件/etc/gshadow

用户信息文件/etc/passwd

/etc/passwd contains one line for each user account, with seven fields delimited by colons (“:”). These fields are:

For example:
[hplip:x:115:7:HPLIP system user,,,:/var/run/hplip:/bin/false]

  1. login name
  2. optional encrypted password
  3. numerical user ID
  4. numerical group ID
  5. user name or comment field
  6. user home directory
  7. optional user command interpreter

几点说明:

  • optional encrypted password

    • 密码,在/etc/passwd中是不显示的,在影子文件/etc/shadow,但是是加密的
  • numerical user ID(UID)

    • 0:超级用户
    • 1-499:系统用户(伪用户)
    • 500-65535:普通用户
  • numerical group ID (用户初始组ID【GID】)

    • 初始组:指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组【建议不要修改初始组】
    • 附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个
  • user home directory (家目录)

    • 普通用户:/home/用户名/
    • 超级用户:/root/
  • optional user command interpreter (用户命令解析器【登录之后的Shell】)

    • Shell是Linux的命令解析器
    • 在/etc/passwd中,除了标准Shell是/bin/bash之外,还可以写如/sbin/nologin,/usr/bin/passwd等

影子文件/etc/shadow

shadow is a file which contains the password information for the
system’s accounts and optional aging information.

This file must not be readable by regular users if password security is
to be maintained.

Each line of this file contains 9 fields, separated by colons (“:”), in
the following order:

For example: [hsx:6CcdHbquA$JJJJaN0t71234124165Adsfs4z8fxNJJJJJWoYXadadsfaDSDDDK.YqIRP62icwhN324352G12334343245245ZoIQ2Yzs/:17134:0:99999:7:::]
[messagebus:*:17001:0:99999:7:::]

  1. login name
  2. encrypted password
  3. date of last password change
  4. minimum password age
  5. maximum password age
  6. password warning period
  7. password inactivity period
  8. account expiration date
  9. reserved field

几点说明:

  • encrypted password (加密密码)

    • 加密算法升级为SHA512散列加密算法
    • 如果密码位是“!!”或”*”代表没有密码,不能登录
  • date of last password change (密码最后一次修改日期)

    • 使用1970年月1日作为标准时间,每过一天时间戳加1
  • minimum password age (两次密码的修改间隔时间)

    • 多少时间后才能修改
    • 和第3字段相比
  • maximum password age (密码的有效期)

    • 和第3字段相比
  • password warning period (密码修改到期前的警告天数)

    • 和第5字段相比
  • password inactivity period (密码过期后的宽限天数)

    • 和第5字段相比
    • 0:代表密码过期后立即失效
    • -1:则代表密码永远不会失效
  • account expiration date (账号失效时间)

    • 只要到了这个时间,账号就失效了,也许这个时候密码的有效期还没有到
    • 要用时间戳表示
    • 把时间戳换算为日期 date -d “1970-01-01 17134 days”
    • 把日期换算为时间戳 echo (((date –date=”2016/12/25” +%s)/86400))

组信息文件/etc/group

The /etc/group file is a text file that defines the groups on the system. There is one entry per line, with the following format: [group_name:password:GID:user_list]

The fields are as follows:

  1. group_name
  2. password
  3. GID
  4. user_list

几点说明:

  • password (密码)
    • 是存放在/etc/gshadow中的)

组密码文件/etc/gshadow

/etc/gshadow contains the shadowed information for group accounts.

This file must not be readable by regular users if password security is to be maintained.

Each line of this file contains the following colon-separated felds:

For example:
[sudo:*::hsx]

  1. group name
  2. encrypted password
  3. adminstrators
  4. members

用户管理相关文件

用户的家目录用户的邮箱用户模板目录

用户的家目录

  1. 普通用户: /home/用户名/,所有者和所属组都是此用户
  2. 超级用户: /root/,所有者和所属组都是root用户

用户的邮箱

  1. /var/spool/mail/用户名/
  2. 作用:接收到的邮件都会在上目录中出现

用户模板目录

  1. /etc/skel
  2. 作用:默认添加用户的目录默认文件存放位置,即,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

用户管理命令

用户添加命令useradd修改用户密码passwd修改用户信息usermod修改用户密码状态chage删除用户userdel查看用户的UID/GID/groups用户切换命令su

用户添加命令useradd

useradd - create a new user or update default new user information

useradd [options] LOGIN

options:

  • -u UID #手工指定用户的UID号
  • -d 家目录 #手工指定用户的家目录
  • -c 用户说明 #手工指定用户的说明
  • -g 组名 #手工指定用户的初始组
  • -G 组名 #手工指定用户的附加组
  • -s shell #手工指定用户的登录shell,默认的是/bin/bash

For example:
[groupadd hhh]
[useradd -u 666 -g hhh -G root -d /home/hhh -c “test user” -s /bin/bash hhh]

在执行useradd hhh命令后,一般默认添加了一些文件或者在某些文件中添加了部分内容,可以通过一下命令查看

  • grep hhh /etc/passwd
  • grep hhh /etc/shadow
  • grep hhh /etc/group
  • grep hhh /etc/gshadow
  • ll -d /home/hhh
  • ll /var/spool/mail/hhh

用户默认值文件

  • /etc/default/useradd

    • GROUP=100 #用户默认组
    • HOME=/home #用户家目录
    • INACTIVE=-1 #密码过期宽限天数(7)
    • EXPIRE= #密码失效时间(8)
    • SHELL=/bin/bash #默认Shell
    • SKEL=/etc/skel #模板目录
    • CREATE_MAIL_SPOOL=yes #是否建立邮箱
  • /etc/login.defs

    • PASS_MAX_DAYS 9999 #密码有效期(5)
    • PASS_MIN_DAYS 0 #密码修改间隔(4)
    • PASS_MIN_LEN 5 #密码最小5位(PAM)
    • PASS_WARN_AGE 7 #密码到期警告(6)
    • UID_MIN 500 #最小和最大UID范围
    • GID_MAX 60000
    • ENCRYPT_METHOD SHA512 #加密模式

修改用户密码passwd

passwd - change user password

passwd [options] [LOGIN]

options:

  • -S #查询用户密码的密码状态,仅root用户可用
  • -l #暂时锁定用户,仅root用户可用
  • -u #解锁用户,仅root用户可用
  • –stdin #可以通过管道符输出的数据作为用户的密码

For example:

passwd -S hhh
hhh PS 2016-12-25 0 99999 7 -1 #用户名 密码设定时间(2016-12-25) 密码修改间隔时间(0) 密码有效期(99999) 警告时间(7) 密码不失效(-1)

passwd -l hhh

passwd -u hhh

echo “123” | passwd –stdin hhh

注:

  • root用户修改密码,可以修改普通用户和root自己的密码,如:passwd hhh
  • 普通用户修改密码,只能修改自己的密码,同时要遵循复杂性原则,如:passwd

修改用户信息usermod

usermod - modify a user account

usermod [options] LOGIN

options:

  • -u UID #修改用户的UID
  • -c 用户说明 #修改用户的说明信息
  • -g 组名 #修改用户的默认的组
  • -G 组名 #修改用户的附加组
  • -L #临时锁定用户(Lock)
  • -U #解锁用户锁定(Unlock)

For example:

  • usermod -c “test user” hhh
  • usermod -G root hhh
  • usermod -L hhh
  • usermod -U hhh

修改用户密码状态chage

chage - change user password expiry information

chage [options] LOGIN

options:

  • -l #列出用户的纤细密码状态
  • -d 日期 #修改密码最后一次更改日期(shadow3字段)
  • -m 天数 #两次密码修改间隔(shadow4字段)
  • -M 天数 #密码有效期(shadow5字段)
  • -W 天数 #密码过期前警告天数(shadow6字段)
  • -l 天数 #密码过后宽限天数(shadow7字段)
  • -E 日期 #账号失效时间(shadow8字段)

For example:

chage -d 0 hhh #这个命令其实是把密码修改日期归0,(shadow第3字段),这样用户一登录就要修改密码

删除用户userdel

userdel - delete a user account and related files

userdel [options] LOGIN

options:

  • -r 删除用户,同事删除用户的家目录,注意:这个命令一定要带上
  • 还有一起命令

手工删除用户 userdel命令相当于在下面的文件中做一定的修改,把用户给删除掉

  • vi /etc/passwd
  • vi /etc/shadow
  • vi /etc/group
  • vi /etc/gshadow
  • rm -rf /var/spool/mail/hhh
  • rm -rf /home/lamp

查看用户的UID/GID/groups

id - print real and effective user and group IDs

id [OPTION]… [USER]

option:

  • 用man id进行查看

For example:

id 用户名 #uid=1000(hsx) gid=1000(hsx) groups=1000(hsx),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)

用户切换命令su

su - change user ID or become superuser

su [options] [username]

options:

  • ‘-’ #选项只使用”-“代表连带用户的环境变量一起切换
  • -c 命令 #仅执行一次命令,二不切换用户身份

For example:

su - root #切换成root,注意中间一定要加上”-“,如果不加上”-“,那么切换后的用户是不完整的

su - root -c “useradd user3” #不切换成 root ,但是执行useradd命令添加user3用户

用户组管理命令

添加用户组groupadd修改用户组groupmod删除用户组groupdel把用户加入组中或把用户从组中删除gpasswd

添加用户组groupadd

groupadd - create a new group

groupadd [options] group

options:

  • -g GID #指定组ID
  • 还有其他命令

For example:

groupadd gt

vim /etc/group

修改用户组groupmod

groupmod - modify a group definition on the system

groupmod [options] GROUP

options:

  • -g GID #修改组ID
  • -n 新组名 #修改组名

For example:

groupmod -n hhhg tg #把组名tg修改为hhhg 尽量不要修改组名

删除用户组groupdel

groupdel - delete a group

groupdel [options] GROUP

options:

  • 用man groupdel查看

For example:

groupdel hhhg

几点说明:

  • 如果组里有初始用户,那么不能删除该组,如果要删除该组,那么必须删除其初始用户【-g/-G】
  • 如果组里有附件用户,是可以删除该组的

把用户加入组中或把用户从组中删除gpasswd

gpasswd - administer /etc/group and /etc/gshadow

gpasswd [option] group

option:

  • -a 用户名 #把用户名加入组中
  • -d 用户名 #把用户名从该组中删除

注意使用useradd和gpasswd把用户添加到组中

  • useradd -g hhhg hhh
  • gpasswd -a hhh hhhg

注意:尽量不要修改初始组,可以修改附加组

1 0
原创粉丝点击