chmod въпрос

9 отговора 268 прегледа
#1

chmod въпрос

Здравейте.
Имам следният проблем:
Трябва да сменя параметрите на доректория (на linux платформа), така че да мога да пиша в нея. chmod сменя параметрите на файл. А за директория не намерих нищо в дебелите книги.
Ако някой знае как став и има желание да сподели ще съм много благодарен.

Отговор
в отговор на пaяk #2

Re: chmod въпрос

I kva e razlikata m/u file i direktoria v UNIX-a???

Отговор
в отговор на u3yMeH #3

Re: chmod въпрос

Явно трябва да съп по-подробен.

на:
chmod("../config", 0777);

отговорът е:
Warning: chmod(): Operation not permitted in sh_init.php on line 33

Мислех, че така трябва да работи, но...

Защо.

Отговор
в отговор на пaяk #4

Re: chmod въпрос

Като отговор на въпроса намерих това:

Just a little hint. I was once adwised to set the 'sticky bit', i.e. use 1777 as chmod-value. Do NOT do this if you don't have root privileges. When 'sticky bit' is set ONLY the fileuser can delete it afterwards, typically 'httpd' or something like that in case of an upload-script for example. I was unaware of this and actually had to make a script for deleting these files as I could not do this from ftp/ssh even though I did have read/write/execute access to both files and folders. Use simply '0777' or similiar.

Не знам дали това истинският отговор. Ако някой има коментар, моля да го напише.

Отговор
в отговор на Пaяk #5

Re: chmod въпрос

това като гледам ми се струва, че имаш следният проблем - искаш да смениш правата на директория ../config

ще се опитам да обясня с конкретен пример

например го правиш от файл test.php, който е в директория

/var/www/test.php
искаш да смениш правата на директория
../config
което я прави
/var/config
за да може да го направиш това - трябва да имаш права да пипаш в директория
/var
т.е. потребителя на уеб сървера примерно www-data трябва да има права за писане в /var

ако нещо не е ясно или аз бъркам продължавай да питаш ;-))

Отговор
в отговор на Пaяk #6

Re: chmod въпрос

Когато викаш цхмод от пхп, операцияра се прави от името на веб сървъра, който обикновено работи като нободи. Ако нободи не може да сменя съответните права или трябва да пуснеш сървъра под друго име или да си смениш правата от консолата.

Не насилвайте нещата - вземете по-голям чук.
Отговор
в отговор на phpGuru #7

е добре де, а защо....

значи правя следното:

if(!is_dir("dir/".$dir)){
____mkdir("dir/".$dir, 0777);
____chmod("dir/".$dir, 0755);
}

директорията се създвава успешно, ама нъц - не мога да пиша в нея...
не ми позволява да и сменям правата.

пробвах и с други стойности в chmod ама пак - нъц

понеже създавам директории с цифри - да речем 1,2,3......
създадох на ръка първите десетина и така реших проблема като за начало...ама не мисля, че това е правилния подход....

[линк]
Отговор
в отговор на phpGuru #8

Re: chmod въпрос

Благодаря.
В този случай имам следните директории:
main
main/install
main/config

и трябва да направя така, че в main/config да се записва файл main/config/config.php, който да може да се променя, т.е. да мога да пиша внего по всяко време.
Не мога да измисля начин да го направя само със скрипт от main/install.
Вече ми се струва, че е невъзможно, защото при upload-a се създават директории и файлове без права за запиз.

Още веднаж благодаря.

Отговор
в отговор на Topбaлaн #9

Re: е добре де, а защо....

в интерес на истината и аз имах такъв проблем, който беше свързан с safe_mode
сега не мога да се сетя дори къде беше това, но си спомням, че успях да го реша с safe_mode_gid 1 и няколко други трикове с груповите права

при теб дали е така? и ако е така разгледай с кой потребител и с какви права на практика се е създала директорията (ако все още имаш възможност де :-)) ако не се лъжа тогава подозирах бъг в php-то

Отговор
в отговор на phpGuru #10

Re: е добре де, а защо....

ами лошото в моя случай е, че познанията ми за РНР и линукс са чисто теоретични...
написал съм само едно нещо, и когато нещо не става, както е описано в хелпа, почвам да се шашкам...))
пък от друга страна и без това прекалявам с тормоза, който нанасям на администратора.....

така, че може да се приеме, че за сега нямам възможност......)))
ако ти остава свободно време понякога - обади се на ICQ моя номер е 44441095

[линк]
Отговор