1、用户账号的管理工作主要涉及到用户账号的添加、修改和删除。添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。1、添加新的用户账号(useradd命令)语 法: useradd 选项 用户名使用方式: useradd -mMnr-c -d -e -f -g -G -s -u 用户帐号 功能说明:可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码,在建立用户帐号同时默认在/home/下建立了上个同名的用户主目录。使用useradd指令所建立的帐号保存在/etc/passwd文本文件中。参数: -c 加
2、上备注文字。备注文字会保存在passwd的备注栏位中。 -d 指定用户登入时的启始目录。 -D 变更预设值 -e 指定帐号的有效期限。 -f 指定在密码过期后多少天即关闭该帐号。 -g 指定用户所属的群组。 -G 指定用户所属的附加群组。 -m 自动建立用户的登入目录。 -M 不要自动建立用户的登入目录。 -n 取消建立以用户名称为名的群组 -r 建立系统帐号。 -s 指定用户登入后所使用的shell。 -u 指定用户ID。例子说明 代码: # useradd d /usr/sam -m sam 此命令创建了一个用户sam, 如下图: 其中-d和-m选项用来为登录名sam产生一个主目录/usr
3、/sam(/usr为默认的用户主目录所在的父目录)。2、删除帐号userdel命令语法:userdel 选项 用户名 userdel -r用户帐号 userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。 -f 删除用户登入目录以及目录中所有文件。 常用的选项是-r,它的作用是把用户的主目录一起删除。例如: 代码: # userdel sam 如下图:说明:此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。3、用户口令的管理passwd命令用户管理的一项重要内容是用
4、户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。passwd 选项 用户名 使用方式:passwd -k -l -u -f -d -S username 用来更改使用者的密码 -l 锁定口令,即禁用账号。 -u 口令解锁。 -d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用。 -f 强迫用户下次登录时修改口令。 -s 显示指定使用者的密码认证种类, 只有具备 root 权限的使用者方可使用。普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两
5、遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。 为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。4、显示登录用户信息 who 选项 who -husfV user 说明: 显示系统中有那些使用者正在上面,显示的资料包含了使用者 ID,使用的终端机,从那边连上来的,上线时间,呆滞时间,CPU 使用量,动作等等。参数: -h : 不要显示标题列 -u : 不要显示使用者的动作/工作 -s : 使用简短的格式来显示 -f : 不要显示使用者的上线位置 -
6、V : 显示程序版本 5、显示用户的IDid 选项用户名称 id -gGnru-help-version用户名称显示用户的ID,以及所属群组的ID。补充说明:id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。 -g或-group 显示用户所属群组的ID。 -G或-groups显示用户所属附加群组的ID。 -n或-name 显示用户,所属群组或附加群组的名称。 -r或-real 显示实际ID。 -u或-user 显示用户ID。 -help 显示帮助。 -version 显示版本信息6、显示当前终端(或控制台)上的用户名whoam
7、i 选项 whoami -help-version显示自身的用户名称,本指令相当于执行id -un指令。 -help 在线帮助。 -version 显示版本信息。三、Linux系统用户组的管理 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。1、增加一个新的用户组groupadd 选项 组名 groupadd g gid o r f groupname
8、本命令用于将新组加入系统。主要参数g gid:指定组ID号。o:允许组ID号,不必惟一。r:加入组ID号,低于499系统账号。f:加入已经有的组时,发展程序退出。应用实例建立一个新组,并设置组ID加入系统:代码: #groupadd g 344 cjh此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。 # groupadd group1 此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。2、删除一个已有的用户组groupdel 群组名称 groupdel 群组名称需要从系统上删除群组时,可用groupdel指令来完成这项工作
9、。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。 #groupdel group1 此命令从系统中删除组group1。3、修改用户组的属性groupmod 选项 用户组 groupmod -g -n 群组名称更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。 -g GID 为用户组指定新的组标识号。 -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。 -n新用户组将用户组的名字改为新名字 # groupmod -g 102 group2 此命令将组group2的组标识号修改为102。# groupmod g
10、 10000 -n group3 group2 此命令将组group2的标识号改为10000,组名修改为group3。以上三个命令可由桌面系统完成:第一步:打开“用户管理器窗口如下图:第二步:选择用户并设置属性,如下图:第三步:选择用户组并设置属性,如下图:四、su和sudo命令1、名称:susu -fmp -c command -s shell -help -version - USER ARG说明:变更为其他使用者的身份,除 root 外,需要键入该使用者的密码 -f 或 -fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh -m -p 或 -preserv
11、e-environment 执行 su 时不改变环境变数 -c command 或 -command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者 -s shell 或 -shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell -help 显示说明文件 -version 显示版本资讯 - -l 或 -login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USE
12、R)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root USER 欲变更的使用者帐号 ARG 传入新的 shell 参数例:su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者。 su root -f 变更帐号为 root 并传入 -f 参数给新执行的 shell。 su - clsung 变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)2、名称:sudo“Sudo” 是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特
13、许用户才能完成的任务,比如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab, /etc/samba/smb.conf等。这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性。(1) sudo的特点 sudo扮演的角色注定了它要在安全方面格外谨慎,否则就会导致非法用户攫取root权限。同时,它还要兼顾易用性,让系统管理员能够更有效,更方便地使用它。sudo设计者的宗旨是:给用户尽可能少的权限但仍允许完成他们的工作。所以,sudo有以下特点:1. sudo能够限制指定用户在指定主机上运行某些命令。2. sudo可以提供日志,忠实
14、地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。3. sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。4.sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。2. sudo命令sudo程序本身就是一个设置了SUID位的二进制文件。我们可以检查一下它的权限: $ls -l /usr/bin/sudo -s-x-x 2 root root 106832
15、 02-12 17:41 /usr/bin/sudo它的所有者是root,所以每个用户都可以像root那样执行该程序。设置了SUID的程序在运行时可以给使用者以所有者的EUID。这也是为什么设置了SUID的程序必须小心编写。但是设置一个命令文件的SUID 和用sudo来运行它是不同的概念,它们起着不同的作用。sudo的配置都记录在/etc/sudoers文件中,我们下面将会详细说明。配置文件指明哪些用户可以执行哪些命令。要使用sudo,用户必须提供一个指定用户名和密码。注意:sudo需要的不是目标用户的密码,而是执行sudo的用户的密码。如果不在sudoers中的用户通过sudo执行命令,su
16、do会向管理员报告这一事件。用户可以通过sudo -v来查看自己是否是在sudoers 之中。如果是,它还可以更新你的“入场券”上的时间;如果不是,它会提示你,但不会通知管理员。sudo命令格式如下:sudo -K |-L|-V|-h|-k|-l|-vsudo-HPSb-a auth_type-c class|-p prompt-u username|#uid-e file .|-i|-s|command下面我们再来看一下sudo其它常用的一些参数:选项含义作用sudo -h Help 列出使用方法,退出。sudo -V Version 显示版本信息,并退出。sudo -l List 列出当前
17、用户可以执行的命令。只有在sudoers里的用户才能使用该选项。sudo -u username|#uid User 以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。sudo -k Kill 清除“入场卷”上的时间,下次再使用sudo时要再输入密码。sudo -K Sure kill 与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。sudo -b command Background 在后台执行指定的命令。sudo -p prompt command Prompt 可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。
18、非常人性化的设计。sudo -e file Edit 不是执行命令,而是修改文件,相当于命令sudoedit。还有一些不常用的参数,在手册页sudo(8)中可以找到。3. 配置sudo配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo 有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文
19、件,它会提示你出现的问题,并询问该如何处理,就像: sudoers file: syntax error, line 22 此时我们有三种选择:键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。现在,我们一起来看一下神秘的配置文件,学一下如何编写它。让我们从一个简单的例子开始:让用户sx01可以通过sudo执行所有root可执行的命令。以root身份用visudo打开配置文件,可以看到类似下面几行: # Runas alias specification # User privilege specificationro
20、ot ALL=(ALL)ALL root有所有权限,只要仿照现有root的例子就行,在下面加一行(最好用tab作为空白):sx01 ALL=(ALL) ALL保存退出后,切换到sx01用户,我们用它的身份执行命令:foobarlocalhost $ ls /root ls: /root: 权限不够foobarlocalhost $ sudo ls /rootPassword: 显示/root目录内容。五、与用户账号有关的系统文件 完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd,
21、 /etc/shadow, /etc/group等。下面分别介绍这些文件的内容。1、/etc/passwd本文件是用户管理工作涉及的最重要的一个文件。Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。这个文件对所有用户都是可读的。 由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。只有超级用户才拥有该文件读权限,这就保证了用户密码的安
22、全性。2、/etc/shadow本文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。3、/etc/group用户组的所有信息都存放在本文件中。将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时
23、,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号隔开若干个字段。文件格式:组名:口令:组标识号:组内用户列表 1)“组名”是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。 2)“口令”字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。 3)“组标识号”与用户标识号类似,也是一个整数,被系统内部用来标识组。 4)“组内用户列表”是属于这个组的所有用户的列表/b,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。实例如下图:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1