我已经创建了一个文件夹,在我打开该文件夹内的文件之后就写了一个文件.碰巧之后,我尝试打开文件,但我没有权限,因此我必须手动更改它.
/* str1 has tha name of the folder */
/* str the bytes I want to write in the file inside the folder*/
...
mkdir(str1,0777);
if (filefd < 0) {
strncpy(auxstr, str, MAX_MSG + 1);
strcat(str1,"\\");
strcat(str1, auxstr);
filefd = open (str1, O_RDWR | O_CREAT | O_TRUNC);
nbytes -= (strlen(str) + 1);
memcpy(auxstr, &str[strlen(str)+1], nbytes);
memcpy(str, auxstr, nbytes);
}
/*write to the file */
if ((nwritten = write(filefd, str, nbytes)) != nbytes) {
printf ("can't write on file\n");
break; …Run Code Online (Sandbox Code Playgroud) 我试图让一个PHP文件写入驻留在同一文件夹中的文件.无论是php文件和它试图写有自己的权限设置为777的文件(其Linux服务器)以及它们所在的文件夹.每当我叫fopen()函数与"W"或"W +"模式,该函数只返回false.它在我学校的网络服务器上,所以我无法获得root权限,可以将文件的所有者更改为与apache相同的用户.有谁知道什么是错的?
更新:作为测试,我使用此代码:
$handle = fopen("test.txt", 'w');
if($handle === FALSE)
echo "\nfailed";
else
echo "\nsuccess";
fclose($handle);
Run Code Online (Sandbox Code Playgroud)
现在启用错误报告的输出是:
Warning: fopen(test.txt) [function.fopen]: failed to open stream: Permission denied in /<snip>/public_html/test.php on line 58
failed
Warning: fclose(): supplied argument is not a valid stream resource in /<snip>/public_html/test.php on line 63
Run Code Online (Sandbox Code Playgroud)
上面是我从php网站上为fileperms()函数复制的一些代码,它检查文本文件的权限,并报告-rwxrwxrwx
相关文件的ls -al输出是
ls -al *test*
-rwxrwxrwx 1 mag5 30 1475 Dec 9 00:02 test.php*
-rwxrwxrwx 1 mag5 30 8 Dec 8 14:54 test.txt*
Run Code Online (Sandbox Code Playgroud)
我也不确定这是否重要,但我的学校使用的是一个名为Andrew File系统的东西(http://en.wikipedia.org/wiki/Andrew_File_System).
是否可以使用一个小的.NET页面来设置它所在的服务器上的某些文件夹的文件夹权限?可用于此的代码或对象是什么?我在Windows Server 2003上.
基本上我想用GET或POST命中页面,让它运行并检查和/或更新文件夹的权限.
通常,我尝试将我的文件夹设置为拥有权限775,但是某些web主机拒绝让PHP写入或将文件移动到任何文件夹,除非它具有权限777(可能是open_dir或安全模式).
有没有办法防止从这些文件夹中运行任何PHP文件,以防恶意PHP脚本上传到那里?
使用Objective-C,如何为所有用户提供/获取读取文件的权限?
我需要的东西,具有相同的效果chmod a-r和chmod a+r.
谢谢!
我正在使用以下代码更改文件权限:
Runtime.getRuntime().exec("chmod 600 '/home/user/Desktop/file'");
Run Code Online (Sandbox Code Playgroud)
但它没有效果!代码执行ls -l /home/user/Desktop/file报告之前和之后:
-rw-rw-r-- 1 evir evir 7928 Jul 31 14:54 file
Run Code Online (Sandbox Code Playgroud)
问题是什么?
我正在尝试在32位Program Files文件夹中创建一个文件目录(文件夹),以存储用户将在程序中创建的数据.但是,当我尝试这样做时,它一直说访问被拒绝.反正是否允许程序访问32位程序文件文件夹并向其添加后续文件夹和文件?以下是我的代码,由于没有权限而产生运行时错误.
string mainDirectory=Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)+"\\UKC Trial Reporter Files";
if (!Directory.Exists(mainDirectory))
{
Directory.CreateDirectory(mainDirectory);
}
Run Code Online (Sandbox Code Playgroud) 似乎我把PERMS所创建的文件具有相同的权限 - rwx rx rx
我尝试了755和777,权限保持不变.
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/stat.h>
#define PERMS 0777
int main(int argc, char *argv[])
{
int createDescriptor;
char fileName[15]="Filename.txt";
if ((createDescriptor = creat(fileName, PERMS )) == -1)
{
printf("Error creating %s", fileName);
exit(EXIT_FAILURE);
}
if((close(createDescriptor))==-1)
{
write(2, "Error closing file.\n", 19);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试更改内部存储中Data文件夹内的文件夹的权限.我的设备已解锁并闪烁固件和Super SU for root.
使用Root Explorer(Pro),我允许Root访问.我也去了System分区的根目录并将它安装到RW.
但是,当我尝试更改内部存储甚至SD卡内的文件或文件夹的权限时,我收到以下错误. "权限更改未成功.请注意,某些文件系统不允许更改权限."
与不同的文件管理器探讨了一段时间.这是我尝试和观察到的.在这些步骤中,我使用ES文件资源管理器.
我接下来检查了这些选项可用的文件夹.这是我观察到的.
有什么问题?如何更改该文件夹的权限?
尽管我是目录的所有者(pi),但仍拒绝该权限
pi@raspberrypi:~/Desktop $ sudo ls -al
total 16
d-wx--x--x 3 pi pi 4096 Jan 12 11:30 .
drwxr-xr-x 21 pi pi 4096 Jan 12 11:28 ..
-rw-r--r-- 1 pi pi 82 Jan 11 16:13 cmd.txt
drwxr-xr-x 6 pi pi 4096 Jan 12 11:30 openvibe-2.0.0-src
pi@raspberrypi:~/Desktop $ ls
ls: cannot open directory '.': Permission denied
Run Code Online (Sandbox Code Playgroud)