Linux用户和组管理【未完成】
Linux用户和组管理
Linux系统是一个多用户、多任务的分时操作系统,在Linux中用户和用户组管理是系统管理的重要内容。Linux系统将用户分为组群管理以简化访问控制,以避免为众多用户分别设,置权限。本节的内容主要讨论如何在命令行界面下完成用户账号、组的建立和维护等问题。
1,用户管理概述
在Linux操作系统中,每个文件和程序必须属于某一个“用户”,每个用户对应一个账号。
在Red Hat Linux安装完成后,系统本身已创建了一些特殊用户,它们具有特殊的意义,其中最重要的是超级用户,即根用户root。
超级用户root承担了系统管理的一切任务,可以控制所有的程序,访问所有文件,使用系统中的所有功能和资源。Linux系统中其他的一些组群和用户都是由root来创建的。
用户和组群管理的基本概念如下。
-
用户标识(UID):系统中用来标识用户的数字。
-
用户主目录:也就是用户的起始工作目录,它是用户在登录系统后所在的目录,用户的文件都放置在此目录下。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。
-
登录Shell:用户登录后启动以接收用户的输入并执行输入相应命令的脚本程序,即Shell,Shell是用户与Linux系统之间的接口。
-
用户组/组群:具有相似属性的多个用户被分配到一个组中。
-
组标识(GID):用来表示用户组的数字标识。
超级用户在系统中的用户ID和组ID都是0,普通用户的用户ID(UID)从500开始编号,并且默认属于与用户名同名的组,组ID(GID)也从500开始编号。
2.用户管理配置文件
Linux系统中用户和组群的管理是通过对有关的系统文件进行修改和维护实现的,与用户和用户组相关的管理维护信息都存放在一些系统文件中,其中较为重要的文件有/etc/passwd,
/etc/shadow和/etc/group等。
(1)/etc/passwd文件。
/etc/passwd文件是Linux系统中用于用户管理的最重要的文件,这个文件对所有用户都是可读的。Linux系统中的每个用户在/etc/passwd文件中都有一行对应的记录,每一记录行都用冒号(:)分为7个域,记录了这个用户的基本属性。记录行的形式如下。
用户名:加密的口令:用户ID:组ID:用户的全名或描述:登录目录:登录shell
其中,用户ID(UID)对于每一个用户必须是唯一的,系统内部用它来标识用户,一般情况下它与用户名是一一对应的。如果几个用户名对应了同一个用户标识号,那么系统内部将把它们视为具有不同用户名的同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录shell等。编号0是root用户的UID,编号1~99是系统保留的UID,100以上给用户做标识。Linux系统把每一个用户仅仅看成是一个数字,即用每个用户唯一的用户ID来识别,配置文件/etc/passwd给出了系统用户 ID与用户名之间及其他信息的对应关系。
由于/etc/passwd文件对所有用户都可读,所以目前许多Linux系统都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如x或者“*”,并且该文件只有根用户root可读,因而大大提高了系统的安全性。
(2)/etc/shadow文件。
为了保证系统中用户的安全性,Linux系统另外建立了一个只有超级用户root能读的文件/etc/shadow,该文件包含了系统中的所有用户及其口令等相关信息。每个用户在该文件中对应一行,并且用冒号(:)分成9个域。每一行包括以下内容:
-
①用户登录名;
-
②用户加密后的口令(若为空,表示该用户不需口令即可登录;若为*号,表示该账号被,禁止);
-
③从1970年1月1日至口令最近一次被修改的天数;
-
④口令在多少天内不能被用户修改;
-
⑤口令在多少天后必须被修改;
-
®口令过期多少天后用户账号被禁止;
-
①口令在到期多少天内给用户发出警告;
-
③口令自1970年1月1日起被禁止的天数;
-
9保留域。
(3)/etc/group文件。
在Linux系统中,使用组来赋予同组的多个用户相同的文件访问权限。一个用户也可以同时属于多个组。管理用户组的基本文件是/etc/group,与用户账号基本文件相似,每个组在文件/etc/group中也有一行记录与之对应,每一行记录用冒号(:)分为4个域,记录了这个用户组的基本属性信息。记录行的形式如下。
用户组名:加密后的组口令:组ID:组成员列表
下面是用户组sys在/etc/group中对应的记录行:
sys:x:3:root,bin,adm
其代表的信息包括系统中有一个称为sys的用户组,设有口令,组ID为3,组中的成员有,root,bin和adm3个用户。
Linux在系统安装时创建了一些标准的用户组,在一般情况下,建议不要对这些用户组进行删除和修改。
3.用户和组管理命令
1)用户管理
adduser 增加一个新用户
用户管理操作的工作就是建立一个合法的用户账户、设置和管理用户的密码、修改用户账户的属性以及在必要时删除已经废弃的用户账号。
在Linux中增加一个用户就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录shell等资源。在Linux系统中,只有具有超级用户权限的用户才能够创建一个新用户。增加一个新用户的命令格式如下。
adduser [-选项] username常用选项参数说明如下。
-
-d:指定用于取代默认/home/username的用户主目录。
-
-g:用户所属用户组的组名或组ID(用户组在指定前应存在)。
-
-m:若指定用户主目录不存在则创建。
-
-p:使用crypt加密的口令。
. -
-s:指定用户登录shell,默认为/bin/bash。
-
-u uid:指定用户的UID,它必须是唯一的,且大于499。
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件,如/etc/shadow,/etc/group等。
例如,运行下列命令将新建一个登录名为user1的用户。
useradd user1
在默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。如果需要另外指定用户主目录,可以运行如下命令。【这儿如果是运行了上面的命令再接着运行下面的命令就会出现用户名已存在的提示,你要么删掉之前的用户,要么换一个用户名测试!这儿我选择第二种!】
useradd -d /home/lin user2
在Linux中,新增一个用户的同时会创建一个新组,这个组与该用户同名,而这个用户就是该组的成员。如果想让新的用户归属于一个已经存在的组,可以运行如下命令。【我将把user1加到lvhanghmm组下,这个也会出现!还是采取换一个用户user3】
useradd-g manager user1
进入passwd文件下看到:cat passwd
这样用户user1就属于组lvahanghmm中的一员了。
passwd 为新建用户设置一个初始密码
需要注意的是,新增加的这个用户账号是被锁定的,无法使用。因为还没给它设置初始密,码,而没有密码的用户是不能够登录系统的,因此下面应该使用passwd命令为新建用户设置一个初始密码作为登录口令。
Linux系统出于安全考虑,系统中的每一个用户除了用户名外,还设置了登录系统的用户口令。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。指定和修改用户口令的命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。passwd命令的一般格式如下。
passwd [-选项] [username]
常用选项参数说明如下。
-
-l:锁定口令,即禁用账号。
-
-u:口令解锁。
-
-d:使账号无口令。
-
-f:强迫用户下次登录时修改口令。
如果不指定用户名,则修改当前用户自己的口令。普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时就不需要知道原口令。
例如,超级用户要设置或改变用户newuser的口令时可运行命令:
passwd newuser
系统会提示输入新的口令,新口令需要输入两次。出于安全的原因,输入口令时不会在屏幕上回显出来。
有时需要临时禁止一个用户账号的使用而不是删除它,可以采用以下两种方法实现临时禁止一个用户的操作。
(1)把用户的记录从/etc/passwd文件中注释掉,保留其主目录和其他文件不变;
(2)在/etc/passwd文件(或/etc/shadow)中关于该用户的passwd域的第一个字符前面加上
“*”号。
userdel 删除用户命令
删除用户命令userdel的功能是系统中如果一个用户的账号不再使用,可以将其从系统中删除。删除一个用户的命令格式如下。
userdel [-选项] username
最常用的参数选项是-r,它的作用是把用户的主目录一起删除。
删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录,可以使用"userdel -r"用户名”来实现这一目的。因此,完全删除一个用户包括:
-
(1)删除/etc/passwd文件中此用户的记录;
-
(2)删除/etc/group文件中该用户的信息:
-
(3)删除用户的主目录;
-
(4)删除用户所创建的或属于此用户的文件。
例如,运行下列命令。
userdel -r user1
可以删除用户user1在系统的账号及其在用户管理配置文件中(主要是/etc/passwd,/etc/shadow和/etc/group等)的记录,同时删除用户的主目录。
su 命令来改变身份
用户在系统使用过程中可以随时使用su命令来改变身份。例如,系统管理员在平时工作时可以用普通账号登录,在需要进行系统维护时用su命令获得root权限,之后为了安全再用su回到原账号。su命令的一般格式如下。
su [username]
username是要切换到的用户名,如果不指定用户名,则默认将用户身份切换为root,系统会要求给出正确的口令。
2)用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。默认Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。与用户管理相类似,用户组的管理包括组的增加、删除和修改,实际上就是通过修改/etc/group文件实现这些操作。
groupadd 新用户组加入系统的命令
Linux系统中将一个新用户组加入系统的命令是groupadd。该命令的一般格式如下。
groupadd [-选] groupname
常用选项参数说明如下。
-
-g GID:指定用户组的GID,它必须是唯一的,且大于499。
-
-I:创建小于500的系统用户组。
-
-f:若用户组已存在,退出并显示错误(原用户组不会被改变)。
新建的组默认使用大于500并大于每个其他组的ID的最小数值。如果要指定组的ID,可以在命令中加入-g参数。
如运行下面的命令:
groupadd-g 503 newgroup
将在/etc/group文件中产生一个GID为503的用户组newgroup
groupdel 删除一个已有的用户组
如果要删除一个已有的用户组,使用groupdel命令。该命令的一般格式如下。
groupdel groupname
例如,运行命令:
groupdel newgroup
运行后将从系统中删除组newgroup。
删除一个用户组时要注意以下几点。
-
(1)组中的文件不能自行删除,也不能自行改变文件所属的组;
-
(2)如果组是用户的基本组(即/etc/passwd文件中显示为该用户的组),则这个组无法删除;
-
(3)如果组中有用户在系统中处于登录状态则不能删除该组,最好删除用户后再删除组。
groupmod 修改用户组的属性
修改用户组的属性使用groupmod命令,其格式如下。
groupmod [-选项] groupname
常用选项参数说明如下。
-
-g:为用户组指定新的组标识号。
-
-n:将用户组的名字改为新名字。
如果需要将一个用户加入一个组,可以通过编辑/etc/group文件,将用户名写到组名的后面实现。/etc/group文件的每一行表示一个组的信息,其中第4个域代表组内用户的列表。
例如,userl,user2,user3 都属于组groupl,其组的ID为509,则组groupl的记录信息如下。
groupl::509:userl,user2,user3
如果要将新用户加入组中,只需在文件编辑器中编辑/etc/group文件,并将用户名加入组记录的用户域列表中,用逗号隔开即可。
本文来自博客园,作者:{lvhanghmm},转载请注明原文链接:https://www.cnblogs.com/lvhanghmm/p/16015297.html