File permissions question - file

I just switched my site's server from Windows to Linux, and am finally able to control file permissions from my ftp. So, seeing that all permissions were 705 by default (and not wanting just anyone to have permission to execute), I went and changed everything to 744.
Now, gif and jpg links don't work, pdf download links don't work, php links don't load, and mov files don't play. Setting things back doesn't seem to help. Even setting to 777 gets me nowhere.
Any ideas on what might be going wrong? I've been googling file permissions all day (solved that problem with the Linux switch, which now bred a new problem), and I don't think anything has escaped my attention.
Thanks!

Try to set owner permissions. Apache runs usually under www-user or some other sandbox user, so you wanna try to use chgrp, chown an chmod.

Solved. I was under the mistaken impression that group and public did not need x. On the contrary, x is used to read the files. I set the relevant folders to 755, and everything worked. Why it didn't work when I had all set to 777, I don't know. Lack of sleep, probably.
Thanks!

Related

Failed to update database becase the database is read only

I have created a winform application and programmatically trying to attach the database when an application runs first time. Unfortunately in windows 7 i always got an error. Please view the screenshot below it tells the whole story. Now my question is that how can i get rid from this error, is there any way to automatically give required rights on the folder where the application installs?. I want to permanently resolve this error and need smooth attachment. Anyone please help.
Please view the error below. Thanks in advance
Try ALTER DATABASE MyDatabaseName SET READ_WRITE
More informations here on This forum
Edit
This was asked by someone else
If you put your database in your own subdirectory of the directory returned by Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData then the user will have read/write access to it.
See Environment.SpecialFolder Enumeration to determine if a different location would be more suitable, e.g. ApplicationData if you need it to roam or CommonApplicationData if you need all users of the computer to use it.
Edit: I found a slightly more extensive version of this answer: Where Should I Store my Data and Configuration Files if I Target Multiple OS Versions?, please also see the articles it links to.
I know this answer is somehow late, but I believe people always face the same problems so my case is worth to be shared.
tl;dr = Change the permission of deployed files manually or using icacls command.
Actually I use InstallForge for packing and deploying my application(s).
No matter what setup creator is used, when the application is installed to a non-system folder ( e.g. D:\ ) the program works perfectly and the database is readable/writable.
Whereas when the application is installed in [Program Files] folder or [Program Files (X86)] folder, Windows takes a preventive security measurement and sets file permission to be only [Read] and [Read & Execute].
I think Windows Vista and later versions of Windows have this behavior.
You can check that by right-clicking the installed file and going to properties then Security tab.
The files I installed on D:\ had Full-Control permission while, as I mentioned, the ones on C:\ had only Read & Execute permissions.
You won't notice the difference when you install a normal program on C:\ because you might not be writing data on a file or a database. But in case of database deployment, the file has to be writable.
Finally, the solution for this case was telling InstallForge to change file permissions at the end of the installation using icacls commands :
icacls "C:\MyApp\MyDB.mdf" /Grant Everyone:F
icacls "C:\MyApp\MyDB_log.ldf" /Grant Everyone:F
In my case, it is okay to give everyone full-control on the database files, but you might need a customized solution for your case so please refer to :
http://ss64.com/nt/icacls.html
You can tell your setup creator to run those commands, or you can put them together in a batch file and run it after the installation.

File permission with Class File

i would like to ask , because in some scenario, some class.php are not being run. even if it is in full permission,
sample.
i have a linux pc. and every time i create class.php file. i modified it like :
sudo chmod -Rf 777 file.class.php
then after that. it works on my localhost.
BUT when i transfer the file using FileZilla to other server its not running.
even if it has Full Permission 777 in File Zilla.
Can anyone explain whats the reason behind this ?
coz i cant explain to my superior why its that running but in my localhost/Pc its running.
and they have the same File and codes inside it.
please help me..
thank you very much.
It's possible that your server automatically modifies the permissions of the file when you upload it even when you have it set to something in filezilla. I know that Windows with NTFS can sometimes strip permissions off of a file depending on how you copy/move the file. This might be what is happening with your linux computer.

fatal error: call to undefined function mssql_connect() on mac osx lion 10.7.4

So, I can execute php scripts from the terminal, but when the script tries to connect to the database using mssql_connect(), I run into this problem. I have gone through almost all of the sources available for this problem. But, it seems like I have something different. I'm fairly new to Mac, but I have followed most of the steps like uncommenting
#LoadModule php5_module libexec/apache2/libphp5.so
from the httpd.conf file, turning on the web sharing under system preferences. However, I'm not sure if I need to uncomment php_mysql/(i).dll from the php.ini file as well, since I'm using ms sql and not my sql. Also, I do not seem to have php_mssql70.dll like it was suggested in one of the forums I ran into during my search. But, there are 2 lines in my .ini file that read
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll \\Yes. They both read the same thing.
Can someone point me in the right direction please? I'm not sure if the information I gave is sufficient. But yes, I think I have read and tried to emulate 90% of the forums that claim to solve this problem.
NOTE: This post seemed quite close to what I am trying, given that the user is a noob at this. I haven't really set up PHP, Apache, etc by myself since I have only worked with Php and MySQL in school till now.
How to install/use php on mac v 10.7.2
Since you're not on Windows you need to ignore anyone mentioning anything containing '*.dll'.
Look for extensions.ini which should in the same folder as php.ini, or in a folder very close to it, and you should be able to enable it from there, it should be a .so file. If it is not already there then the extension is not installed at all. I have no idea how to add PHP extensions on OSX, though. :I

log4net writing to file. How to open up permissions

I was happily using log4net with my WPF program on an XP machine and happily using a fileAppender FileAppender to write log messages to c:\log.txt. All was well. However, it does not work on a Windows 7 machine. No error or anything, just that the file isn't created, much less logged to. A little research reveals that it's a file permissions problem (UAC) with Windows 7, and in fact it works if I run the executable as administrator. It doesn't work if I just click on it (even though I'm logged on as administrator) and it doesn't work when I launch from Visual Studio.
Questions:
1. Can someone point me to an example where I ask for permission to write to one and only one file (C:\log.txt). I've seen some examples of where the app.config is configured to ask that the whole program is run with admin privileges. This seems like overkill but I guess it would work.
2. Is there as better way to send the information to a log file? After all, perhaps C: does not exist on user machine. I think I recall the idea of a "user partition" in Windows 7, but whatever I do has to work on XP and Vista.
Thanks a ton,
Dave
You should not be trying to write directly to the root folder. Under windows 7, you will either have to run as administrator or disable UAC for that to work and neither are recommended.
Instead you can write to a folder in the 'application data' area
If you are using a .config file to configure log, you can use something like
<file value="${ALLUSERSPROFILE}\CompanyName\ProductName\Log.txt" />
or
<file value="${APPDATA}\CompanyName\ProductName\Log.txt" />
depending on whether you want the log files to be specific to a user or not.
(Obviously you replace CompanyName and ProductName with your own details).
This should work on Xp/Vista/W7.
You have 3 options in my eyes:
like mentioned always run your app as admin altough thats not a brilliant solution
Use the local path of the executing app to store your log - I always prefer this method as I always know where my logs are ( AppDomain.CurrentDomain.BaseDirectory will help you)
Use "My Documents" or some similar special folders - a quick google gives us: special folders
I hope this helps.

Cannot delete, a file with that name may already exist

This is starting to vex me. I recently decided to clear out my FTP, and stumbled across an old Wordpress install I forgot I had (oh yes, very security conscious me). Anyway, for some reason deleting the directory failed so I investigated to see what was causing the blockage and I've narrowed it down to a file in wp-content.
Now when I try to delete this file I can get two errors. I've tried in Windowx Explorer (FTP) and the Web Control Panel's File Manager. Here's some error shots:
As you can see my File manager thinks the file is a Symbolic Link. While it scares me that
my web server is host to an obviously religoious artifact I'm also heavily confused by the situation.
I've tried renaming the file.
I've refreshed the FTP view.
I've tried moving the file to another dir (which worked, no success on deletion though).
I've tried editing the file and then deletion.
And I'm at a loss. Is there a special way to delete SymLinks? I've never heard of them, until now.
edit
Oho Windows you really are a magician of sorts. I decided to take a look at my FTP via command prompt and guess what? The file doesn't exist. Whether ftp ignores symlinks I don't know but I'm about to give up :P
First of all, try emailing your webhost either for SSH-access or to remove the symlink for you.
If you get SSH-access, use:
unlink index.php
Or if neither works: Create a PHP file there (for instance remove.php) that contains:
<?php unlink("./index.php") ?>
Then open that file in your browser, afterwards remove the remove.php file.

Resources