目录
41庞鸿霞
Linux用户管理
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员(root用户)申请一个账号,然后以这个账号的身份进入系统。每个用户账号都拥有一个唯一的用户名和各自的密码。Linux 的用户需要至少要属于一个组,也可以属于多个组。
whoami指令
查看当前系统当前账号的用户名
who指令
查看当前所有登录系统的用户信息。
useradd指令
功能:添加用户
语法:useradd [选项] 用户名
常用选项:
(1)-c comment :指定一段注释性描述。
(2)-d 目录 :指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。若不指定目录,默认会自动在home目录下创建一个和用户名相同的目录。
(3)-g 用户组 :添加用户时指定用户所属的用户组。
(4)-G 用户组,用户组 :指定用户所属的附加组。
(5)-s Shell文件 :指定用户的登录Shell。
(6)-u 用户密码:指定用户的密码,如果同时有-o选项,则可以重复使用其他用户的标识号。
示例:
创建用户名为jinan的用户
passwd指令
用户管理的一项重要内容是用户密码的管理。用户账号刚创建时没有密码,但是被系统锁定,无法使用,必须为其指定密码后才可以使用(此时由root用户指定密码),即使是指定空密码。
超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
功能:指定用户密码或者修改用户密码
语法:passwd [选项] 用户名
常用选项:
(1)-l :锁定密码,即禁用账号。
(2)-u :密码解锁。
(3)-d :使账号无密码。
(4)-f :强迫用户下次登录时修改密码。
例如新建一个用户marry,密码自定义
Linux用户组管理
用户组类似于角色,系统可以对有共性的多个用户进行统一的管理。每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
groupadd 指令
功能:增加一个新的用户组
语法:groupadd [选项] 用户组
常用选项:
(1)-g GID :指定新用户组的组标识号(GID)。
(2)-o :一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
例如:将jinan用户添加到city用户组
gpasswd指令
gpasswd命令用于管理/etc/group和/etc/gshadow。每个组都可以有管理员、成员和密码。系统管理员可以使用-A选项定义组管理员,使用-M选项定义成员。他们拥有组管理员和成员的所有权利。由组管理员使用组名调用的gpasswd仅提示输入组的新密码。如果设置了密码,则成员仍然可以在没有密码的情况下使用newgrp(1),非成员必须提供密码。组密码是一个固有的安全问题,因为允许多人知道密码。然而,组是允许不同用户之间合作的有用工具。
gpasswd
命令的一些常用选项
例如:新建 student 用户组,将 mary 用户加入到 student 用户组中。查看组文件,看 mar用户是否在 student用户组中。
groupdel指令
功能:删除一个已有的用户组
语法:groupdel 用户组
groups指令 - 显示用户所属组
例如:
Linux权限的概念
Linux下默认有两种用户:超级用户(root)、普通用户。
root:超级管理员,具有非常高的权限,可以再linux系统下做任何事情,不受限制.
普通用户:具有一般权限,需要受权限约束(由root用户创建的)
超级用户:可以在linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
su指令
(1)普通用户切换到root用户:su
输入密码切换成管理员用户权限登录
(2)root用户切换到普通用户
root用户切换回普通用户不需要密码。使用exit变回普通用户(或者快捷方式ctrl+d)
Linux权限管理
什么是权限?一件事情是否允许被特定的人做,权限约束的是人,文件本身是具有天然的权限属性的(r,w,x),权限等于人+事物的属性。权限要么约束特定的人群,要么修改事物的属性,所以权限的操作,要么修改人,要么修改事物的属性。
文件访问者的分类(人)
在 linux 中的每个用户必须属于一个组,不能独立于组外(用户组)。在 linux 中每个文件有所有者、所在组、其它组的概念(文件组)。
Linux中的用户类别:
1.拥有者 owner
2.所属组 group (为了组内协同)
3.其他 other
root和普通用户指的是具体的一个人。
拥有者、所属组、other指的是一种角色身份。某一个人可能拥有这些身份中的一个或多个。
文件类型
Linux系统不以文件后缀作为区分文件类型的方式,以前缀(第一位)来区分文件类型。
-:普通文件(文本、动/静态库、可执行程序、源程序)
d:目录文件
c:字符设备文件(键盘与显示器)
b:块设备文件(磁盘)
p:管道文件(通信)
l:链接文件(软链接,类似Windows的快捷方式)
s:套接字文件
基本权限
拥有者、所属组、其他人各自拥有3种权限,分别是 是否具有读权限、 是否具有写权限 、 是否具有可执行权限
r:具有读权限
w:具有写权限
x:具有可执行权限
-:不具有该权限
读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除、移动目录内文件的权限
执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
文件权限值的表示方法
a)字符表示方法
b)8进制数值表示方法
因为权限位置固定,而且权限只有两种可能,要么具有要么没有,所以权限可以表示成数字形式。
文件访问权限的相关设置方法(修改事物属性)
chmod指令 - 控制用户对文件的权限
功能:通过 chmod 指令,可以修改拥有者、所属组、其他组对文件或者目录的权限
语法:chmod [选项] 权限 文件名
常用选项:
(1)R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
普通用户只能修改自己是拥有者的文件的权限,修改别人的文件权限,要加上sudo,而超级用户root不受权限约束,可以随意修改所有文件的权限。
chmod修改权限的方式:
(1)使用+ 、-、= 变更权限
chmod 用户表示符+/-/=权限字符 指定文件或目录
用户表示符有如下选项:
- u:所有者
- g:所在组
- o:其他人
- a:所有人(u、g、o 的总和)
操作符+、-、=的含义:
- +:为指定的用户类型增加权限
- -:为指定的用户类型减少权限
- =: 设置指定用户权限的设置,即将用户类型的所有权限重新设置
权限字符有如下选项
例如:设置/root/sdcet文件权限为jinan用户可读、写、执行,city组可读、写,其它成员可读、写。
通过数字变更权限
例如:新建/computer 目录,用数字法设置/computer目录权限,并查看权限是否成功
修改文件的拥有者/所属组(修改人)
chown指令
功能:修改文件或目录的拥有者
格式: chown [选项] 用户名 文件名
常用选项:
(1)-R 如果是目录,则使其下所有子文件或目录递归生效
在根目录下创建sdcet空文件,设置/root/sdcet文件的所有者为jinan、属组为city。
粘滞位
要删除一个文件,你不一定要有这个文件的写权限,但你一定要有这个文件的上一级目录的写权限。也就是说,你即使没有一个文件的写权限,但你有这个文件的上一级目录的写权限,你就可以把这个文件给删除;而如果你没有一个目录的写权限,也就不能在这个目录下创建、删除文件。
我们只要对一个目录有w权限,即使我们不是该目录下所有文件的所有者,而且对这些文件也没有读或写权限,也是可以删除这个目录下的任何文件和子目录。这样在同一个目录下,如果有多个用户建立属于自己的文件,任何只要对该目录有w权限的用户,都可以删除别人在这个目录下建立的属于自己的文件,这样做是很可怕的。但是,如何才能使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下其他人的文件呢?粘滞位就能起到这个作用。粘滞位一般只用在目录上,用在文件上起不到什么作用。
粘滞位用t表示,设置了该位后,其它用户就不可以删除不属于他的文件和目录(root用户除外),这就对 所有用户都能写的目录下的用户文件 启到了保护作用。但是该目录下的子目录不继承该权限,要再设置才可使用。
t权限:可以进入该目录,可以删除、修改该目录下自己的文件,不能修改删除该目录下别人的文件
chmod o+t 目录名
粘滞位只能对目录设置,一般是限制other的权限,因为同一组内的用户即使有人误删了别人的代码,也可以追溯到,但是如果不限制other的权限,other误删文件,追溯不到哪个用户。对设置了粘滞位的目录,在该目录下,只能文件的拥有者可以删除,其他人不能删除(root用户可以随意删除)。
例如:对/hpppp目录的other组设置t权限
在Linux系统中/tmp目录,用来存放系统产生的临时文件,权限为 “rwx(用户)rwx(用户所属组)rwx(其他)”,允许任意用户、任意程序在该目录中进行创建、删除、移动文件或子目录操作。
若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将会造成多么严重的结果?**所以/tmp目录的other组权限添加了粘滞位,other组设置了t权限后,**该目录下的文件或子目录文件就会受到保护,每个用户可以进入这个目录,修改自己和他人的文件,也可以写入自己的文件,但是不能随便删除他人(root用户除外),只能删除自己的文件。
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除