用户和组的管理
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
passwd文件格式
账号名称:密码:UID:GID:个人资料:主目录:Shell 每个字段的说明如下: (1) 账号名称:用户登录Linux 系统时使用的名称。 (2) 密码:这里的密码是经过加密后的密码,而不是真正的密码,若为“x”,说明密码已经被移动到shadow 这个加密过后的文件。 (3) UID:用户的标识,是一个数值,Linux 系统内部使用它来区分不同的用户。通常Linux 对于UID 有几个限制,具体如下。 ① 0 为系统管理员,即root 用户,所以新建另一个系统管理员账号时,可以将该账号的UID 改成0 即可。 ② 1~500 为保留给系统使用的ID,其实1~65534 之间的账号并没有不同,也就是除了0 之外,其他的UID 并没有区别,但将500 以下的ID 留给系统作为保留账号是一个好习惯。 ③ 500~65535 在Fedora中是给一般使用者用的,passwd 文件最后一行的记录Bob用户的UID就是500。 (4) GID:用户所在组的标识,是一个数值,Linux 系统内部使用它来区分不同的组,相同的组具有相同的GID。 (5) 个人资料:可以记录用户的个人信息,如姓名、电话等信息。 (6) 主目录:root 的主目录为/root,所以当root 用户登录之后,当前的目录就是/root;对于其他用户通常是/home/username,这里username 是用户名,用户执行“cd~”命令时当前目录会切换到个人主目录,如Bob用户的主目录为/home/Bob。 (7) Shell:定义用户登录后使用的Shell 版本,默认是bash。
Linux 的用户
在Linux系统中,每个用户对应一个帐号。Fedora 8安装完成后,系统本身已创建了一些特殊用户,它们具有特殊的意义,其中最重要的是超级用户,即 root。还有一类用户是系统用户,是Linux 系统正常工作所必需的内建用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,如bin、daemon、adm、lp 等用户。系统用户不能用来登录。系统用户也被称为虚拟用户。
修改用户默认设置
很明显在大多数情况下,用户希望修改默认设置,以满足实际的要求。比如说,想修改默认Shell 版本为使用较多的/bin/bash。与添加用户的默认设置有关的文件主要是/etc/login.defs 与 /etc/default/useradd 文件。 /etc/login.defs 文件 /etc/default/useradd 文件
userdel
userdel用于删除用户账号。若不再允许用户登录系统时,可以将用户账号删除。完全删除一个用户包括: ①删除 /etc/passwd 文件中此用户的记录; ②删除 /etc/group 文件中该用户的信息; ③删除用户的主目录; ④删除用户所创建的或属于此用户的文件。 userdel 命令可以用来删除用户及其主目录。命令的格式为: [root@Candy ~]#userdel [-r] <username> 使用“–r”选项,表示用户主目录及其内部的文件将被删除。 1) 只删除Jim登录账号但保留相关目录。 [root@Candy ~]# userdel Jim 只删除/etc/passwd 与 /etc/shadow 文件中与用户Jim有关的内容,其他的(如用户目录等)保留,方便以后再次添加这个用户。其实更好的方法是使用命令暂停用户登录或者将 /etc/shadow 中倒数第一个字段设置为0,这也可以让该账号无法使用,但是所有与该账号相关的数据都会保留下来。 2) 完全删除Jim登录账号。 [root@Candy ~]# userdel –r Jim 删除账号的同时,同时删除用户主目录及其内部文件。
第4章 用户和组的管理
本章提要
用户管理
Linux 是一个多任务、多用户的操作系统,任何一个要使用系统资源的用户(使用者),都必须首先申请一个账号,然后用这个账号登录系统。用户的账号可以帮助系统对使用系统的用户进行跟踪,并控制用户对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性的保护。组是具有共同用户特征的用户的集合,这与现实生活中的个人与集体是类似的。Linux 系统来说,使用组可提高系统的灵活性;对于具体的Linux系统管理员来说,通过管理组来管理用户,提高了工作效率。
chsh
chsh用于改变用户的Shell 版本 1) 列出本机上所有能用的Shell 名称。 [root@Candy ~]# chsh -l /bin/sh /bin/bash /sbin/nologin /bin/zsh 2) 用户自行改变预设 shell 版本。 [root@Candy ~]#chsh -s /bin/zsh 使用chsh 命令改变用户的Shell,指定的Shell 一定要在/etc/shells 文件中存在,否则会导致用户无法登录。
用户和组群的基本项目及含义
Linux 用户登录系统的过程
Linux 系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有/etc/passwd、/etc/shadow、/etc/group。Linux 用户登录系统的过程实质上是系统读取和核对这几个文件的过程。具体过程如下: (1) 首先Linux 会出现一个登录系统的画面,提示输入账号,在这里输入账号与密码。 (2) Linux 会先找寻 /etc/passwd 里面是否有这个账号,如果没有则退出登录,如果有,则将该账号对应的UID(User ID)与GID(Group ID)读出来。另外,该账号对应的用户主目录与Shell 设定也一并读出。 (3) 核对密码表。这时Linux 会进入/etc/shadow 找出登录账号与UID 相对应的记录,然后核对一下刚刚输入的密码与此文件的密码是否符合。 (4) 如以上核对都没有问题,用户正式进入系统。
账号文件
与账号有关的文件有/etc/passwd、/etc/shadow 和/etc/group。可以使用vi 或其他编辑器来更改它们,也可以使用专门的命令来更改。账号的管理实际上就是对这几个文件的内容进行添加、修改和删除记录行的操作,不管以哪种形式管理账号,了解这几个文件的内容都十分必要。
/etc/passwd文件
usermod
usermod用于改变用户的属性。 1) 修改Alice的UID为新的值600、所属组为admin。 [root@Candy ~]# usermod –u 600 –g admin Alice 改变用户的UID 时,主目录下所有该用户所拥有的文件或子目录将自动更改其UID,但对于主目录之外的文件和目录只能用chown 命令手工进行设置。 2) 修改Alice的用户主目录。 [root@Candy ~]# mkdir /Alice [root@Candy ~]# usermod –d /Alice Alice usermod 参数较多,其具体作用说明如下: ① -l name:更改账户的名称,必须在该用户未登录的情况下才能使用。 ② -m:把主目录的所有内容移动到新的目录。 ③ -p 密码:修改用户的密码。 ④ -s Shell:修改用户的登录Shell。
/etc/shadow
shadow文件格式说明
(1) 最后一次修改时间:表示从1970 年1 月1 日起到上次修改密码所经过的天数。 (2) 最小时间间隔:表示两次修改密码之间至少经过的天数。 (3) 最大时间间隔:表示密码还会有效的最大天数,如果是99999,则表示永不过期。 (4) 警告时间:表示密码失效前多少天内系统向用户发出警告。 (5) 不活动时间:表示禁止登录前用户名还有效的天数。 (6) 失效时间:表示用户被禁止登录的时间。 (7) 标志字段:无意义,未使用。 在shadow 文件中,密码字段为“*”表示用户被禁止登录,为“!”表示用户被锁定。安装Linux 系统时,系统默认采用shadow 来保护密码。 如果安装Linux 时未启用shadow,可以使用pwconv 命令启用shadow。注意,用root 用户登录来执行该命令,执行的结果是/etc/passwd 文件中的密码字段被改为“x”,同时产生/etc/shadow 文件。相反,如果要取消shadow 功能,可使用pwunconv 命令,但不建议这样做。
命令行方式管理用户
useradd useradd用于添加用户。只有超级用户root 才有权使用此命令。使用useradd 命令创建新的用户账号后,应利用passwd 命令为新用户设置密码。一个类似的命令是adduser,也用来创建用户账号。 1) 添加Alice用户 [root@Candy ~]# useradd Alice Alice:x:501:501::/home/Alice:/bin/bash 用户Alice添加成功,同时发现,使用命令useradd 添加用户的同时还添加了许多其他默认设置,如用户主目录和Shell 版本等。
chfn
chfn用于修改用户的个人信息,命令格式为 chfn username 例如,要修改Alice的个人信息,命令如下: [root@Candy ~]#chfn Alice Chinging figer information for Alice. Name [ ]: alice Office [ ]: T&R room Office Phone [ ]:020-88888888 Home Phone[ ]: 020-99999999 Finger information changed.
/etc/passwd 帐号文件是账号管理中最重要的一个文件,是一个纯文本文件。每一个注册用户在该文件中都有一个对应的记录行,这一记录行记录了此用户的必要信息。 例如,下面是/etc/passwd 文件的实例。 [root@Candy ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin …… pulse:x:499:496:PulseAudio daemon:/:/sbin/nologin User:/var/lib/nfs:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin Bob:x:500:500::/home/Bob:/bin/bash
passwd
passwd(续)
2)锁定用户帐号 在系统中,有时需要临时禁止某个用户账号登录。如下命令用于锁定用户账号Jim,使其无法登录。 [root@Candy ~]# passwd -l Jim 查看Linux 系统中管理用户账号的系统文件/etc/shadow,可看到其密码域的第一个字符前加了符号“!”(若系统没有密码保护则文件为/etc/passwd)。 [root@Candy ~]# cat /etc/shadow 当然,也可修改/etc/passwd 文件来锁定用户账号Jim,在该用户的passwd 域的第一个字符前加一个#号注销这行记录,如要启用时再去掉#。 3)解除用户账号Jim的锁定。 [root@Candy ~]# passwd –u Jim 4)删除用户的密码 [root@Candy ~]# passwd –d Alice Removing password for user Alice. passwd: Success 该命令删除了用户Alice的密码。