Linux的用户体系与权限

Linux的用户体系与权限,第1张

使用这个用户登录linux系统后的一般 *** 作(除sudo/su等 *** 作外)都是这个用户权限的 *** 作,包括 启动应用后,该应用具有的权限,也是和这个用户一致的 。Linux每个进程都是以某个用户身份运行, 进程的权限与该用户的权限一样,用户的权限越大,则进程拥有的权限就越大 。用户本身对系统的权限在创建用户时设置,也可后续更改(如不能登录等等)。

查看所有用户信息。

Linux权限授权,默认是授权给三种角色,分别是user、group、other。三种角色对目录的权限:chmod 设置数字权限4,2,1,分别对应的是r,w,x,即可读,可写,可执行。 对目录设置权限时,可以加-R递归参数。可以对文件的这三个角色进行目录读写可执行授权, 如图 。

以上图所示,第一组为文件所有者的权限,第二组为文件所属组的权限,第三组为其他人的权限。其表示的具体含义为:文件所有者具有对文件的读写权限,文件所属组的用户具有对文件读写的权限,而其他人只有读取文件的权限。

文件的所有者

文件的所有者一般是创建该文件的用户,对该文件具有完全的权限。在一台允许多个用户访问的 Linux 主机上,可以通过文件的所有者来区分一个文件属于某个用户。当然,一个用户也无权查看或更改其它用户的文件。

文件所属的组

假如有几个用户合作开发同一个项目,如果每个用户只能查看和修改自己创建的文件就太不方便了,也就谈不上什么合作了。所以需要一个机制允许一个用户查看和修改其它用户的文件,此时就用到组的概念的。我们可以创建一个组,然后把需要合作的用户都添加都这个组中。在设置文件的访问权限时,允许这个组中的用户对该文件进行读取和修改。

其他人

如果我想把一个文件共享给系统中的所有用户该怎么办?通过组的方式显然是不合适的,因为需要把系统中的所有用户都添加到一个组中。并且系统中添加了新用户该怎么办,每添加一个新用户就把他添加到这个组中吗?这个问题可以通过其他人的概念解决。在设置文件的访问权限时,允许其他人户对该文件进行读取和修改。

授权完各个角色的权限,那么怎么更改文件所属的角色。如下:

更改文件拥有者: chown 账号名称 文件或目录

更改文件所属用户组:chgrp 组 目录或文件名

web目录权限设置参考 。 注意Web服务器各自的运行用户如果要对web目录进行 *** 作,也必须得到web目录的rwx授权才可以。

linux里面如何让某个程序以某个用户来运行?比如让mysql程序用mysql用户去运行。让httpd用httpd用户去运行。

linux中查看某个用户权限的命令为( 以mysql用户为例):

cat/etc/passwd|grep mysql

在Linux/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

扩展资料:

在Linux /etc/passwd 用户信息中各字段(列)的用途介绍

1、用户名(login_name):用于区分不同的用户。注册的名称在同一系统中是唯一的。在许多系统上,此字段的长度限制为8个字符(字母或数字)。

2、口令(passwd):用于验证用户的合法性,超级用户root或某些高级用户可以使用系统命令passwd来更改系统中所有用户的密码,普通用户也可以使用passwd命令来更改自己的口令。

3、用户识别号(UID):UID用于区分不同的用户。在系统内部管理进程和文件保护时,请使用UID字段。在Linux系统中,可以使用注册名称和UID来标识用户,但是UID对系统来说更重要,而对于用户来说注册名使用起来更方便。

4、组标识号(GID):与UID一样,用户的组标识号也存储在passwd文件中。在现代Unix / Linux中,每个用户可以同时属于多个组。除了指定passwd所属的基本组外,还可以在/ etc / group文件中指定组中包含的用户。

5、用户名(user_name):包含有关用户的一些信息,例如用户的真实姓名,办公室地址,联系电话等。在Linux系统中,mail和finger之类的程序使用此信息来标识系统的用户。

6、用户主目录(home_directory):此字段定义单个用户的主目录。当用户登录时,Shell将使用该目录作为用户的工作目录。

linux *** 作系统是多用户管理系统,管理起来非常麻烦,所以用组的概念来管理用户就变的简单多了, 一个用户可以属于多个组,一个组可以有多个用户,用户和组是多对多的关系。

linux的多用户多分组管理系统都是针对 文件 来说的, 每个文件都有所属的用户和所属的分组。

linux系统是根据用户UID来识别用户的,并不是根据用户名。linux用户分为以下3种

每行数据为一个用户,可以看到红色部分为root超级用户,蓝色部分为系统用户,绿色部分为普通用户。

我们可以看到该文件属于root用户和root组。然后root用户权限是rw-,root组内成员的权限是r--,而其他用户的权限是r--。由于其他用户的权限都是r--,所以任何用户都是可以读的。

在/etc/group文件中存储着系统的所有组,查看文件内容,如下图

大致分为4段

我们可以看到图中mail分组的第4段有值为postfix,也就是postfix用户应该有俩个分组,一个初始组和一个附属组,我们执行以下命令验证

用户密码文件shadow和组密码文件gshadow的权限都是000,所有其他用户是不能查看的,只有root用户才可以查看,root用户也是不能修改该文件的。

使用 whoami 命令查看。

postfix用户有俩个所属组postfix和mail。由此可见, uid是指用户id(用户名称),gid是指初始组id(初始组名称),groups是指包括初始组在内的所有组id(所有组名称)

我们知道了/etc/group文件的第四段为 组内成员 ,所有我们可以通过 grep 来匹配相关组。比如查询mail组内的所有成员,命令如下, 可以看到mail组内有mail,postfix和tom3个用户。

上面是一种方法,我们也可以直接使用命令来查看。

添加用户只能root用户来添加,普通用户没有权限,添加用户有俩种方式

在centos系统下,这俩种方式没有区别, 都会在/home下自动创建与用户名同名的用户目录,且都是需要使用 passwd userName 命令来设置用户密码的,只有设置完密码后才可以正常登录。

在unbantu系统下,这俩种方式是有区别的,使用 useradd userName命令 不会在/home下自动创建与用户名同名的用户目录,且不会自动选择shell版本,后续也是需要使用 passwd username来设置密码的 。 而使用 adduser userName 命令的话 是会在/home目录下自动创建与用户名同名的用户目录,也会自动选择shell版本,且会自动提示输入用户密码,对用户比较友好,后续不需要在使用passwd来设置密码。

删除用户,并不会删除用户相关的文件

删除用户且一起删除家目录

格式如下:

参数如下:

-g 指定组(只有root可以使用)

-a 指定用户加入组

-d 从组中删除该用户

-p 从组中清楚所有成员

-l 显示组成员列表

linux中每个文件都是有权限的。 每个文件都有自己的所属用户和所属组,且拥有所属用户权限,所属组权限和其他权限3种。

权限一般分为读,写,执行3种,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的 *** 作。

目录有x权限才可以cd进入该目录。目录有r权限才能在该目录中使用ll或者ls查看目录。一个目录中的文件能否被删除或者创建取决于该目录是否有w权限。

执行ll命令后显示如下,我们解读一下

从左到右发现一共有7段

然后执行如下命令

test文件的权限改为

常用的参数为 -R ,常用于修改目录权限,该参数表示为该目录以及目录下的所有子文件都修改为相同的权限。

然后执行如下命令

再次查看test文件

常用的参数为 -R ,常用于修改目录,该参数表示为该目录以及目录下的所有子文件都修改为相同的用户及用户组。

想切换到root用户,直接使用su命令即可


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8387684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存