首先介绍一个很实用的小技巧:使用man命令联机查询帮助。
使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为:
man commandname
联机帮助页提供了指定命令commandname的相关信息,包括:名称、函数、语法以及可选参数描述等。
无论帮助有多长,都遵循这个格式显示。在页面很多的情况下使用PageUp和PageDown键翻页。最后,使用“:q”退出帮助页面。
通常联机帮助信息包括以下几个部分:
1)NAME:命令的名称
2)SYNOPSIS:命令的语法格式
3)DESCRIPTION:命令的一般描述以及用途
4)OPTIONS:描述命令所有的参数或选项
5)SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令
6)BUGS:解释命令或其输出中存在的任何已知的问题或缺陷
7)EXAMPLES:普通的用法示例
8)AUTHORS:联机帮助页以及命令的作者
man 3 printf 查库函数
man 2 open 查系统调用
man -a open 会将系统中与open相关的都列出来
回归正文:
用户的属性
1)用户名2)口令
3)用户ID(UID)
4)用户主目录(HOME)
5)用户shell
一、系统是怎么记住我们的用户状态的?
现在我只是知道用户登录和 /etc/passwd 这个目录有关系,我们用 man 联机查看一下这个文件,具体命令
man 5 passwd 查看这个文件的格式
翻译成中文就是
/etc/passwd文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令
1)登陆名
2)经过加密的口令
3)UID
4)默认的GID
5)个人信息
6)主目录
7)登陆shell
然后我们根据说明对比一下,在 vi /etc/passwd 查看一下这个文件的内容,
通过对比,我们明确了用户属性和passwd文件的关系。
登录名----用户名
经过加密的口令----口令
UID----用户ID
主目录----用户主目录(HOME)
登陆shell----用户shell
个人信息
唯一让我不解的是,这个GID是什么呢?后来,通过查询,了解到GID是用户组的ID号,因为每个用户都会有对应的用户组。用户组文件 /etc/group。
/etc/group文件
1)包含了UNIX组的名称和每个组中成员列表
2)每一行代表一个组,包括4个字段:
组名
加密的口令
GID号
成员列表,彼此用逗号隔开
二、添加用户
adduser <username>
不用我们过多操作,通过这条命令,系统帮我们完成了所有工作。
先查看下文件
vi /etc/adduser.conf
FIRST_UID=1000LAST_UID=29999
USERS_GID=100
DHOME=/home
DSHELL=/bin/bash
SKEL=/etc/skel
FIRST_UID - LAST_UID ,是允许用户ID的范围,这也解释了为什么UID从1000开始;USERS_GID是用户组ID;DHOME是用户主目录;DSHELL是用户登录shell;SKEL是什么呢?SKEL模板
/etc/skel目录是被 /usr/sbin/useradd使用把想要新用户拥有的配置文件从/etc/skel目录拷贝,常用的文件:
.bash_profile
.bashrc
.bash_logout
dircolors
.inputrc
.vimrc
我的理解是,/etc/skel是最初存放这些配置文件的地方,让后会被复制到用户主目录
验证一下:
没问题!
三、其他用户(组)管理命令
1.设置初始口令使用passwd命令可以修改用户口令
root用户可以修改任何用户的口令
语法:
passwd [-k] [-l] [u] [-f] [-d] [-S] username
使用方法:
passwd username
2.修改用户属性
usermod语法:usermod [-u uid [-o]] [-g group] [-G gropup,…][-d home [-m]] [-s shell] [-c comment][-l new_name] [-f inactive][-e expire][-p passwd] [-L|-U] name
举例用户oldname改名为newname,注意要同时更改家目录:
usermod –d /home/newname –m –l newname oldnameusermod
3.删除用户 deluser
语法: deluser <username>
使用方法:
deluser --remove-home user1 删除用户user1的同时删除用户的工作目录
4.添加用户组
addgroup语法: addgroup groupname
使用方法:
addgroup groupname
5.删除用户组
delgroup语法: delgroup groupname
使用方法:
delgroup groupname1