A. 在 linux 上给用户赋予指定目录的读写权限
在 Linux 上指定目录的读写权限赋予用户,有两种方法可以实现这个目标:第一种是使用 ACL (访问控制列表),第二种是创建用户组来管理文件权限,下面会一一介绍。为了完成这个教程,我们将使用以下设置:
请确认所有的命令都是使用 root 用户执行的,或者使用 sudo 命令来享受与之同样的权限。让我们开始吧!下面,先使用 mkdir 命令来创建一个名为 share 的目录。
1. 使用 ACL 来为用户赋予目录的读写权限
重要提示: 打算使用此方法的话,您需要确认您的 Linux 文件系统类型(如 ext3 和 ext4, NTFS, BTRFS)支持 ACL。
1.1. 首先, 依照以下命令在您的系统中检查当前文件系统类型,并且查看内核是否支持 ACL:
从下方的截屏可以看到,文件系统类型是 ext4,并且从 CONFIG_EXT4_FS_POSIX_ACL=y 选项可以发现内核是支持 POSIX ACL 的。
[图片上传失败...(image-c85622-1574572716190)]
1.2. 查看文件系统(分区)挂载时是否使用了 ACL 选项。
[图片上传失败...(image-bdb4d9-1574572716190)]
通过上边的输出可以发现,默认的挂载项目中已经对 ACL 进行了支持。如果发现结果不如所愿,你可以通过以下命令对指定分区(此例中使用 /dev/sda3)开启 ACL 的支持)。
1.3. 指定目录 share 的读写权限分配给名为 shenweiyan 的用户了,依照以下命令执行即可。
[图片上传失败...(image-dfb909-1574572716190)]
在上方的截屏中,通过输出结果的第二行 getfacl 命令可以发现,用户 shenweiyan 已经成功的被赋予了 /data/share 目录的读写权限。
如果想要获取 ACL 列表的更多信息。请参考:
2. 使用用户组来为用户赋予指定目录的读写权限
2.1. 如果用户已经拥有了默认的用户组(通常组名与用户名相同),就可以简单的通过变更文件夹的所属用户组来完成。
另外,我们也可以通过以下方法为多个用户(需要赋予指定目录读写权限的)新建一个用户组。如此一来,也就创建了一个共享目录。
2.2. 接下来将用户 shenweiyan 添加到 dbshare 组中:
2.3. 将目录的所属用户组变更为 dbshare:
2.4. 现在,给组成员设置读写权限。
ok,在 Linux 上给用户赋予指定目录的读写权限就介绍到这里 !
参考资料:
B. linux 怎么查看某个用户所有的权限
linux中查看某个用户权限的命令为( 以mysql用户为例):
cat/etc/passwd|grep mysql
在Linux/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
(2)linux给某用户权限扩展阅读:
在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将使用该目录作为用户的工作目录。
C. linux 为用户授权的方法
linux下给用户授权主要是这个用户对某一个文件或者是莫一个文件夹的操作权限,因为在Linux操作系统中的所有东西都可以统称为文件。
比如对于一个文件
可以采用
chmod
命令进行授权
假设文件
/
文件夹
tset
chmod
777
test
此命令表示对
test
文件
/
文件夹所有用户具有操作的权限
其中
linux
对文件的权限分为读、写、执行
,分别用数字4、2、1表示,上述的7表示拥有最大的权限
在linux操作系统中,对于一个文件
/
文件夹用户分为三类,即拥有者,同组用户和其他用户。所以在上面的命令后面出现了三个7,分别代表拥有者和同组人员和其他用户的权限。
另外一种授权方式就是把某个文件/文件夹赋予某个用户
chown
用户名
文件路径
D. Linux的用户体系与权限
使用这个用户登录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用户去运行。
E. Linux给新用户赋予权限
name是用户名(所属主、所属用户),group是所属组
记得切换到超级管理员下再执行此命令
利用chown 将指定文件的拥有者改为指定的用户(或用户id)或组(或组id);文件是以空格分开的要改变权限的文件列表,支持通配符