Linux用户和组管理
安全上下文:
进程以其发起者的身份运行
进程对文件的访问权限,取决于发起此进程的用户的权限
系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登录系统
groupadd命令:添加组
groupadd [选项] group_name
-g:手动指定GID;默认是上一个组的GID+1
-r:创建系统组;
groupmod命令:修改组属性
groupmod [选项] GROUP
-g:修改GID
-n:修改组名称
groupdel命令:删除组
groupdel [选项] GROUP
useradd命令:创建用户
useradd [选项] 登录
-u:指定UID
-g:指定基本组ID,此组得事先存在
-c:指明注释信息
-G:指明用户所属的附加组,多个组之间用逗号分隔
-d:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现的;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
-s:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中
-r:创建系统用户
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
userad -D:显示创建用户的默认配置
-D:修改默认选项的值
修改的结果保存于/etc/default/useradd文件中
usermod命令:修改用户属性
usermod [选项] 登录
-u:修改用户的ID为此处指定的新UID
-g:修改用户所属的基本组;
-G:修改所属的附加组;原来的附加组会被覆盖
-a:与-G一同使用,用于为用户添加追加新的附加组
-c:修改注释信息
-d:修改用户的家目录;用户原有的文件不会被转移至新位置
-m:只能与-d选项一同使用,用于将原来的家目录移动到新的家目录
-l:修改用户名
-s:修改用户的默认shell
-L:锁定用户密码,禁止用户登录;即在用户原来的密码字符串之前添加一个“!”
-U:解锁用户的密码
userdel命令:删除用户
userdel [选项] 登录
-r:删除用户时一并删除其家目录
练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001)
练习2:创建用户fedora,其注释信息为“Fedora Core”,默认shell为/bin/tcsh
练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍被用户访问
练习4:为gentoo新增附加组netadmin;
passwd命令:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S]
[--stdin] [username]
(1)passwd:修改用户自己的密码
(2)passwd USERNAME:修改指定用户的密码,但仅root有此权限
-l,-u:锁定和解锁用户
-d:清除用户密码串
-e DATE:设置用户密码过期期限,日期
-i DAYS:非活动期限
-n DAYS:密码的最短使用期限
-x DAYS:密码的最长使用期限
-w DAYS:警告期限
--stdin:echo “PASSWORD” | passwd --stdin USERNAME
gpasswd命令:
gpasswd [选项] group
-a USERNAME:向组中添加用户
-d USERNAME:从组中移除用户
newgrp命令:临时切换指定的组为基本组
newgrp [-] [group]
-:会模拟用户重新登录以实现重新初始化其工作环境
chage命令:更改用户密码过期信息
chage [选项] username
-d:指定密码最后修改日期
-E:密码到期的日期,过了这天,此账号不可用,0表示马上过期,-1表示永不过期
-h:显示帮助信息并退出
-I:密码过期后,锁定账号的天数
-l:列出用户以及密码的有效期
-m:密码可以更改的最小天数,为0代表任何时候都可以更改密码
-M:密码保持有效的最大天数
-w:密码过期前,提前收到警告信息的天数
id命令:显示用户的真实有效ID
id [OPTION]... [USER]
-u:仅显示有效的UID
-g:仅显示用户的基本组ID
-G:仅显示用户所属的所有组的ID(附加组)
-n:显示名字而非ID
su命令:switch user (切换用户)
登录式切换:会通过读取目标用户的配置文件来重新初始化
su - USERNAME
SU -l USERNAME
非登录式切换:不会读取目标用户的配置文件进行初始化
su USERNAME
注意:管理员可无密码切换至其它任何用户;非管理员切换其它用户时必须有密码否则无法登陆其它用户
-c “command”:仅以指定用户的身份运行此处指定的命令
其它几个命令:chsh,chfn,finger,whoami,pwck,grpck
命令总结:groupadd,groupmod,groupdel,useradd,usermod,userdel,passwd,gpasswd,newgrp,id,su,chage