Linux系统中基本的用户管理方法

10/21/2015来源:网络管理人气:1729

  用户管理的配置文件

  用户信息文件:/etc/passwd

  密码文件:/etc/shadow

  用户组文件:/etc/group

  用户组密码文件:/etc/gshadow

  用户配置文件:

  /etc/login.defs

  /etc/default/useradd

  新用户信息文件:/etc/ske1

  登陆信息:/etc/motd /etc/issue

  /etc/passwd文件格式

2015730175159219.jpg (927×322)

  用户类型

  linux用户分为三种:

  超级用户(root UID=0)

  普通用户(UID 500-60000)

  伪用户(UID 1-499)

  注意:root不一定是超级用户,但是UID=0的用户一定是超级用户。

  伪用户

  伪用户与系统和程序服务相关

  bin daemon shutdown halt等,任何linux系统默认都有这些伪用户

  mail news games apache ftp MySQL及sshd等,与linux系统的进程相关

  伪用户通常不需要或无法登陆系统

  可以没有宿主目录

  用户组

  每个用户都至少属于一个用户组

  每个用户组可以包括多个用户

  同一个用户组的用户享有该组共有的权限

  /etc/shadow文件格式

2015730175220429.jpg (944×420)

  /etc/group文件格式

2015730175239259.jpg (931×215)

  手工添加用户

  分别在/etc/passwd 、/etc/group 和/etc/shadow文件中添加一笔记录

  创建用户宿主目录

  在用户宿主目录中设置默认的配置文件

  设置用户初始密码

  SetUID

  思考:为什么普通用户可以更改密码?

  SetUID的定义:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。

  范例:1.将touch命令授予SetUID权限

  2.当vi命令呗授予SetUID权限

  3.查找SetUID程序:

  代码如下:

  Find / -perm -4000 –o –perm -2000

  添加用户

  useradd设置选项 用户名 -D 查看缺省参数

  u:UID

  g:缺省所属用户组GID

  G:指定用户所属多个组

  d:宿主目录

  s:命令解释器shell

  c:描述信息

  e:指定用户失效时间

  代码如下:

  #useradd ksharpdabu //添加ksharpdabu这个账号

< p>#passwd ksharpdabu /修改ksharpdabu的密码

  或者熟悉系统文件的,可以直接手动添加用户

  用户组管理命令

  添加用户组groupadd

  代码如下:

  groupadd -g 888 webadmin

  创建用户组webadmin ,其GID为 888

  删除用户组:groupdel 组名

  代码如下:

  #groupdel webuser //删除webuser这个组

  修改用户组星系 :groupmod

  代码如下:

  #groupmod -n apache webadmin

  修改webadmin组名为apache

  用户组管理命令

  Gpasswd设置组密码及管理组内成员

  -a添加用户到用户组

  -d 从用户组中删除用户

  -A设置用户组管理员

  -r删除用户组密码

  -R禁止用户切换为该组

  修改用户信息

  usermod

  代码如下:

  #usermod -G softgroup ksharpdabu

  将用户ksharpdabu添加到softgroup用户组中

  代码如下:

  #usermod -l ksharpdabu -d /home/samlee –g webadmin Tom

  将用户Tom的登陆用户名改为ksharpdabu,加入wenadmin组中,用户目录改为/home/ ksharpdabu

  用户管理命令

  pwk 检测/etc/passwd文件(锁定文件)

  vipw 编辑/etc/passwd文件

  id 查看用户id和组信息

  finger 查看用户详细信息

  su 切换用户(su –环境变量切换)

  passwd –S 查看用户密码状态

  who、w 查看当前登录用户信息

  用户组管理命令

  groups 查看用户隶属于哪些用户组

  newgrp 切换用户组

  grpck 用户组配置文件检测

  chgrp 修改文件所属组

  vigr 编辑/etc/group文件(锁定文件

  用户组授权实例

  授权用户jack和mary对目录/software有写权限

  代码如下:

  # groupadd softadm

< p># usermod -G softadm jack

< p># gpasswd -a mary softadm

< p># chgrp softadm /software

< p># chmod g+w /software

  代码如下:

  # ls -ld /software

< p>drwxrwxr-x 2 root softadm 512 Jul 14 06:17 /software

< p># grep softadm /etc/group

< p>softadm::100:jack,mary

  禁用和恢复用户

  禁用

  代码如下:

  # usermod -L username

< p># passwd -l username

  恢复

  代码如下:

  # usermod -U username

< p># passwd -u username

  删除用户

  userdel –r 用户名

  -r:删除用户目录

  手工删除:

  使用find命令查找属于某个用户或者用户组的文件

  Find选项-user、-uid、-group、-gid

  对需要保留的文件进行移动和备份

  对不需要的文件进行删除

  清除用户文件中的相关表项

  清除用户宿主目录

  用户管理命令

  change设定密码

  -l 查看用户密码设置

  -m 密码修改最小天数

  -M 密码修改最大天数

  -d 密码最后修改的日期

  -l 密码过期后,锁定账户的天数

  -E 设置密码的过期日期,如果为0,代表密码立即过期;如果为-1,代表密码永不过期

  -W 设置密码过期前,开始警告的天数

  启动或停用shadow功能

  pwconv/pwunconv

  grpconv/grpunconv

  system-config-users

  authconfig /etc/sysconfig/authconfig

  批量添加用户

  newusers命令 导入用户信息文件

  pwunconv命令 取消shadow passWord功能

  chpasswd命令 导入密码文件(密码文件格式: 用户名:密码)

  pwconv命令 将密码写入shadow文件

  实例:一次批量添加10个用户

  限制用户su为root:

  代码如下:

  # groupadd sugroup

< p># chmod 4550 /bin/su

< p># chgrp sugroup /bin/su

< p># ls -l /bin/su

< p>-r-sr-x— 1 root sugroup 18360 Jan 15 2010 /bin/su

  设定后,只有sugroup组中的用户可以使用su切换为root

  代码如下:

  # useradd helen

< p># passwd helen

< p># usermod -G sugroup helen //为helen增加su的权限

  用sudo替代su:

  在执行sudo命令时,临时成为root

  不会泄露root口令

  仅向用户提供有限的命令使用权限

  配置文件:/etc/sudoers,编辑配置文件命令visudo

  普通用户使用命令sudo。

  格式:用户名(组名) 主机地址=命令(绝对路径)

  系统弱密码测试工具John the ripper的使用方法;

  代码如下:

  # tar -xzvf john-1.7.6.tar.gz

< p># cd john-1.7.6/run

< p># make

  破解用户ksharpdabu密码

  代码如下:

  # grep ksharpdabu /etc/passwd > /test/ksharpdabu.passwd

< p># grep ksharpdabu /etc/shadow > /test/ksharpdabu.shadow

< p># /test/john-1.6.6/run/unshadow /test/ksharpdabu.passwd

< p>/test/ksharpdabu.shadow > /test/ksharpdabu.john

< p># /test/john-1.6.6/run/john /test/ksharpdabu.john