linux中,如何设置文件夹的访问权限?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中,如何设置文件夹的访问权限?相关的知识,希望对你有一定的参考价值。

目录结构为
/usera/b1/
/usera/b2/
/usera/b3/

/usera为用户usera的home, b1,b2,b3都是文件夹下面都分别还有新的文件。

现在希望其他用户能够看到并能够进入b1文件夹,能够看到但不能进入b2文件夹,不能看到也不能进入b3文件夹。如何设置?

有些可以实现:
假设用户A组为A组

然后组B组成员

chgrp命令B组-R / USERA

所有B组组成员组A组的

右组C组的成员,并且可以实现

看不到的B1,B2,B3,和较低的文件夹和文件B1文件夹,但能够进入,不进入B2,B3文件夹

保持默认的权限,然后

属性的O-RWX-R / USERA

chgrp命令C组-R / usera/b1

因为你有点特殊,B1,B2, B3能不能看到,由于父目录的读取权限,只能有一个选择。传统的Linux的权限是比较简单的。

但可以研究下的高级ACL权限控制和特殊权限的SUID,SGID SBIT根据您的需要的权限属性,这两种最有可能的,你将需要学习。
有限的空间里给你这些。
参考技术A chmod o+x b1 其他用户就能进入b1了
chmod o-x b2 其他用户无法进入b1
我个人认为让人看不到b3是做不到的, 才疏学浅, 求解释!
参考技术B 1.chmod -R 744 /usera 其他用户能够进入usera目录,此时其他用户并可以看到b1 b2 b3目录也能进入三个目录
2. chmod -R 700 /usera/b2 其他用户不能进入b2目录。
3.不能看到也不能进入b3文件夹 ,这个做不到,只能做到不能进入b3目录,方法和第二步一样
参考技术C 在linux下,以点"."开头命名的文件在系统中被视为隐藏文件。因此,如果想隐藏某个文件或目录,一种简单的办法就是把文件名命名为点开头。 参考技术D chmod 777 -R xxx

如何使用 apache2 在我的 Linux 网络服务器上设置音频文件的 CORS 访问权限?

【中文标题】如何使用 apache2 在我的 Linux 网络服务器上设置音频文件的 CORS 访问权限?【英文标题】:How can I set CORS access for an audio file on my Linux webserver with apache2? 【发布时间】:2016-11-25 10:43:55 【问题描述】:

我正在尝试在 codepen 上创建一个音频可视化项目。我尝试使用 OneDrive 托管音频文件,但收到 CORS 限制错误。现在我更进一步,创建了自己的 Web 服务器 (http://publicwebserverdemo.hopto.org),我在其中托管了音频文件 (http://publicwebserverdemo.hopto.org/publicAudio/audio.mp3)。我已经在互联网上尝试了几组指令来使用 .htaccess 文件实现 CORS,但我没有任何运气。如何授予 CORS 对音频文件的 codepen 的访问权限?

我在 Ubuntu Mate 14.04 上使用 Apache(带有整个 LAMP 包)。

这是示例 codepen 的复制(我从 Internet 上的某个地方获取了用于测试 CORS 的代码)。

打开您的 Web 检查器控制台并注意 CORS 通知:

MediaElementAudioSource outputs zeroes due to CORS access restrictions for http://publicwebserverdemo.hopto.org/publicAudio/audio.mp3

感谢您的帮助:)

// Create a new instance of an audio object and adjust some of its properties
var audio = new Audio();
audio.src = 'http://publicwebserverdemo.hopto.org/publicAudio/audio.mp3';
audio.controls = true;
audio.loop = true;
audio.autoplay = true;
// Establish all variables that your Analyser will use
var canvas, ctx, source, context, analyser, fbc_array, bars, bar_x, bar_width, bar_height;
// Initialize the MP3 player after the page loads all of its HTML into the window
window.addEventListener("load", initMp3Player, false);
function initMp3Player()
	document.getElementById('audio_box').appendChild(audio);
	context = new webkitAudioContext(); // AudioContext object instance
	analyser = context.createAnalyser(); // AnalyserNode method
	canvas = document.getElementById('analyser_render');
	ctx = canvas.getContext('2d');
	// Re-route audio playback into the processing graph of the AudioContext
	source = context.createMediaElementSource(audio); 
	source.connect(analyser);
	analyser.connect(context.destination);
	frameLooper();

// frameLooper() animates any style of graphics you wish to the audio frequency
// Looping at the default frame rate that the browser provides(approx. 60 FPS)
function frameLooper()
	window.webkitRequestAnimationFrame(frameLooper);
	fbc_array = new Uint8Array(analyser.frequencyBinCount);
	analyser.getByteFrequencyData(fbc_array);
	ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear the canvas
	ctx.fillStyle = '#00CCFF'; // Color of the bars
	bars = 100;
	for (var i = 0; i < bars; i++) 
		bar_x = i * 3;
		bar_width = 2;
		bar_height = -(fbc_array[i] / 2);
		//  fillRect( x, y, width, height ) // Explanation of the parameters below
		ctx.fillRect(bar_x, canvas.height, bar_width, bar_height);
	
div#mp3_player width:500px; height:60px; background:#000; padding:5px; margin:50px auto; 
div#mp3_player > div > audio  width:500px; background:#000; float:left;  
div#mp3_player > canvas width:500px; height:30px; background:#002D3C; float:left; 
<div id="mp3_player">
  <div id="audio_box"></div>
  <canvas id="analyser_render"></canvas>
</div>

【问题讨论】:

This 似乎工作得很好,没有 CORS 限制。 是的,但是当我尝试使用音频分析仪获取频率/分贝信息时,我得到了 CORS 错误; MediaElementAudioSource outputs zeroes due to CORS access restrictions for http://publicwebserverdemo.hopto.org/publicAudio/audio.mp3。音频可以加载和“收听”就好了。问题是当我使用音频分析器获取音频信息时,我得到了 CORS 错误。 您通常将Header add 指令与您希望允许的 URL 添加到一起。 有趣!以前没看到。谢谢!等我完成生物作业后我会试一试:) 【参考方案1】:

经过数小时的研究和试验,我最终弄清楚了该怎么做。在撰写本文时,在线可用的文档很少,显示如何执行此操作。我希望人们会觉得这很有帮助。

了解 CORS:

CORS 是 Cross Origin Resoruce Sharing 的首字母缩写。 CORS 是用于在不同域之间共享/访问信息的新标准。 CORS 基本上是一种使用服务器标头告诉浏览器是否允许访问或与另一台服务器上的特定文件交互的方法。虽然您可以加载大多数内容而无需担心 CORS(如图像、音频、视频甚至其他网页),但与这些元素的交互需要服务器的特殊许可。就我而言,我试图从另一台服务器上的音频文件中读取频率。在这种情况下,我试图访问需要服务器上特殊标头授权的信息。

浏览器支持非常好,但如果您支持旧版浏览器,您可能希望在此处查看支持表 (http://caniuse.com/#search=cors)

我做了什么:

启用 .htaccess 的使用(我认为您可以使用 apache2.conf 或 000-default.conf 完成同样的事情,但 .htaccess 文件更容易编辑和维护)。这些文件用于设置 apache 的标头和设置。我通过转到 /etc/apache2/ 并编辑了 apache2.conf 启用了 .htaccess 文件的使用。确保您的条目与以下内容匹配:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

我在 .htaccess 文件中设置了标题以允许从 Codepen 进行访问。在与您要共享的文件相同的目录中创建一个 .htaccess 文件。您只想分享您必须分享的内容,否则您可能会产生安全风险。在 .htaccess 文件中输入:

Header set Access-Control-Allow-Origin: "http://websiteWantingToAccessYourFile.com"

保存您的文件。 使用此命令重新启动 Apache sudo service apache2 restart。如果有提示,请输入密码。 通过音频,我添加了crossorigin="anonymous" 属性。您可以在此处 (https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) 阅读有关 CORS 设置(跨域)的更多信息,我想您可以使用 ajax 和 xhr 请求进行设置。 不同版本的 apache 可能有不同的文件名或标准。检查以确保这对于您的版本是正确的。我在我的 Ubuntu 服务器上运行 Apache 2.4.18。

请告诉我这是否可以改进。我花了很多时间来理解这一点,但我不是专家。在 cmets 中发布您的建议。 :)

【讨论】:

以上是关于linux中,如何设置文件夹的访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

linux和unix系统日志文件一般设置的访问权限为

文件系统管理 之 文件和目录访问权限设置

怎样为局域网用户分配共享权限并设置访问密码

linux中ACL访问权限设置

Shell的运行原理以及Linux当中的权限问题

linux 用户怎么设置权限,只能访问指定的目录,其他目录都不允许访问