2009-09-27 8 views
13

Jestem nowicjuszem w php, mysql. Napisałem skrypt hello.php, który próbuję skopiować do katalogu/var/www (a później chcę go otworzyć przez przeglądarkę internetową). Problem z tym samym jest taki, że nie wolno mi zapisywać/zapisywać żadnych plików w/var/www, mimo że jestem rootem. Próbowałem realizacji czynności w this pytanie, ale otrzymuję następujący błąd podczas przetwarzania trzecią linięJak rozwiązać/odmówić/skopiować/odmówić zapisu?

find /var/www/ -type f -exec chmod g+w '{}' ';' 
chmod: changing permissions of `/var/www/index.html': Operation not permitted 

wiem symlink jest również opcja. Chciałbym móc pisać/kopiować pliki bezpośrednio do katalogu/var/www /.

Jakieś sugestie co się dzieje źle?

+0

Czy jesteś pewien, * * robisz to jako root? – timdev

+0

@tim: yes, im postive. – shubster

+0

Czy jesteś pewien, że jesteś pewien? Wklej * wszystko *. –

Odpowiedz

13

it'matter uprawnień * UNIX zyskać acces korzeniowe, na przykład wpisując

sudo su 
[then type your password] 

i starają się robić to, co trzeba zrobić

+2

dzięki pracują dla mnie! –

0

Po pierwsze, nie ma to nic wspólnego z php. Jest to problem z pozwoleniem unix. Musisz zalogować się jako superużytkownik (sudo/su) i wpisz swoje hasło, a następnie spróbuj tego polecenia.

$ su 
(type password) 
\# your command 

$ sudo command 
$ (type password) 

Może to również pomóc, jeśli rzeczywiście określiłeś używany system operacyjny.

+0

@meder: im using ubuntu. i próbowałem używać polecenia $ sudo, o którym wspomniał phoebus. – shubster

+0

Czy pojawi się monit o podanie hasła? A może kopiowanie wklejania * WSZYSTKO * próbowałeś? –

+0

Czy udostępniasz komputer? Czy Twój użytkownik jest skonfigurowany jako sudoer? –

0
sudo cp hello.php /var/www/ 

Jaką moc wyjściową otrzymujesz?

+0

@phoebus: dane wyjściowe to 'cp: nie można utworzyć zwykłego pliku '/var/www/hello.php': Odmowa uprawnień ' – shubster

+0

cd/var ls -l Jakie są uprawnienia przy www? – phoebus

+0

to dwie komendy, cd/var i ls -l. Z jakiego systemu operacyjnego korzystasz? – phoebus

12

jesteś w środowisku develpment? dlaczego po prostu nie można wykonać tej czynności za pomocą użytkownika, aby nie było możliwe jego zapisanie.

+5

Dobry pomysł, ale poprawna składnia to '# chown -R newuser: newgroup/var/www' http://en.wikipedia.org/wiki/Chown – unpossible

4

Czy masz plik o numerze /var/www o nazwie hello.php, który ma już uprawnienia? Może system nie może zastąpić pliku?

Chociaż dostęp administratora powinien zastępować dowolnego użytkownika w systemie.

Czy próbowałeś zastosować uprawnienia do folderu www?

Jeśli można to zrobić, wykonaj następujące czynności:

sudo chmod -R 777 /var/www

wtedy zrobić:

sudo cp hello.php /var/www

zalecam robić tylko to, jeśli wiesz, w 100%, że to jest w porządku ustaw uprawnienia dla całego folderu www. Według odgłosów, działasz na własnym serwerze produkcyjnym, ponieważ większość serwerów hostingowych na żywo/współdzielonych jest skonfigurowana tak, że folder www nie znajduje się w folderze/var (zamiast tego znajduje się w katalogu domowym użytkownika).

Bądź BARDZO ostrożny podczas robienia czegokolwiek z prefiksem sudo, możesz poważnie uszkodzić swój system, jeśli zrobisz to źle.

+0

To działa dla mnie.! – AndroidHacker

0

Przede wszystkim musisz zalogować się jako root, a następnie przejść do katalogu/etc i wykonać niektóre polecenia, które podano poniżej.

[[email protected]~]# cd /etc 
[[email protected] /etc]# vi sudoers 

i wprowadzić tę linię na końcu

kundan ALL=NOPASSWD: ALL 

gdzie kundan jest nazwa użytkownika i niż zapisać go. a następnie spróbuj przenieść plik i dodać sudo jako przedrostek do polecenia, które chcesz wykonać:

sudo cp hello.txt /home/rahul/program/ 

gdzie Rahul jest drugi użytkownik w tym samym serwerze.

+1

Witamy w StackOverflow. W swoich odpowiedziach nie używaj krótkich notatek tekstowych (takich jak "u" dla "ty"). Zwróć też uwagę, że wcięcie tekstu o 4 spacje daje wyróżniony zapis notacji komputerowej. –

0

Po prostu musisz napisać sudo zamiast su.

Następnie po prostu skopiuj plik PHP do var/www/ directory.

Następnie przejdź do przeglądarki i napisz lokalny host/test.php lub dowolną nazwę pliku .php.

1

Wystąpił podobny problem dzisiaj. Nie widzę tutaj mojej poprawki, więc pomyślałem, że ją udostępnię.

Katalog główny nie może usunąć pliku.

Zrobiłem moje badania. Okazuje się, że jest coś niezmiennego.

# lsattr /path/file 
----i-------- /path/file 
# 

Ten skonfigurowany bit zapobiega nawet modyfikacji lub usunięciu go przez użytkownika root.

Aby usunąć to zrobiłem:

# chattr -i /path/file 

Potem mogłem rm plik.

Na odwrót, jest to fajna sztuczka, aby wiedzieć, czy masz coś, czego chcesz uniknąć.

:)

7

wykonać następujące polecenie

sudo setfacl -R -m u:<user_name>:rwx /var/www 

To zmieni uprawnienia katalogu html, dzięki czemu można przesyłać, pobierać i usuwać pliki lub katalogi