2009-09-27 26 views
13

Tôi là một newbie trong php, mysql. Tôi đã viết một kịch bản hello.php, mà tôi đang cố gắng sao chép vào thư mục/var/www (và sau đó sẽ muốn mở nó thông qua trình duyệt web). Vấn đề với cùng là tôi không được phép lưu/ghi bất kỳ tập tin trong/var/www mặc dù tôi là gốc. Tôi đã cố gắng thực hiện các bước trong this câu hỏi, nhưng tôi nhận được lỗi sau khi tôi xử lý dòng thứ baLàm thế nào để giải quyết/var/www sao chép/ghi cho phép từ chối?

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

tôi biết liên kết tượng trưng cũng là một lựa chọn. Tôi muốn có thể ghi/sao chép tập tin trực tiếp vào thư mục/var/www /.

Bất kỳ đề xuất nào về những gì đang xảy ra?

+0

bạn * chắc chắn * bạn đang làm điều này như là người chủ? – timdev

+0

@tim: yes, im postive. – shubster

+0

Bạn có chắc chắn rằng bạn chắc chắn? Dán * mọi thứ *. –

Trả lời

13

it'matter các điều khoản * unix, đạt acces gốc, ví dụ bằng cách gõ

sudo su 
[then type your password] 

và cố gắng làm những gì bạn phải làm

+2

cảm ơn công trình cho tôi! –

0

Trước hết, điều này không liên quan gì đến php. Đây là sự cố cấp phép unix. Bạn cần phải đăng nhập như một superuser (sudo/su) và gõ mật khẩu của bạn, sau đó thử lệnh đó.

$ su 
(type password) 
\# your command 

$ sudo command 
$ (type password) 

Nó cũng có thể hữu ích nếu bạn thực sự chỉ định hệ điều hành bạn sử dụng.

+0

@meder: im sử dụng ubuntu. và tôi đã thử sử dụng lệnh $ sudo như được đề cập bởi phoebus. – shubster

+0

Bạn có được nhắc nhập mật khẩu không? Làm thế nào về sao chép dán * tất cả mọi thứ * bạn đã thử? –

+0

Bạn có chia sẻ máy tính không? Thiết lập người dùng của bạn có phải là sudoer không? –

0
sudo cp hello.php /var/www/ 

Bạn nhận được kết quả gì?

+0

@phoebus: đầu ra là 'cp: không thể tạo tệp thông thường '/var/www/hello.php': Quyền bị từ chối ' – shubster

+0

cd/var ls -l các quyền bên cạnh www là gì? – phoebus

+0

đó là hai lệnh, cd/var và ls -l. Ngoài ra, bạn đang sử dụng hệ điều hành nào? – phoebus

12

là bạn trong một môi trường develpment? tại sao không làm

chown -R user.group /var/www 

để bạn có thể viết thư cho người dùng của mình.

+5

Ý tưởng hay, nhưng cú pháp đúng là '# chown -R newuser: newgroup/var/www' http://en.wikipedia.org/wiki/Chown – unpossible

4

Bạn có tệp nào trong số /var/www được gọi là hello.php đã có quyền trên đó không? Có lẽ hệ thống không thể thay thế tệp?

Mặc dù quyền truy cập root sẽ thay thế bất kỳ người dùng nào trên hệ thống.

Bạn đã thử áp dụng quyền đối với thư mục www?

Nếu bạn có thể làm điều này, hãy thử như sau:

sudo chmod -R 777 /var/www

sau đó làm:

sudo cp hello.php /var/www

Tôi chỉ khuyên bạn nên làm điều này nếu bạn biết 100% rằng nó là ok để đặt quyền trên toàn bộ thư mục www. Bằng âm thanh của nó, bạn đang chạy trên máy chủ sản xuất của riêng bạn vì hầu hết các máy chủ lưu trữ trực tiếp/chia sẻ được thiết lập sao cho thư mục www không nằm trong thư mục/var (thay vào đó là thư mục chính của người dùng).

Hãy cẩn thận khi thực hiện bất kỳ điều gì với tiền tố sudo, bạn có thể làm hỏng nghiêm trọng hệ thống của mình nếu bạn làm sai.

+0

Điều này phù hợp với tôi.! – AndroidHacker

0

Trước hết, bạn cần phải đăng nhập với tư cách là người chủ và hơn là vào thư mục/etc và thực hiện một số lệnh được đưa ra dưới đây.

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

và nhập dòng này vào cuối

kundan ALL=NOPASSWD: ALL 

nơi kundan là tên người dùng và hơn lưu nó. và sau đó cố gắng để chuyển các tập tin và thêm sudo như một tiền tố để các lệnh mà bạn muốn thực hiện:

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

nơi Rahul là người dùng thứ hai trong cùng một máy chủ.

+1

Chào mừng bạn đến với StackOverflow. Vui lòng không sử dụng ký pháp nhắn tin dạng ngắn (chẳng hạn như 'u' cho 'bạn') trong câu trả lời của bạn. Cũng lưu ý cách văn bản thụt lề bằng 4 dấu cách cho ra ký hiệu phông chữ máy tính được đánh dấu. –

0

Bạn chỉ cần viết sudo thay vì su.

Sau đó, chỉ cần sao chép tệp PHP vào var/www/ directory.

Sau đó truy cập trình duyệt và viết địa chỉ host/test.php hoặc bất kỳ tên tệp .php nào.

1

Đã xảy ra sự cố tương tự ngay hôm nay. Không thấy bản sửa lỗi của tôi được liệt kê ở đây, vì vậy tôi nghĩ tôi sẽ chia sẻ.

Gốc không thể xóa tệp.

Tôi đã nghiên cứu. Hóa ra có cái gì đó được gọi là một bit bất biến.

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

Bit này đang được định cấu hình ngăn không cho root thậm chí sửa đổi/xóa nó.

Để loại bỏ tôi này đã làm:

# chattr -i /path/file 

Sau đó tôi có thể rm file.

Ngược lại, đó là một thủ thuật gọn gàng để biết bạn có thứ gì đó mà bạn muốn giữ không cho đi.

:)

7

Thực hiện lệnh sau

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

Nó sẽ thay đổi quyền của thư mục html để bạn có thể tải lên, tải về và xóa các tập tin hoặc thư mục

Các vấn đề liên quan