Linux命令--用户和用户组管理

来源:互联网 发布:idc 网络架构 编辑:程序博客网 时间:2024/06/16 18:56

4.1 普通用户的管理

/etc/passwd文件:存储用户的相关信息。(包括用户名、字码、主目录位置等。可以用vipw命令编辑/etc/passwd文件。vipw类似于vi,但在编辑文件时对文件加锁,编辑结束后解锁。文件格式为:Username:encrypted password:UID:GID:full name:home directory:login shell。例:root:x:0:0:root:/root:/bin/bash。因为linux2.0以上版本因为安全性,把密码与用户基本信息分开存储,所以在存放密码的位置为“x”标识。真正的密码在/etc/shadow文件中。用户标识号UID为整数,取值范围为0~65535。0~439一般由系统保留,其中“0”为根用户。用户组标识号GID也为整数,0~439被系统保留,用户组的具体定义在/etc/group文件。个人信息描述 full name记录用户的真实姓名、电话、地址、邮编等信息,各项之间用“,”分隔,该字段可以为空。登录目录home directory是用户登录系统后的默认目录,通常就是用户的主目录,一般在/home下。根用户的登录目录为/root。登录Shell是用户以文本方式登录系统后启动的Shell进程,常用的包括sh(Bourne Shell)、csh(C Shell)、ksh(Korn Shell)、tcsh(TENEX/TOPS-20 type C Shell)、bash(Bourne Again Shell)等。)

/etc/shadow文件:存储用户密码。(passwd文件可被普通用户访问,而shadow文件只能被根用户访问。文件格式为:Username:Encrypted password:Number of days:Minimum password life:Maximum password life:Warning period:Disable account:Account expiration:Reserved,分别表示用户名、密码、从1970年到上次修改密码的天数、密码必须连续使用的天数、密码有效期、密码失效前告警的天数、从密码过期到彻底停用的天数、账号失效日期、保留字段。例:daemon:*:15089:0:99999:7:::。密码由 MD5(Message Digest v5)算法加密。)

pwconv:创建影子文件。(把/etc/passwd中的密码转换为“x”,同时创建影子文件/etc/shadow保存密码。)

pwunconv:从影子文件恢复密文。(与pwconv相反,把/etc/shadow中的密码加入到/etc/passwd文件中,并删除/etc/shadow文件。)

useradd:添加新用户。(adduser是useradd的一个链接。-c comment:用户的注释说明;-d home_dir:登录目录;-e expire_date:帐号失效日期;-f inactive_days:帐号过期到永久停用的天数,值为0时表示帐号到期后立即停用,系统默认值为-1,表示账号不会被停用;-g initial_group:用户默认的用户组或默认用户组ID,必须是已经存在的,默认值为100,表示users组;-G group:设定该用户为若干用户组的成员,每个用户组之间用“,”分隔,且不可夹杂空格;-m:用户目录如不存在则自动建立;-k:把目录 skeleton_dir和/etc/skel的文档复制到用户目录中,默认下-m和-k都不被启用;-M:不建立用户主目录,使用/etc /login.defs系统文件对用户进行设定;-n:系统默认用户组名称与用户名称相同;-r:建立系统帐号,即比定义在/etc /logins.defs中的UID_MIN小的值,UID_MIN的默认值是500,-r不会创建用户主目录,除非指定-m参数;-sehll default_shell:指定用户的登录Shell,默认为/bin/bash;-u uid:用户UID;-D:单独使用时显示当前默认值,与其它选项一起使用表示在默认设置的基础上重新设定默认值。)

usermod:修改用户的帐号。(支持useradd命令的选项,如-c、-d、-e、-f、-g、-G、-s、-u,此外还支持-l login_name:变更用户登录时的名称。)

userdel:删除用户。(删除用户在系统的账户信息。-r删除用户主目录下的文档,不指定该选项则保留主目录。删除用户前,应该等待该用户的进程执行完毕,或用ps -aux | grep "username"终止。此外还应查看是否有该用户的定时任务,用命令crontab -u username -r。)

passwd:修改用户密码。(-k:只有密码过期才需要用户设定密码。-l:通过在用户的密码字段加前缀“!”,对用户进行锁定。锁定的用户无法登录系统。--stdin:从标准输入重新读入密码。-u:与-l相反,删除密码字段前的“!”对锁定的用户进行解锁,口令为空的用户原则上是不允许解锁的,配合-f可强制解锁;-d:快速删除用户的密码。-n mindays:设定最短的密码有效期。-x maxdays:设定最长的密码有效期。-w:密码过期前,提前发出警报的天数。-i inactivedays:密码过期到帐号停用的天数。-S:显示指定用户当前密码状态。passwd单独使用时改变当前用户的密码。根用户可以用 passwd username修改其他用户的密码。)

newusers:批量创建用户。(首先建立一个用户信息文件,格式与/etc/passwd相同,之后用命令newusers < filename来添加文件中定义的用户。如果不使用管道方式“<”,可以在标准输入中输入各行,以ctrl+d表示结束。)

chpasswd:批量创建用户密码。(与newusers类似,从文件中导入密码信息,文件格式为username:password。)

chage:查看帐户密码的有效期。(例:chage -l username。)


4.2 根用户的管理

su:变更用户身份。(例:su username。不输入用户名时,默认的用户为root。)

chroot:改变根目录。(对进程建立新的虚拟根目录“/“,通常保护真正的根目录。chroot newroot [command]。例:创建目录/tmp/empty,把ls链接到该目录,再运行chroot /tmp/empty /ls -Rl /。)


4.3 用户组的管理

/etc/group文件:存储组信息。(文件格式:用户组:加密密码:GID:组成员列表。密码用“x”代替。)

/etc/gshadow文件:存储组密码。(文件格式:用户组名称:加密密码:管理员帐号:组成员列表。管理员可以对该组进行增、删、改等操作。)

groupadd:添加新用户组。(命令格式:groupadd [-g GID [-o]] [-r] [-f] [-K KEY=VALUE] groupname。-g GID:用户组id;-r:创建小于500的系统组,若不指定-g,则按递减顺序从小于500的可用值中挑选;-f:如果所定义的组已存在,则退出并显示成功信息,若-g和-f合用,且-g指定的组已存在,则-g指定的组被忽略且新的group会分配另一个id值;-o允许指定不唯一的GID;-K KEY=VALUE:重载/etc/login.defs中的默认值,例如设置GID_MIN;groupname:用户组名称。)

groupmod:修改用户组属性。(-g GID;-n new groupname。例:groupmod -g 503 -n yourgroup mygroup。)

groupdel:删除用户组。(必须等待该用户组的所有用户退出系统才能正常删除。)

newgrp:切换所属用户组。(一个用户同时可以属于多个用户组,但用户登录系统后,默认只属于一个用户组,newgrp可以使用户在多个用户组之间进行切换。语法:newgrp [-] [groupname]。“-”用于重新加载用户工作环境,否则工作环境不改变。)


4.4 用户和用户组管理的安全防范措施

ac:统计用户连接时间。(ac查看系统总的连接时间。ac -p按用户进行统计。ac -d按天对连接进行汇总。)

last:查询最近的使用者登录时间。(例:last -n 10仅显示10行记录。)

lastb:显示最近登录系统失败的用户信息。

who:查询当前系统中登录的用户。(-H显示标题栏;-i显示空闲时间字段;-T显示用户状态;-m显示使用当前标准输入设备的用户;-q显示所有登录的用户名以及登录用户的数目;-p显示由init进程创建的活动进程。)

w:查看登录用户及其进行的操作。(-f显示登录用户信息,但不显示登录位置。-s以精简模式显示登录用户信息;-h不显示标题栏;w root只查询root用户的信息。)


4.5 其他用户和用户组管理的常用命令

finger:查找并显示用户信息。(finger -l显示用户信息。finger username显示特定用户的信息。)

groups:显示指定用户所属的用户组。(groups显示当前用户所属的用户组。groups username显示特定用户的用户组。)

id:显示用户的UID、GID。(id显示当前用户的UID、 GID、和用户所属的组列表。id username显示特定用户的相应信息。-g显示当前组ID;-G显示用户所属的所有组ID;-u显示用户ID;-n显示名称而非数字;-r显示真实用户ID而非有效用户ID。)

logname:显示登录用户的用户名。

rwho:查看登录本地的用户信息。(与who类似,但可以显示局域网中多台主机的用户登录信息。当rwho命令在11分钟内没有收到主机的反馈信息,则会认为主机已关闭,也不会报告已知的登录用户。除非使用-a选项,否则忽略1小时内没有操作的用户。)

users:显示当前登录的用户。

write:将信息实时传递给登录的用户或终端。(例:write username<回车>this is message<回车><ctrl+d>。)

whoami:显示当前用户信息。


4.6 用户及用户组管理命令的综合应用

/etc/nologin文件:引起普通用户无法登录的问题。(通过touch /etc/nologin命令可以建立该文件。删除该文件可以解决普通用户不能登录的问题。ssh不查看/etc/nologin文件,所以即使该文件存在,使用ssh仍可以登录系统。)