管理Linux服务器用户和组

时间:2024-03-04 15:34:50
一:用户账户文件和组群文件
1:理解账户文件:/etc/passwd

2:在Linux系统中,所创建的用户账户及其相关信息(密码除外)均放在/etc/passwd配置文件中,
用vim编辑器(或者使用cat /etc/passwd)打开passwd文件。

   [dengzhaoxu@calm ~]$ cat -b /etc/passwd
     1    root:x:0:0:root:/root:/bin/bash
     2    bin:x:1:1:bin:/bin:/sbin/nologin
     3    daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4    adm:x:3:4:adm:/var/adm:/sbin/nologin
     5    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6    sync:x:5:0:sync:/sbin:/bin/sync
     7    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8    halt:x:7:0:halt:/sbin:/sbin/halt
3:passwd文件的每一行都代表着一个用户,每一行用“:”分7个域
    //格式   用户名:加密口令:UID:GID:用户的描述信息:主目录:命令解释器(登陆shell)

4:创建新用户并将其加入群组。将user_s1和user_s2加入到user中.
  [dengzhaoxu@calm ~]$ su root
密码:
[root@calm dengzhaoxu]# useradd user
[root@calm dengzhaoxu]# useradd user_s1
[root@calm dengzhaoxu]# useradd user_s2
[root@calm dengzhaoxu]# useradd -G user user_s1
useradd:用户“user_s1”已存在
[root@calm dengzhaoxu]# useradd -G user user_s2
useradd:用户“user_s2”已存在


二:etc/shadow文件:
  1:由于所有用户对/etc/passwd文件均有读取权限,为了增强系统的安全性,用户经过加密之后的口令都
  存放在/etc/shadow文件中。/etc/shadow文件只对root用户可读,因而大大提高了系统的安全性。
  2:shadow文件的每一行也用“:”分为9个域。
  sshd:!!:18255::::::
  avahi:!!:18255::::::
  postgres:!!:18255::::::
  postfix:!!:18255::::::
  ntp:!!:18255::::::
  tcpdump:!!:18255::::::
  
三:理解组群文件:
  1:组群账户的信息存放在/etc/group(查看不受限制)文件中,而关于组群管理的信息(组群口令、组群管理员等)
  则存放在/etc/gshadow(该文件只能root可以查看)文件中。
[root@calm dengzhaoxu]# cat /etc/group
  root:x:0:   //文件每行分为四个域。
  bin:x:1:  //格式 组群名称:组群口令(一般为空用x占位):GID:组群成员列表
  daemon:x:2:
  sys:x:3:
  adm:x:4:
  tty:x:5:

  [root@calm dengzhaoxu]# cat /etc/gshadow
  root:::
  bin:::
  daemon:::
  sys:::
  adm:::
  tty:::
  disk:::
四:管理用户账户:
  1:新建用户:在系统新建用户可以使用useradd或者adduser命令。
  useradd命令的格式:useradd [选项] <user_Name>

  2:选项:
选项 说明
-s  shell 指定用户的登陆shell,默认为bin/bash
-c  comment 用户的注释信息
-d home_dir 指定用户的主目录
-e  expire_date 禁用帐号的日期:格式为:YYYY-WW-DD
- u UID 指定用户的UID,他必须是唯一的,且必须要大于499
-p passwd 加密的口令
- g initial_group 用户所属主组群的组群名称或者GID

  3:新建用户user3,UID为1010,指定其所属的私有组为group1(group1组的标识符为1010),用户的主目录为/home/user3,
  用户的shell为/bin/bash,用户的密码为123456,账户永不过期。
  [root@calm dengzhaoxu]# groupadd -g 1010 group1   //新建组群group1
  [root@calm dengzhaoxu]# useradd -u 1010 -g 1000 -d /home/user1 -s /bin/bash -p 123456 -f -1 user1
    
  4:设置用户账户口令:
  指定和修改用户账户口令的命令是passwd。超级用户可以为自己和其他用户设置口令,而普通用户只能为自己设置口令。
  passwd命令的格式为:passwd [选项] [用户名字]
  [root@calm dengzhaoxu]# useradd -u 1010 -g 1000 -d /home/user3 -s /bin/bash -p 123456 -f -1 user3
[root@calm dengzhaoxu]# passwd user3
更改用户 user3 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

[root@calm dengzhaoxu]# passwd -n 10 user_s3    //-n:表示指定口令最短的存活期为10天。
调整用户密码老化数据user_s3。
passwd: 操作成功
[root@calm dengzhaoxu]# passwd -n 10 -x 12 user_s3  //最短10天最长12(-x:表示最长)天
调整用户密码老化数据user_s3。
passwd: 操作成功
[root@calm dengzhaoxu]#

5:chage命令:要修改用户账户口令,也可以用chage命令实现
语法格式:chage [选项] username

设置user_s3用户的最短口令存活期为6天,最长口令存活期为60天,口令到期前5天提醒用户修改口令。设置完成后查看各属性值。
[root@calm dengzhaoxu]# chage -m 6 -M 60 -W 5 user_s3
[root@calm dengzhaoxu]# chage -L user1
chage:无效选项 -- L
用法:chage [选项] 登录
选项:
  -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
  -E, --expiredate 过期日期     将帐户过期时间设为“过期日期”
  -h, --help                    显示此帮助信息并推出
  -I, --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
  -l, --list                    显示帐户年龄信息
  -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
  -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
  -R, --root CHROOT_DIR         chroot 到的目录
  -W, --warndays 警告天数       将过期警告天数设为“警告天数” 
 [root@calm dengzhaoxu]# chage -l user_s3
 最近一次密码修改时间                    :2月 10, 2020
 密码过期时间                    :4月 10, 2020
 密码失效时间                    :从不
 帐户过期时间                        :从不
 两次改变密码之间相距的最小天数        :6
 两次改变密码之间相距的最大天数        :60
 在密码过期之前警告的天数    :5

 五:维护用户账户:
  1:usermod命令:
    usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。
    [root@calm dengzhaoxu]# id user_s3  //查看user_s3的部分信息。
      uid=1011(user_s3) gid=1011(user_s3) 组=1011(user_s3)
[root@calm dengzhaoxu]# id user_s3
uid=1011(user_s3) gid=1011(user_s3) 组=1011(user_s3)
[root@calm dengzhaoxu]# usermod -G root user_s3  //-G:变更扩展用户组
[root@calm dengzhaoxu]# id user_s3
uid=1011(user_s3) gid=1011(user_s3) 组=1011(user_s3),0(root)
[root@calm dengzhaoxu]# usermod -u 8888 user_s3  //修改UID
[root@calm dengzhaoxu]# id user_s3
uid=8888(user_s3) gid=1011(user_s3) 组=1011(user_s3),0(root)  
[root@calm dengzhaoxu]#

  2:禁用用户和删除用户:有时需要临时禁用一个账户而不删除它。禁用用户账户可以用passwd或usermod命令实现,
  也可以直接修改/etc/passwd或/etc/shadow文件。
  [root@calm dengzhaoxu]# passwd -l user_s3 //-l命令禁用
  锁定用户 user_s3 的密码 。
  passwd: 操作成功
  [root@calm dengzhaoxu]# tail -1 /etc/shadow  //tail:命令查看
  user_s3:!!:18302:6:60:5:::
  [root@calm dengzhaoxu]# passwd -u user_s3  //-u 命令解锁
  解锁用户 user_s3 的密码。
  passwd: 警告:未锁定的密码将是空的。
  passwd: 不安全的操作(使用 -f 参数强制进行该操作)

  3:userdel命令:
  要删除一个账户,可以直接删除/etc/passwd和/etc/shadow文件中要删除的用户所对应的行,或者用userdel命令删除。
  userdel格式:userdel [-r] username
  -r:如果不加-r选项,userdel命令会在系统中所有与账户有关的文件中(例如/etc/passwd,/etc/shadow,/etc/group)
  将用户的信息全部删除。如果加-r选项,则在删除用户账户的同时,还将用户主目录以及其下的所有文件和目录全部删除掉。另外,
  如果用户使用E-mail的话,同时也将/var/spool/mail目录下的用户文件删掉。

六:管理组群:组群管理包括新建组群、维护组群账户和为组群添加用户等内容。
  1:创建组群:
[root@calm dengzhaoxu]# groupadd testgroup
[root@calm dengzhaoxu]# groupadd testgroup
groupadd:“testgroup”组已存在

  2:删除组群:需要注意的是,如果要删除的组群是某个用户的主组群,则该组群不能被删除。
[root@calm dengzhaoxu]# groupdel testgroup

  3:修改组群:
命令格式:groupmod [选项] groupName
[root@calm dengzhaoxu]# groupadd testgroup
[root@calm dengzhaoxu]# groupmod -g 1002 testgroup //
groupmod:GID “1002”已经存在
[root@calm dengzhaoxu]# groupmod -g 10112 testgroup //-g:表示修改组群的GID为10112
[root@calm dengzhaoxu]# groupmod -n testGroup testgroup //修改组群名字

  4:为组群添加新用户:在Red Hat Linux中使用不带任何参数的useradd命令创建用户时,会同时创建一个和用户账户同名的组群,
  称为主组群。当一个组群中必须包含多个用户时,则需要使用附属组群。在附属组中增加、删除用户都用gpasswd命令。
  命令格式:gpasswd [选项] 用户 组
  [root@calm dengzhaoxu]# useradd -u 10101 -g 10002 -d /home/user4 -s /bin/bash -p 123456 -f -1 user4
  useradd:“10002”组不存在
  [root@calm dengzhaoxu]# useradd -u 10101 -g 1002 -d /home/user4 -s /bin/bash -p 123456 -f -1 user4
  [root@calm dengzhaoxu]# id user4
  uid=10101(user4) gid=1002(user_s1) 组=1002(user_s1)
  [root@calm dengzhaoxu]# gpasswd -a user4 testGroup //创建ueser4时就创建了一个名为user4的主组,-a:表示将用户加入到附属组testGroup中。
  正在将用户“user4”加入到“testGroup”组中
   [root@calm dengzhaoxu]#
七:使用用户管理器管理用户和组群:默认图形界面的用户管理器是没有安装的,需要安装system-config-users工具
  1:在使用su命令进行用户的切换时,导致root密码暴露,从而增大了黑客的入侵的概率.
  2:[dengzhaoxu@calm ~]$ rpm -qa|grep system-config-users  //该命令是用于检测是否安装管理器.|:为管道符.
  3:使用yum命令安装:
[root@calm dengzhaoxu]# vim /etc/yum.repos.d/dvd.repo  //编写dvd.repo文件.文件内容在后面给出.
[root@calm dengzhaoxu]# yum info system-config-users
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
dvd                                                      | 4.3 kB     00:00     
sublime-text                                             | 2.9 kB     00:00     
(1/2): dvd/group_gz                                        | 146 kB   00:00     
(2/2): dvd/primary_db                                      | 4.2 MB   00:00     
可安装的软件包
名称    :system-config-users
架构    :noarch
版本    :1.3.5
发布    :4.el7
大小    :337 k
源    :dvd
简介    : A graphical interface for administering users and groups
网址    :https://than.fedorapeople.org/system-config-users
协议    : GPLv2+
描述    : system-config-users is a graphical utility for administrating
         : users and groups.  It depends on the libuser library.

[root@calm dengzhaoxu]# yum clean all  //按照教科书上说的安装前先清理软件源.
[root@calm dengzhaoxu]# yum install system-config-users -y  //开始安装.

文件内容:
#/etc/yum.repos.d/dvd.repo
#or for ONLY the media repo,do this:
#yum --disablerepo=\* --enablerepo=c6-media [command]
[dvd]
name=dvd
baseurl=file:///iso
gpgcheck=0
enabled=1
[root@calm dengzhaoxu]# system-config-users  //打开用户管理器.

八:使用常用的账户管理命令:
  1:vipw命令等价于:vim /etc/passwd   //使用vipw编写passwd文件更安全.
  2:vigr命令等价于:vim /etc/group
  3:pwck命令:pwck命令用于验证用户账户文件认证信息的完整性。
  该命令检测/etc/passwd文件和/etc/shadow文件每行中字段的格式和值是否正确。pwck命令的语法为
  4:grpck命令用于验证组群文件认证信息的完整性。该命令还可检测/etc/group文件和/etc/gshadow文件每行中字段的格式和值是否正确
  5:id命令:用于显示一个用户的UID和GID以及用户所属的组列表。在命令行输入id直接回车将显示当前用户的ID信息。
  id命令的语法为:id [选项] userName
  6:finger命令:
  finger [选项] userName  :管理员和其他用户都可以用finger命令来了解用户 //选项有:-l,-m,-s,-p共四种。
  7:chfn,chsh命令:
  用户自己可以使用chfn和chsh命令来修改finger命令显示的内容
  8:whoami命令用于显示当前用户的名称。whoami命令与id -un命令的作用相同。
  9:newgrp命令:
  10:使用groups命令可以列出指定用户的组群