php - değişen dosya izinleri

5 Cevap php

Ben chmod kullanarak benim sunucuda dosya izinlerini değiştiren bir PHP komut dosyası var. Ben (kimse gibi) tarayıcı üzerinden ve (adı gibi) bir cron job ile hem komut dosyasını çalıştırmak için muktedir istiyorum.

Bu dosyanın yalnızca sahibi izinleri değiştirebilirsiniz doğru mudur? Yani Ben bir cron job ile bir dosya oluşturun ve izinlerini ayarlamak durumunda tarayıcıdan komut çalıştırırken, ben daha sonra bu izinleri değiştiremiyorum?

Bu lütfen yuvarlak herhangi bir yolu var mı? Sil (bağlantısını kesmek) ve komut ne olursa olsun kullanıcı olarak çalıştığı gibi dosyayı yeniden oluşturmak? Ya kimse gibi bir cron job ile bir php komut dosyası çalıştıran bir yolu var mı? / Username olarak tarayıcı üzerinden?

Amaç dosya izinlerini değiştirerek görüntüleri kamuya görüntülenebilir ya da yapmak mümkün değildir.

5 Cevap

Çözüm 1:, kullanıcı ve cron kullanıcı için hem bir grup oluşturun, yeni grup için her bir kullanıcı eklemek, hem kullanıcıların okuma ve dosyaya (chmod g+ rw dosya) yazmak için erişim sağlar. (Sonraki çözüme sonra daha güvenli).

Çözüm 2: Bunu yapmanın kolay yolu herkes (chmod a + rw dosya) tarafından dosya okunabilir ve yazılabilir hale getirmek için bu etkiye sahip olacaktır.

Ama üretim kullanım için tavsiye etmem.

Eğer komut bir kullanıcı adı veya şifre koymadan yapabilirsiniz.

Crontab sudo web sunucusu olarak çalışan kullanıcı olarak komut dosyasını çalıştırır. Lütfen Aşağıdaki örnekte, ben kimsenin kullanıcı kullanacağız.

0 12 *** (sudo-u kimse php. / Yourscript.php)

"Kimse" kullanıcı (hem de "apache" gibi) kullanıcılar normalde giriş ayrıcalıklara sahip değilsiniz unutmayın. Bu sudo uçbirimlerden olmadan komut dosyalarını çalıştırmak için izin isteyebilir. "Sudo: Özür, sudo'yu çalıştırmak için bir tty olmalı" Senin gibi bir hata alırsanız, bu bileceksiniz

Bu visudo komutu kullanarak "Varsayılanları requiretty" satırını yorumlama yapılabilir sağlanabiliyor. Sudo herhangi bir değişiklik olduğu gibi, bu değişiklik ile gelebilir herhangi bir yan etki aramak isteyebilirsiniz.

Evet, dosyanın yalnızca sahibi yapabilirsiniz. Sizin seçenekleri sunucusu üzerindeki denetim ne tür bağlıdır.

Eğer sunucu üzerinde yeterince kontrol varsa, suPHP'ye yerine Apache mod_php'yi kullanabilirsiniz. Bu şekilde, PHP komut komut sahibi kullanıcı olarak çalıştırmak olacaktır, ve bir PHP komut dosyası tarafından oluşturulan herhangi bir dosya, aynı kullanıcıya ait olacaktır.

Eğer çok kontrol (ortak paylaşılan web örneğin, barındırma) o yoksa, sen Joomla'nın FTP yaklaşım gibi bir şey kullanabilirsiniz. FTP desteği Joomla açıldığında, bu FTP kullanarak tüm dosya manipülasyon yapar. Bu şekilde, FTP kullanıcı olarak aynı izinlere sahip dosyaları oluşturabilir ya da işleyebilirsiniz.

Böyle bir şey (hata işleme yollamıştı):

$ftp = ftp_connect('localhost');
ftp_login($ftp, 'username', 'password');
ftp_chdir($ftp, '/root/to/website');
ftp_chmod($ftp, 0644, 'filename.ext');
ftp_close($ftp);

Dosyanın sadece sahibi bunu yapabilirsiniz, ben bunun yerine 'kimse' olarak cronjob çalışan öneriyoruz.

Sahibi ya da süper-kullanıcı (veya eşdeğeri) genellikle sadece