Transcript 3.2.用户管理
河南宏力集团网络管理部内部Linux培训 用户管理 刘西洋 1. 用户管理机制 1.1 用户类型 1.2 用户ID 1.3 用户管理方式 1.4 用户管理交换器文件 1.1 用户类型 Linux用户分为两类:real user和deamon user Real User即普通用户,其中包括超级用户root,普 通用户如honliv。普通用户可登陆系统,获得shell ,执行命令。 Deamon user为系统服务所使用的用户,此类用户 不可登陆系统,仅作服务进程的权限限制使用。 Root为超级管理员账户,具有系统最高权限,可 以为所欲为。所以最具危险性。不建议直接使用 。 1.2 用户ID Linux用户的唯一标识为用户ID,文件系统以用户 ID标识文件的归属。进程以用户ID标识归属性和 具有的权限。 用户ID从0开始,无最大限制,最好小于264。 Red Hat 发行版中: 0 为root用户ID 1-499 为deamon用户ID范围 500以上为普通用户ID范围。 用户ID的范围界定推荐如上,但不强制。 1.3 用户管理方式 Linux系统可用的用户管理方式为: NIS 使用NIS(版本2 )授权 NIS+ 使用NIS+(版本3)授权 Files 使用本地文件/etc/pssswd /etc/shawdow DB 使用本地数据库文件 LDAP 使用LDAP授权 MYSQL 使用MYSQL授权 1.4 NSS Name Service Switch. 名称服务开关,为常见系统服务和名称解析指 明配置数据库来源,包括:本地文件,DNS,NIS,LDAP 等 NSS包含如下文件: /etc/nsswitch.conf /lib/libnss_compat.so.X /lib/libnss_db.so.X /lib/libnss_dns.so.X /lib/libnss_files.so.X /lib/libnss_nis.so.X /lib/libnss_nisplus.so.2 主配置文件 为glibc实现以compat为来源的配置指向 为glibc实现以db为来源的配置指向 为glibc实现以dns为来源的配置指向 为glibc实现以files为来源的配置指向 为glibc实现以nis为来源的配置指向 为glibc实现以nisplus为来源的配置指向 nsswitch.conf文件决定: 系统从何处获得用户和密码信息。以及查找顺序, 系统从何处获得IP地址,DNS域名解析,主机名。以及查找顺序。 1.5 PAM PAM (Pluggable Authentication Modules for Linux)基于Linu x 的插入式验证模块。 PAM实现用户登录授权验证处理。 PAM只提供接口,不 提供数据库。所以, PAM只是工具。 PAM支持从本地文件,ldap,mysql获取用户和密码数据 库。 PAM的文件: /usr/lib/libpam.so.* /etc/pam.conf或/etc/pam.d/ /usr/lib/security/pam_*.so PAM核心库 PAM配置文件 可动态加载的PAM 服务模块 1.6 如何工作? 从登录界面到出现shell系统是如何工作的? 1 系统输出login提示符,接受用户输入 2 用户输入用户名,PAM检查用户名的合法性。 » 系统读取/etc/nsswitch.conf文件获取用户密码数据库类型 » PAM读取用户名数据库。 » PAM验证用户名的合法性。 3 用户名合法,输出password提示符。用户名不合法, 输出失败信息。 4 PAM获取用户输入,加密后和密码数据库比对。 » PAM读取密码数据库。 » PAM验证密码,完成授权。 5 密码验证通过后,PAM创建会话,提供shell。 2. 相关配置文件 /etc/passwd /etc/shadow /etc/group /etc/nsswitch.conf /etc/pam.d/login 2.1 /etc/passwd 内容节选: root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin honliv:x:1001:1001::/home/honliv:/bin/bash passwd文件以“:”分段。 第一段:用户名, 第二段:密码,x号标示passwd文件中不包含密码,密码在shadow文件中。 第三段:用户ID 第四段:组ID,用户主属组的组ID 第五段:解释,备注,关于用户的一些详细信息。 第六段:用户主目录 第七段:用户shell,/sbin/nologin,不允许登陆。 添加用户可以用useradd名,也可直接编辑passwd文件。 2.2 /etc/shadow 内容节选: root:$6$LdRV66cqgbYG0Vuz$xNrk7AM0.SA/GmP5IpyGo9D77JXLowDr48 WdX0IsaSArU6vhkQfbKW7B7LKBwX0BFv0PRpqRBHO0Eo0kFGR25.:15442: 0:99999:7::: bin:*:14937:0:99999:7::: daemon:*:14937:0:99999:7::: shadow文件以“:”分段。 第1段:用户名 第2段:密码,!代表未设置密码,$代表设置了密码,*表示不需要密码。 第3段:上次修改密码日期,自计算机元年1970年1月1日的天数。 第4段:多久后可修改密码,0代表随时可修改 第5段:密码的过期时间,99999代表永不过期 第6段:过期时间提前警告天数,7天后过期 第7段:密码过期后,系统自动禁用账户天数 第8段:账户被禁用的天数 第9段:备用 2.3 /etc/group 内容节选: root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon group文件以“:”分段。 第一段:组名 第二段:组口令占位符 第三段:组ID 第四段:组内用户,逗号分隔添加多个用户。 2.4 /etc/nsswitch.conf /etc/nsswitch.conf 该文件决定系统从何处查找用户和密码信息。以及多 种选择方式的优先级。 同时该文件还决定hostname,network等服务获取地址 和主机名的优先级。 passwd: shadow: group: hosts: files 用户数据库从/etc/passwd读取 files 密码数据库从/etc/shadow读取 files 组数据库从/etc/passwd读取 files dns 主机名优先从host文件读取,其次通过DNS获取 2.5 /etc/pam.d/login 内容节选: module-type auth account password session control-flag required sufficient requisite optional control-flag pam_env.so pam_localuser.so pam_cracklib.so pam_keyinit.so module-type 模块类型有四种: auth、account、session、password,即对应PAM所支持的四种管理方式。 同一个服务可以调用多个 PAM模块进行认证,这些模块构成一个stack。 control-flag 有四种可能的值: required,requisite,sufficient,optional。 它告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况 control-flag包含以下两个部分: module-path部分指明库文件路径,相对路径默认基于目录/usr/lib/security arguments 为模块执行的参数。 3 用户管理命令 3.1 用户管理命令 /bin/users查看当前在系统上登录的用户 /usr/sbin/usernetctl 查看用户是否有操作网卡权限 /usr/sbin/newusers从文件批量创建用户 /usr/sbin/lnewusers同lnewusers /usr/sbin/adduser同useradd /usr/sbin/useradd添加用户 /usr/sbin/luseradd同useradd /usr/sbin/userdel删除用户 /usr/sbin/luserdel同userdel /usr/sbin/usermod修改用户属性 /usr/sbin/lusermod同usermod 3.2 组管理命令 /usr/bin/groups查看当前在系统上登录的组 /usr/sbin/groupadd添加组 /usr/sbin/lgroupadd /usr/sbin/groupdel删除组 /usr/sbin/lgroupdel /usr/sbin/groupmod修改组属性 /usr/sbin/lgroupmod /usr/sbin/groupmems把别的用户添加到自己的同名组,不需要特权