Ubuntu 用户管理

用户帐号

Linux系统中通常有三种类型的用户:超级用户(super user),常规用户(regular user)和系统用户(system user)。

        超级用户的UID和GID都是0
        系统用户的UID从1—499,还包括65,534
        常规用户的UID从1000开始
Ubuntu通常会为每一个大于1000的UID创建不同的GID,系统管理员可以将其他用户添加到相同的GID,或者创建一个新的group,然后添加用户到这个group中。
Ubuntu使用文件/etc/passw保存系统中的用户账户信息,所有的用户在passwd文件中都有一行条目,保存了用户名,编码后的密码,用户ID(UID)以及群组ID(GID),最后两项是用户的/home目录,以及默认的shell(/bin/bash)。
不管系统中有多少个系统管理员,都只有一个超级用户帐号,超级用户帐号,通常指的是root,对系统拥有完全的控制权,超级用户是唯一的,超级用户的UID和GID都是0。如下:root:x:0:0:root:/root:/bin/bash
Ubuntu默认禁用超级用户帐号,而是让系统的第一个用户通过sudo命令获得超级用户的所有权限。所以通常情况下你看到的命令提示符为($),当你需要执行系统管理命令时,需要在命令前加sudo,而后被提示输入密码,输入密码后,Ubuntu系统将会执行该条命令,就好像你是超级用户。在其他Linux系统中,你想进入超级用户root时,输入命令su -,然后输入超级用户密码,即可看到超级用户命令提示符(#)。在Ubuntu中,你可以通过输入sudo -i,然后输入密码,看到超级用户命令提示符(#),当你执行完相关的命令后,输入exit,然后回车,就会回到常规用户提示符($)。在Ubuntu中超级用户帐号是默认禁用的,但是你可以通过以下方法启用超级用户帐号:在终端输入sudo passwd,然后根据提示输入根用户的用户名和密码,超级用户(root account)被启用。由于以超级用户权限工作时,常常会造成不可修复的灾难,因此在Ubuntu中不推荐启用超级用户。
常规用户是指那些登陆到Linux系统,但不执行管理任务的用户,例如文字处理或者收发邮件等。超级用户通过文件和目录的访问权限给予普通用户以操作权限。例如:
user:x:1000:1000:username:/home/user:/bin/bash
在这里你看到密码的位置是x,但这并不是真正的编码后的密码。所有的密码都编码存储在/etc/shadow文件中。在前面的内容中我们知道每个文件有三种权限,rwx(读写执行),而对于每个文件或目录,权限被分配给三类目标:用户,群组,和其他人。对文件权限的管理有三个常用的命令,如下:
chgrp  -R group file/folder      #更改文件或目录的所属群组
chown -R account  file/folder #更改文件或目录的所属用户
chmod -R 755  file/folder        #更改文件或目录的访问权限

系统用户并不是一个人,也被称为逻辑用户或伪用户,系统用户没有相应的/home目录和密码,系统帐号通常是Linux系统使用的一个管理日常服务的管理帐号。

例如,系统用户www-data拥有Apache web服务器和它相关的文件,只有系统用户www-data和超级用户具有这些文件的访问权限,在passwd中系统用户表示如下:www-data:x:33:33:www-data:/var/www:/bin/sh

群组的设置

系统管理员可以通过对群组授权(grant)或撤销权限(revoke)而免去了为每个用户设置权限的繁琐工作。此外,设置群组权限可以为群组中的用户建立公共的工作区,管理他们对外设的使用权限。
不同的Linux系统使用不同的理念来设置群组管理,在Ubuntu系统中使用的是UPG(user private group)机制,默认为每个用户设置与用户名同名的群组名。系统中的群组信息保存在/etc/group文件中。这个文件中是系统中所有群组的列表。可以看到大部分的群组是服务(mail,news等)和设备(floppy,disk等)。如之前提到的例子,这些系统设备群组对与其相关的文件具有所有权和控制权。添加一个常规用户到一个设备的群组,可以使这个常规用户拥有使用这个设备的权限,如果群组管理员授权给这个常规用户。也就是说将用户adm001添加到cdrom群组,那么使得adm001能够使用光驱设备。 
 
管理群组的工具
Ubuntu提供了命令行工具来管理群组,也提供了GUI工具来管理群组。相比较而言,命令行工具更为强大和灵活。常用的群组管理命令行工具主要有:
groupadd   创建一个新的群组
groupdel    删除一个现有的群组
groupmod 创建一个群组名或GID,但不添加或删除群组中的成员
gpasswd    创建一个群组密码,每个群组可以有一个群组密码和群组管理员,使用参数-A指定一个用户为群组管理员。
useradd -G    参数-G在创建用户时添加该用户到一个群组
usermod -G  允许你添加一个不在线的用户到群组中
grpck             检查/etc/group文件,防止拼写错误
 
下面用一个简单的例子来说明群组管理命令行工具的使用方法。
现在有一个DVD-RW设备(/dev/scd0),系统管理员希望给予常规用户adm002 这个设备的访问权限,可以有以下几步:
1)用groupadd 命令创建一个群组dvdrw
sudo groupadd dvdrw
2)用chgrp命令将设备DVD-RW(/dev/scd0)的群组属性更改为dvdrw  
sudo chgrp dvdrw /dev/scd0
3)用usermod命令将授权用户添加到这个群组中
sudo usermod -G dvdrw adm002
4)用gpasswd指定adm002为组管理员,这样他可以添加新的用户到这个群组中
sudo gpasswd -A adm002
现在adm002拥有DVD-RW驱动的访问权限,超级用户和adm002都有添加新用户到这个群组的能力,因为adm002是群组管理员。

用户管理

和群组类似,Ubuntu提供了命令行工具来管理用户,也提供了GUI工具来管理用户。相比较而言,命令行工具更为强大和灵活。

常用的用户管理命令行工具主要有:
useradd      添加一个新用户到Linux系统,可以定制的选项主要有,用户的/home目录(默认的/home目录是/home/username,默认的群组名为用户名),起始群组等。
useradd -D 定制系统创建新用户时的默认设置,当不使用任何参数时,将返回系统当前的默认设置。  
userdel       命令完全移除用户帐号(包括删除用户的/home目录以及目录下的所有文件)。
passwd      更新密码管理系统使用的"authentication tokens"
usermod   更改用户属性,最常使用的参数有-s更改shell,-u更改UID,当用户登陆系统或者运行程序时,不可更改用户属性。
chsh          命令更改用户的默认shell,对于Ubuntu系统而言,默认的shell是/bin/bash,即Bourne Again Shell。
下面通过一个简单的例子来创建一个用户,在这里我们使用-p选项设置密码,-s选项设定shell,-u选项设置UID(当使用默认设置创建用户时,不需要指定这些选项)。
sudo useradd testuser -p AbcDe -s /bin/zsh -u 1042
 
监测系统中的用户活动
w命令可以告诉系统管理员,当前登陆系统的用户有哪些,分别在哪里登陆,目前正在做什么。
在w命令后加上用户名,讲只返回特定用户的状态。  
ac命令可以返回用户总的链接时间,它从/var/log/wtmp文件中获取信息,想要使用ac命令,需要安装acct软件包。
last命令从/var/log/wtmp中获取信息,列出所有用户从该文件创建起的登陆记录。
lastb命令输出所有失败的/错误的登陆,对于系统维护有很好的指导意义。
锁住一个用户的帐号可以使用以下命令:sudo passwd -l username,撤销时可以使用-u选项,也即sudo passwd -u username。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值