2024年6月14日发(作者:)
Linux用户管理
一.权限控制机制
Linux系统是个多用户系统,能做到不同的用户能同时访问不同的文件,因
此一定要有文件权限控制机制。Linux系统的权限控制机制和 Windows的权限控
制机制有着很大的差别。Linux的文件或目录被一个用户拥有时,这个用户称为
文件的拥有者(或文件主),同时文件还被指定的用户 组所拥有,这个用户组称
为文件所属组。一个用户可以是不同组的成员,这可以由管理员控制。文件的权
限由权限标志来决定,权限标志决定了文件的拥有者、文件 的所属组、其他用
户对文件访问的权限。
用户和权限
1.基本概念
(1)文件主 Linux为每个文件都分配了一个所有者,称为文件主,并赋予文
件主唯一的注册名。对文件的控制取决于文件主或超级用户(root)。
文件的所属关系是可以改变的,你可以将文件或目录的所有权转让给其他用
户,但只有文件主或root才有权改变文件的所属关系。可以用chown 命令更改
某个文件或目录的所有权。例如,超级用户把自己的一个文件复制给用户user1,
为了让用户user1能够访问这个文件,超级用户(root)应 该把这个文件的属主
设为user1,否则,用户user1无法访问这个文件。如果改变了文件或目录的所
有权,原文件主将不再拥有该文件或目录的控制权
(2)用户组 Linux下,每个文件又属于一个用户组。当创建一个文件或目录
时,系统会赋予它一个用户组关系,chgrp命令可以改变文件的组关系。
(3)访问权限 Linux系统中的每个文件和目录都有访问权限,用它来确定谁
可以通过何种方式对文件和目录进行访问和操作。
2.访问权限
Linux系统中规定了3种不同类型的用户:文件主(user)、同组用户(group)、
可以访问系统的其他用户(others)。
访问权限规定3种访问文件或目录的方式:读(r)、写(w)、可执行或查找(x)
(1)文件访问权限
读权限(r)表示只允许指定用户读取相应文件的内容,禁止对它做任何的更
改操作。写权限(w)表示允许指定用户打开并修改文件。执行权限(x)表示允许指
定用户将该文件作为一个程序执行。
(2)目录访问权限
在ls命令后加上-d选项,可以了解目录文件的使用权限。读权限(r)表示
可以列出存储在该目录下的文件,即读目录内容。写权限(w)表示允许 你从目录
中删除或创建新的文件或目录。执行权限(x)表示允许你在目录中查找,并能用
cd命令将工作目录切换到该目录。用chmod命令可改变文件或目录 的访问权限。
例如:
命令
功能:chmod命令用于改变或设置文件或目录的访问权限。
格式:chmod[选项]模式文件或目录名
说明:只有文件主或超级用户root才有权用chmod改变文件或目录的访问
权限。
1
选项参数:
◆-c:若文件或目录权限确实已经更改,才显示其更改动作。
◆-f:若文件或目录权限无法被更改也不要显示错误信息。
◆-v:显示权限变更的详细资料。
◆-R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递归式
的方式逐个变更)。
设定文件权限时,在模式中常用以下的字母代表用户或用户组:
◆u(user)表示文件的所有者。
◆g(group)表示文件的所属组。
◆o(others)表示其他用户。
◆a(all)代表所有用户(即u+g+o)。
权限用以下字符表示:r表示读权限;w表示写权限;x表示执行权限。最后
要指明是增加(+)还是取消(-)权限,或是只赋予权限(=)。
命令
功能:改变某个文件或目录的拥有者和所属的组。
格式:chown[选项]用户或组文件名
说明:只有文件主和超级用户才可以使用该命令。同时改变文件主和文件所
属的组时,用户名和用户组名由冒号分开。在文件名中可以包含通配符。
参数选项:
◆-R递归式地改变指定目录及其所有子目录、文件的文件主。
命令
功能:改变文件或目录的所属组。
格式:chgrp[选项]组名文件名
说明:如果用户不是该文件的文件主或超级用户,则不能改变该文件或目录
的所属组。chown可以同时改变文件拥有者和所属组,chgrp只具有改变所属组
的功能。
参数选项:
◆-R递归式地改变指定目录及其下面的所有子目录和文件的用户组。
命令
功能:用来设置新建文件权限的掩码。
格式:umask[模式]
说明:模式为新建文件权限的掩码值。
文件访问权限可以通过chmod命令来修改。当用户创建一个新文件后,如果
不使用chmod修改权限,则这个文件的权限是什么呢?这个文件的权 限由系统默
认权限和默认权限掩码共同确定,它等于系统默认权限减去默认权限掩码。Linux
系统中目录的默认权限是777,文件的默认权限是666。因 此,有以下公式:
◆新目录的权限=777-默认权限掩码
◆新文件的权限=666-默认权限掩码
◆注意:基于安全原因,Linux系统不允许文件的默认权限有执行权。不带
任何参数的umask命令显示当前的默认权限掩码值。下面讲解Linux用户管理。
二.Linux用户管理
Linux是一个多任务、多用户的操作系统,要能做到不同的用户能同时访问
不同的文件,允许不同的用户从本地登录或远程登录,这时用户必须拥有 一个
2
合法的账号,Linux系统正是通过账号来实现对用户的访问进行控制的,因此,
需要对用户与组进行有效的管理。Linux操作系统下的用户:
1.用户
Linux下的用户可以分为三类:超级用户、系统用户和普通用户。超级用户
的用户名为root,它具有一切权限,只有进行系统维护(例如建立用 户等)或其
他必要情形下才用超级用户登录,以避免系统出现安全问题。系统用户是Linux
系统正常工作所必需的内建的用户,主要是为了满足相应的系统进程 对文件属
主的要求而建立的,系统用户不能用来登录,如bin、daemon、adm、lp等用户。
而普通用户是为了让使用者能够使用Linux系统资源而建立的,我们的大多
数用户属于此类。每个用户都有一个数值,称为UID。超级用户的UID为0,系
统用户的UID一般为1~499,普通用户的UID为500~60000之间的值。
2.账号系统文件
Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有
/etc/passwd、/etc/shadow、/etc /group这几个。我们可以使用vi或其他编
辑器来更改它们,也可以使用专门的命令来更改它们。账号的管理实际上就是对
这几个文件的内容进行添加、修改 和删除记录行的操作,不管以哪种形式管理
账号,了解这几个文件的内容十分必要。
(1)/etc/passwd文件:是账号管理中最重要的一个文件,它是一个纯文本
文件。每一个注册用户在该文件都有一个对应的记录行,这一记录行记录了此用
户的必要信息。
例1:显示/etc/passwd文件。
#cat/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
从passwd文件中可以看到,第一行是root用户,紧接的是系统用户,普通
用户通常在文件的尾部。passwd文件中的每一行由7个字段的数据组成,字段
之间用“:”分隔,其格式如下:
◆账号名称:密码:UID:GID:个人资料:主目录:Shell
说明如下:
◆账号名称:用户登录Linux系统时使用的名称。
◆密码:这里的密码是经过加密后的密码,而不是真正的密码,若为“x”,
说明密码经过了shadow的保护。
◆UID:用户的标识,是一个数值,Linux系统内部使用它来区分不同的用
户。
◆GID:用户所在组的标识,是一个数值,Linux系统内部使用它来区分不
同的组,相同的组具有相同的GID。
◆个人资料:可以记录用户的个人信息,如姓名、电话等信息(上例中test
用户本项为空)。
◆主目录:通常是/home/username,这里username是用户名,用户执行
“cd~”命令时当前目录会切换到个人主目录。
◆Shell:定义用户登录后使用的Shell,默认是bash。
(2)/etc/shadow文件:任何用户对passwd文件都有读的权限,虽然密码已
经经过加密,但还是不能避免有人会获取加密后的密码。 为了安全,Linux系
统对密码提供了更多一层的保护,即把加密后的密码重定向到另一个文件
3
/etc/shadow。密码如果经过shadow保护,在 /etc/passwd文件中,每一记录
行的密码字段会变成“x”,并且在/etc目录下存在文件shadow。只有超级用户
能够读取shadow的内 容。
(3)pwconv和pwunconv文件:安装Linux系统时,系统缺省采用shadow来
保护密码。?如果安装Linux时未启用 shadow,可以使用pwconv命令启用
shadow。注意用root用户登录来执行该命令,执行的结果是/etc/passwd文件
中的密码字段被 改为“x”,同时产生/etc/shadow文件。相反,如果要取消
shadow功能,可使用pwunconv命令。
以上讲解的是Linux用户管理
三.组的管理
的组
Linux的组有私有组、系统组、标准组之分。建立账户时,若没有指定账户
所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个 组只
容纳了一个用户。而标准组可以容纳多个用户,组中的用户都具有组所拥有的权
利。系统组是Linux系统自动建立的。一个Linux用户可以属于多个 组,用户
所属的组又有基本组和附加组之分。在用户所属组中的第一个组称为基本组,基
本组在/etc/passwd文件中指定;其他组为附加组,附加组在 /etc/group文件中
指定。属于多个组的用户所拥有的权限是它所在的组的权限之和。
Linux系统关于组的信息存放在文件/etc/group中。
例:显示文件/etc/group内容。
#cat/etc/group
root:x:0:root,test
bin:x:1:root,bin,daemon
......
test:x:500:
group1:x:1000:
user1:x:501:
group文件中的每一行记录了一个组的信息,每行包括4个字段,字段之间
用“:”分隔。
◆格式为组名:组的密码:GID:组成员。
◆字段说明:
◆组名:组的名称,如root、bin等。
◆组的密码:设置加入组的密码,一般情况下不使用组密码,该字段通常没
用。
◆GID:组的标识符,为数值,类似UID。
◆组成员:组所包含的用户,用户之间用“,”分隔。
2.用户组的添加、修改、删除
(1)添加组
可以手工编辑/etc/group文件来完成组的添加,也可以用命令groupadd来
添加组,
命令格式:groupadd组名
例:添加组group1。
#groupaddgroup1
(2)修改组属性
4
使用groupmod命令来修改组名或GID。在groupmod-g命令后加上组的新ID
号和组名来修改GID。在groupmod-n命令后加上新组名和原组名来修改组名。
3.删除组
使用groupdel命令来删除组。
◆格式:groupdel组名
◆说明:组被删除后,应使用chown命令将被删除用户组的目录与文件变为
它隶属的用户组。
◆要改变组中的成员用户或改变组的密码使用gpasswd命令。
◆格式:gpasswd[参数][用户名]组名
◆不带参数时,即修改组密码。
参数选项:
◆-a:将用户加入到组中。
◆-d:将用户从组中删除。
四.Linux用户管理器
用户管理器是一个图形界面形式的管理工具,利用用户管理器可以方便地管
理用户和用户组。根用户root可以选择“主菜单”→“系统设置”→“用 户和
组群”(或者在Shell提示符下键入redhat-config-users),就打开“RedHat
用户管理器”窗口.
1.创建用户账号
在Linux用户管理器窗口中单击“添加用户”按钮,打开“创建新用户”对
话框。
2.修改用户属性
若要修改用户属性,首先在Linux用户管理器窗口中选择一个已存在的用户
账号,然后单击“属性”按钮,则出现“用户属性”窗口,在窗口中有“用户数
据”、“账号信息”、“口令信息”和“组群”四个选项卡。用户可以选择相应
的选项卡进行相关属性的修改。
3.修改用户组属性
在“组群”选项卡中,选择一个已存在的用户组,并单击“属性”按钮打开
“组群属性”窗口,在该窗口中修改设置用户组的属性,将需加入本组的用户分
别打上对号即可。
5


发布评论