在Windows64中使用下面的代码下载和执行文件时,我遇到了一个奇怪的错误。错误是我总是得到拒绝的访问。请注意,此代码在Linux中运行良好,并且当我使用Window资源管理器手动设置文件的完全权限时,我可以执行它(我不知道为什么,因为我的代码已经设置了文件的完全权限)。
#open url
u = urllib2.urlopen(download_url)
#create and write to a local file
with open(filename, 'wb') as f:
block_sz = 8192
while True:
Linux文件系统似乎具有层次分明的微妙之处,我偶然发现:
我有兴趣编辑这个文件:
[user@box ~]$ ls -l /a/b/c/foo.bar
-rw-rwxr-x 1 user user 144529 Jan 26 2018 /a/b/c/foo.bar
它看起来应该是用户user写的-真的吗?但是,当我试图在vim中编辑该文件时,我会收到一个"W10: Warning: Changing a readonly file“警告。
我知道文件可写性依赖于其包含文件夹的权限。我认为包含的文件夹需要执行权限-真的吗?我假设所需的目录权限也会一直扩展到/ -
用于man hier的Linux文件系统层次结构文档( /usr/bin )说:
/usr/bin
This is the primary directory for executable programs.
Most programs executed by normal users which are not
needed for booting or for repairing the system and which
are not installed locally should be placed in this
directory.
我发现我可以写(比方说,复制一个文件到)一个只读目录。也就是说,带有...Attributes = FileAttributes.ReadOnly.I的目录甚至可以更改其名称。我发现唯一不能做的就是删除它。这真的是ReadOnly唯一能阻止的事情吗?
编辑:
下面是代码:(目录为空)。
(new DirectoryInfo(path)).Attributes = FileAttributes.ReadOnly;
Directory.Delete(path);
它引发一个Access to the path 'c:\... is denied.异常。
但是,在将ReadOnly更改为No
出于我在这里提出的另一个问题的原因,我想从根shell中清除我的Linux中的xserver-xorg-v包。我得到以下错误:dpkg -P xserver-xorg-v dpkg: error: unable to access dpkg status area: Read-only file system
什么是命令来找出这是在哪个文件系统,并使该文件系统不是只读/我如何清除这个东西?
在安装docker-compose和码头之后:
NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"
执行时:
sudo docker-compose -version
它返回:
Error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
它应返回:
docker-compose version 1.25.0-rc2, buil