Ubuntu 16.04 TX2 学习笔记(五) 账号管理

1. 用户与组账号

所有用户账号数据全部记录在/etc/passwd文件中。

~$: cat /etc/passwd   #查询账号信息

root:  x:  0:  0:  root: /root:  /bin/bash     #每一行代表一个用户的账号数据,每个用户的数据中都是以“:”区隔不同的字段记录,其中包含的字段有7种。

.....

登录名: 密码:  UID(User ID): GID(Group ID): 用户信息 :主目录 :登陆Shell

密码:通常都是以“x"表示,如果显示的是“*”表示此账号被停用,没有人可以知道密码。密码是在系统管理员添加账号时指定的,用户可以使用passwd命令更改自己的密码。出于安全性考虑,最好不要由/etc/passwd这个文件指定密码,会在文件中直接显示更改后的密码。只要打开这个文件,就可以轻易获得密码内容。

UID(User ID):每个账户有唯一的号码,最大可达65535.其中root的UID为0,编号500之前的UID都是预留给系统服务使用的。按照系统指定,管理员添加的第一个账号UID将是1000,然后依次是1001/1002等。

GID:每个组账号都有唯一的号码。这些组内容都包含在/etc/group文件中。其他有UID相同。

用户信息:这些是账号添加的,如用户名称、电话或地址等。使用finger系统会读取此部分信息。使用chfn命令更改此字段内容。

主目录:用户在登陆后直接进入的目录。

登陆Shell:用户在登录时默认使用的Shell是/bin/bash,但是用户可以用chfn命令更改自己的登陆Shell.如果希望用户能通过POP服务器接收电子邮件,但又不允许此用户登陆Linux工作站,可以将登陆的Shell类型改为/bin/false。

Ubuntu中内建了名为“用户设置”的图形化工具,可以提供很多账户信息及管理设置。

单击“系统-->管理系统-->用户和组”,系统即会打开“用户设置”窗口。和/etc/passswd文件功能相似。如果要查看某个用户账号详细内容,选中该账号名称,单击右侧“属性”按钮。

/etc/shadow文件:

如果网络属于高安全性的环境,且目前没有采用任何网络验证架构,则应该考虑使用Shadow的方式来加强系统验证文件(/etc/passwd)的安全性,也就是通称的Shadow Passwd。

组账号信息:

在账号管理时,应以“组”为管理的基本单位。先将需要存取某项资源的用户加入同一个组,然后再赋予该组访问此资源的权限。

Linux中所有的组账号数据记录在/etc/group文件中。

~$: cat /etc/group

root: x: 0: 

......

包含的字段有4种:组账户名/组账号密码,通常不使用以“x"表示/组ID/用户列表。账号间以”,“隔开。

2. 添加账号

(1)useradd 命令

添加用户前先执行finger命令确定要添加的用户名是否已存在。

~$: finger nvidia

~$:finger chen

检测chen不存在

~$: useradd chen    #仅使用useradd命令添加名为chen的账号,其他相关内容由系统默认设置。

或 ~$: ueradd -d /home/chen -u 1001 -s /bin/bash chen    #在useradd命令中使用参数设置账号内容

一般常用的参数如下:

-c:<注释>:将注释文本加入passwd的注释字段中。

-d:<登陆目录>: 指定用户登录时的主目录,这个主目录会系统自动产生。

-e:<有效期>:指定账户的有效期限。

-f:<缓冲天数>:指定密码过期后多久关闭账户。

-g:<组id>:指定用户所属的组,这个ID必须是已经定义在/etc/group文件中的。

-s:<shell>:指定用户登录后使用的shell。

-u:<用户ID>:指定用户ID。

~$: finger chen #建立账号之后用finger查看账号

(2):也可以在”用户设置“-->”添加用户“-->”新建用户账户“窗口添加。

修改用户账号:usermod命令

常用参数:

-c:<注释>:修改用户的注释文本。

-d:<登陆目录>: 修改用户登录时的起始目录。

-e:<有效期>:修改账户的有效期限。

-f:<缓冲天数>:修改密码过期后多久关闭账户。

-g:<组id>:修改用户所属的组。

-G:<组>:修改用户所属的附加组。

-l:<账户名称>:修改用户账号名。

-s:<shell>:修改用户登录后使用的shell。

-u:<用户ID>:修改用户ID。

例如:~$: sudo useradd -c "Vice President" -d /secret chen   #将用户chen的注释文本改为"Vice President",主目录改为/secret

添加组账号:

~$: sudo groupadd -g 1099 Tommy  #参数-g指定组ID。如果ID已经被用,可以使用-o(Overwrite)参数取代原有的组ID。

修改组账号内容:

~$: sudo groupmod -g 1020 -n student chen    #将chen组的ID更改为1020,同时将组名改为student。 

删除用户账号:

1.在/etc/passwd文件中删除用户的记录  chen: x: 1002:  : /home/roye: /bin/bash

2.在/etc/shadow文件中删除用户的记录  #chen:  ! ! :11887: 0: 99999: 7: : :

3.在/etc/group中将用户同名的组记录删除

4.删除用户的主目录

5. 删除用户执行的后台程序。 ~$:ps -aux | grep "chen"

或~$: kill 1649 #1649为该程序的ID   或~$:kill -9 1649 -9 表示强制删除

6.删除用户crontab设置。 ~$: rm /var/spool/cron/chen  #如果用户曾经使用crontab来设置定时器,在目录中就会存在一个与用户名称同名的文件。

删除组账号:

~$: sudo groupdel personnel  #如果该组有任意账号在系统中登陆,会造成无法删除。

密码管理:

前面使用useradd建立新账号,但这些账号还无法使用,因为与账号对应的密码尚未建立。管理员应为每一个用户指定一个起始密码,用户可以使用此密码登陆后,自行修改密码。管理员用passwd指定所有用户的密码信息。而用户只能用来修改自己的密码。

~$: passwd

删除密码:

~$:passwd -d chen #在删除用户密码后,系统不需要输入密码登陆。

锁定账号(Lock):

~$: sudo passwd -l chen 

也可以在/etc/passwd文件中要锁定的账号前加”#“或”*“来锁定。需要打开时再去掉即可。

打开锁定(Ulock):

~$: passwd -u chen

显示账号密码信息:

~$: sudo passwd -S chen 

chen L 01/28/2007 0 9999 7 -1     #L表示密码已锁定。

批量添加账号:

1.编辑用户信息文件

在文本编辑器中输入用户信息,用户信息字段必须符合/etc/passwd文件中字段的排列次序。同时每个用户账号的名称及UID都不可相同,密码字段可以先空白或输入x增加安全性。 以添加/root/account.txt为例:

~$:sudo gedit /root/account.txt  #打开图形化的gedit文本编辑器,输入用户信息文件内容。

2.执行/usr/sbin/newusers 

/user/sbin目录中的newusers主要功能是按照批次文件更新或添加用户账号。首先必须root登陆,然后将先前建立的用户信息文件输入(<)/usr/sbin/newusers程序,系统会根据文件中的信息来添加账号。

~$: sudo newusers < /root/account.txt

如果执行没问题,在次查看/etc/passwd文件,即发现已经添加了先前编写好的账户内容,同时ls /home也会发现系统已经建好每个新账号的主目录。

3.执行/usr/sbin/pwunconv

/usr/sbin/pwunconv表示”password unconvert from shadow password",也就是可以将/etc/shadow产生的shadow密码译码,然后写回/etc/passwd,同时将/etc/shadow文件中的密码字段删除,以取消shadow passwd功能。

~$: sudo pwunconv

4.建立密码文件

根据每位用户的名称来建立对应的密码表,只是简单的文本文件,主要目的是支持稍后的/usr/sbin/chpasswd命令。

~$:sudo gedit /root/password.txt

student1:lxneigh3

student2:73h8sjk3

.......

5.执行/usr/sbin/chpasswd

建立对应的密码表之后,同样需要使用Shell Script 将密码表中的密码导入/etc/passwd文件,这里使用/usr/sbin/chpasswd程序。

~$: sudo chpasswd < /root/password.txt

如果执行时没有出现任何错误信息,在次查看/etc/passwd文件,就会发现已经添加了先前在密码表中指定的用户账号密码,但是每组密码都是以明文(Clear Text)的方式显示。

6.执行/usr/sbin/pwconv

成功地将密码写入/etc/passwd文件后,由于所有的密码都是以明文的方式显示,所以不安全。执行/usr/sbin/pwconv程序将密码编码为Shadow Password,并写入/etc/shadow文件。执行/usr/sbin/pwconv程序后,原来出现在/etc/passwd文件中的明文密码会被加密过程的“x“记号替换掉。

总结:完成以上步骤后,就可以用这些账号进行登录。以上的6个步骤是用Linux支持的newusers和chpasswd等程序批量添加用户账户的方法。

其他一些常用命令:

显示自身的用户名称:whoami

~$: whoami

~$:id -un

显示当前所有登录用户的信息:w

~$: w

~$: who    #who命令只能显示4种信息:用户名称、使用的终端、登录时间以及登录地址。

改变finger命令显示内容:chfn

~$: sudo chfn chen    #更改finger命令显示信息。如果除了用户名称外并没有指定任何参数,系统会出现交互式画面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值