嵌入式学习笔记(八) --用户管理命令

首先介绍一个很实用的小技巧:使用man命令联机查询帮助


我们常常忘记某一个命令的用法,或者这个命令的作用是什么。这个时候,最快的方法不是去百度或者谷歌,而是使用'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=1000
LAST_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

猜你喜欢

转载自blog.csdn.net/feit2417/article/details/80788894