"/ Var / www" এ ফাইলগুলি সম্পাদনা করার এবং যুক্ত করার সহজ উপায় কী?


145

ওয়েব সার্ভারটি ইনস্টল করার পরে কোনও স্থানীয় ব্যবহারকারীকে স্থানীয় ওয়েব সার্ভার / var / www এ ফাইল এবং ডিরেক্টরিগুলি অনুলিপি করতে গ্রাফিক ইন্টারফেস ব্যবহার করতে সক্ষম হওয়ার সহজ উপায় রয়েছে is

আমি উবুন্টুতে নিজেকে প্রশাসনিক সুযোগসুবিধা দিয়েছি তবে এটি অনুলিপিগুলিকে অনুমতি দেয় না।




মার্কোস ররিজ জুনিয়র যা বলেছিলেন তা করার চেষ্টা করেছি। যখন মার্কোস লিখেছিলেন এবং আমার ব্যবহারকারীর নাম পরিবর্তন করেছিলাম তখন আমি অনুলিপি করে আটকালাম। তবে আমি এটিকে / ইত্যাদি / অ্যাপাচি 2 / সাইটগুলিতে সংরক্ষণ করতে পারি না কারণ এটি আমাকে সেই ফোল্ডারে সংরক্ষণ করতে দেয় না। ???

উত্তর:


222

আপনি যদি তার গোষ্ঠী দ্বারা / var / www রচনার যোগ্য করে থাকেন এবং ব্যবহারকারীকে দলে যোগ করেন তবে সেই ব্যবহারকারীকে সুডো ব্যবহার করতে হবে না। এটা চেষ্টা কর:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

তারপরে ব্যবহারকারীকে ঝামেলা ছাড়াই / var / www / ফাইলগুলি সম্পাদনা করতে সক্ষম হওয়া উচিত।

প্রথম লাইনটি ব্যবহারকারীকে www-ডেটা গ্রুপে যুক্ত করে, দ্বিতীয় লাইনটি কোনও বিশৃঙ্খল মালিকানাযুক্ত কোনও ফাইল সাফ করে, এবং তৃতীয়টি এটি তৈরি করে যাতে ডাব্লু-ডেটা গ্রুপের সদস্য থাকা সমস্ত ব্যবহারকারীরা সমস্ত ফাইল পড়তে এবং লিখতে পারেন প্রথমেই / var / WWW।

আপনার যদি <username>লগ আউট করার প্রয়োজন হয় তবে আপনার এই গ্রুপের সদস্যপদ কার্যকর হতে লগ ইন করতে হবে।


37
আমি এটি করি, আরও কয়েকটি টুইস্ট: sudo adduser <username> www-data; sudo chgrp -R www-data /var/www; sudo chmod -R g+rw /var/www; find /var/www -type d -print0 | sudo xargs -0 chmod g+s আপনার নতুন গ্রুপটি বেছে নিতে লগআউট এবং আবার লগইন করুন। আমি chmod g+sনতুন ফাইল ও ডিরেক্টরিগুলি গ্রুপের মালিককে (www-ডেটা) বাছাই করতে বাধ্য করব, তা নিশ্চিত করে আমার অনুমতিগুলি প্রচার-প্রবর্তন করে।
ডন ফকনার

15
@DonFaulkner নিরাপত্তার কারণে, এটি সম্ভবত ভালো রাখা /var/wwwরুটের মালিকানাধীন: রুট, তাই পরিবর্তে sudo chgrp -R www-data /var/wwwএটা ভালো হতে sudo chgrp -R www-data /var/www/*
ডেসমন্ড হিউম

2
অদ্ভুতভাবে যথেষ্ট, 3 টি কমান্ড চালানোর পরে, বাইনারি আইকনটি ব্যবহার করে আমার কয়েকটি সাব-ফোল্ডার এবং ফাইল (যেমন composer.jsonএবং LICENSE) প্রদর্শিত হবে। composer.jsonএকটি পাঠ্য সম্পাদকটিতে খোলার ফলে একটি ফাঁকা ফাইল দেখা যায় এবং সবচেয়ে খারাপটি হ'ল আমি কিছু সাব-ফোল্ডার ব্রাউজ করতে পারি না, এমনকি ডনফ্যালকনার পরামর্শ অনুযায়ী অতিরিক্ত কমান্ডটি চেষ্টা করেছিলাম এবং এখনও ভাগ্য নেই। আমি যদি টার্মিনালটিকে মূল হিসাবে ব্যবহার করি তবে যা কিছু করা উচিত তা হ'ল। কারও কোনও ধারণা আছে কেন এমন হয়?
অ্যালিক্স অ্যাক্সেল

5
@itsols আপনাকে কাজ করতে লগ আউট করতে হবে এবং তারপরে লগ ইন করতে হবে।
jini

1
@ ডনফৌলকনার - রুটের মালিকানাধীন ফাইলগুলি কীভাবে আক্রমণকারী ভেক্টর হতে পারে সে সম্পর্কে আপনার বিশদটি বোঝাতে কি মনে হবে? (আমি এই সমস্ত কিছুর জন্য নতুন এবং আমি বিভ্রান্ত হয়ে পড়েছি কারণ কেউ কেউ সন্দেহ-সংশয়, সুরক্ষার ভিত্তিতে মূল ভিত্তিটির পক্ষে ওঠে বলে মনে হয়, আবার অন্যরা দৃ ad়ভাবে বলে যে নিজের দ্বারা রুট নয়। )
অ্যান্ড্রু চিউং

25

আপনি করতে পারেন chown, যে change ownযে ফোল্ডার Er। এটি আপনাকে ফোল্ডারের ব্যবহারকারী এবং গোষ্ঠী পরিবর্তন করার অনুমতি দেবে, এতে আপনার ব্যবহারকারীকে এতে ফাইল যুক্ত / সরানোর অনুমতি দেবে। এটি করতে, yourusernameআপনার নামের সাথে প্রতিস্থাপন করুন এবং চালান:

sudo chown yourusername.users /var/www

এবং এটাই.


যাইহোক, আমি আমার হোম ফোল্ডারে একটি ভার্চুয়ালহোস্ট তৈরি করতে পছন্দ করি, এটি অনেক সহজ।

মূলত এটি আপনাকে যেকোন ফোল্ডারকে অ্যাপাচি সার্ভিং ফোল্ডার হিসাবে ব্যবহার করতে দেয়। এটি কীভাবে সহজ তা দেখানোর জন্য, ধরে নেওয়া যাক যে আপনার ব্যবহারকারীর নামটি ব্যবহারকারীর নাম এবং আপনি যে ফোল্ডারটি পরিবেশন করতে চান তা হ'ল / হোম / ব্যবহারকারীর নাম / www

mywebprojects/ Etc / apache2 / sistes- উপলক্ষে নিম্নলিখিত ফাইলটি (উদাহরণস্বরূপ ) তৈরি করে ব্যবহারকারীর নাম এবং ফোল্ডার পথের পরিবর্তে তৈরি করুন (মূলত কেবল কপি করুন এবং পেস্ট করুন এবং প্রতিস্থাপন এখানে পরিবর্তন করুন):

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    # CHANGE HERE
    DocumentRoot /home/username/www

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    # CHANGE HERE
    <Directory /home/username/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

এখন wwwফোল্ডারটি তৈরি করতে , একটি সাধারণ হ্যালো ওয়ার্ল্ড যুক্ত করতে, ডিফল্ট ওয়েবসাইট ( /var/www) অক্ষম করুন , আমাদের ওয়েবসাইট সক্ষম করুন mywebprojectsএবং অ্যাপাচি পুনরায় চালু করুন।

mkdir ~/www 
echo "<html><h1>Hello World</h1></html>" > ~/www/test.html
sudo a2dissite default #
sudo a2ensite mywebprojects
sudo service apache2 restart

এবং এটি, এখন আপনার যাওয়ার দরকার নেই /var/www, আপনি কেবল আপনার www(বা অন্যান্য প্রদত্ত) ফাইল যুক্ত করুন এবং এটি ইতিমধ্যে রয়েছে :) :)


আমি ঠিক কি করেছি। এর জন্য একটি প্লাস হ'ল ডিরেক্টরিটি একটি ভাগ করা ড্রাইভে পরিবর্তন করতে পারেন তাই উইন্ডোজ / ওএসএক্স বুট করার সময় সমস্ত ফাইল উপলব্ধ থাকবে।
জেসন

9

পদ্ধতি 1:

  • ALT+ টিপুন F2এবং গ্যাকসুডো নটিলাস প্রবেশ করুন এবং তারপরে রান ক্লিক করুন।

    বিকল্প পাঠ

  • এটি রুট বিস্তারের সাথে নটিলাস খুলবে।
  • গোটো ফাইলসিস্টেম var www এবং এখন আপনি আপনার ফাইলগুলি যুক্ত / অনুলিপি / পেস্ট করতে পারেন।

পদ্ধতি 2:

  • নটিলাস-গ্যাকসু ইনস্টল করুন নটিলাস-গ্যাকসু ইনস্টল করুন
  • nautilus -qডান ক্লিক মেনু রিফ্রেশ করার জন্য আপনার টার্মিনাল টাইপ ইনস্টল ।
  • আপনার নটিলাস ডান-ক্লিক মেনুতে এখন আপনি 'প্রশাসক হিসাবে খুলুন' এন্ট্রি পাবেন entry
  • যখন আপনাকে কোনও রুট অনুমতি সহ কোনও ফাইল খুলতে হবে, আপনাকে কেবল সেই ফাইল / ফোল্ডারে ডান ক্লিক করতে হবে এবং 'প্রশাসক হিসাবে খুলুন' নির্বাচন করতে হবে।
  • এটি রুট অনুমতি সহ সেই ফাইল / ফোল্ডারটি খুলবে।

    বিকল্প পাঠ


1
এটি অবশ্যই যাওয়ার সঠিক উপায়! আমি অবাক হয়েছি কেন এটি নির্বাচিত উত্তর ছিল না। অন্যান্য পদ্ধতিগুলির অনুমতি নিয়ে জগাখিচির সাথে জড়িত এবং আমি এটি করে আমার সিস্টেমকে ঝুঁকিপূর্ণ করব না। আপনার উত্তরের জন্য +1।
অলস

5
@ আইটেমগুলি: আমি সম্পূর্ণরূপে একমত নই - আপনি অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতিটি সঠিকভাবে কনফিগার করার পরিবর্তে নটিলাসকে আপনার ফাইল সিস্টেমে সম্পূর্ণ রুট অ্যাক্সেস প্রদান করে আপনার সিস্টেমটিকে ঝুঁকিপূর্ণ করেন /var/www[delete]কীটির এক দুর্ঘটনাক্রমে ধাক্কা এবং আপনি একটি বুট না করা সিস্টেমের সাথে শেষ করতে পারেন।
নাথান ওসমান

@ জর্জেডিসন তবে এটি কেবল অনুমতি সেট করার জন্য। এবং এটি হয়ে যাওয়ার পরে, আমরা নটিলাসটি বন্ধ করি এবং যথারীতি কাজ করি। এটা কি আসলেই খারাপ? এখানে আমার অজ্ঞতার জন্য আমাকে ক্ষমা করুন। সংস্করণ ৫.x থেকে উবুন্টু ব্যবহারকারী হওয়া সত্ত্বেও, এখনও আমি একটি উন্নয়ন মেশিন স্থাপন করা বেশ চ্যালেঞ্জের সাথে খুঁজে পেয়েছি এবং এটি করার কোনও পরিষ্কার উপায় নেই বলে মনে হচ্ছে (আমার পক্ষে, কমপক্ষে ...
Itol

@ আইটেমগুলি: এই উত্তরের দ্বিতীয় ভাগটি পছন্দসই পদ্ধতি এবং এটি আমি ব্যবহার করি।
নাথান ওসমান

6

এটি sudo usermod -a -G developers $usernameএসিএল ব্যবহারের মতো সহজ হতে পারে ।

এটি শুরু করতে সামান্য কাজ লাগে। এটি কমপক্ষে উবুন্টু ১০.১০ এর জন্য। প্রথমে / etc / fstab- এ acl বিকল্পের সাহায্যে ফাইল সিস্টেমগুলি মাউন্ট করুন।

sudo vim /etc/fstab

ইউআইডিড = এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স / এক্সট 4 ডিফল্ট, এসিএল 0 1

sudo mount -o remount,acl /

তারপরে একটি গোষ্ঠী তৈরি করুন যাতে কোনও ব্যবহারকারী এই উদ্দেশ্যে থাকতে পারে।

sudo groupadd developers
sudo usermod -a -G developers $username

বিকাশকারীদের গোষ্ঠীর সদস্য হওয়ার জন্য ব্যবহারকারীর লগ আউট এবং আবার প্রয়োজন in

অবশ্যই, আপনি যদি চান / var / www ডিরেক্টরিতে সামগ্রী চান তবে এটি করবেন না, তবে এটি শুরু করার জন্য কেবল সেট আপের চিত্রণ দিয়ে:

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root:developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

তারপরে একটি কনফিগার ফাইলে "/ var / www" এর সাথে "/ var / www / public" এর সাথে রেফারেন্সগুলি প্রতিস্থাপন করুন এবং পুনরায় লোড করুন।

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

যদি আমরা ফাইলটি তৈরি করা ব্যবহারকারী ব্যতীত সকলের থেকে মুছুন এবং নতুন নাম সীমাবদ্ধ রাখতে চাই:

sudo chmod +t /var/www/public

এইভাবে, যদি আমরা অ্যাপাচি ডকুমেন্টের মূলের বাইরে থাকা ফ্রেমওয়ার্কগুলির জন্য ডিরেক্টরি তৈরি করতে বা সার্ভার-লিখনযোগ্য ডিরেক্টরিগুলি তৈরি করতে চাই তবে এটি এখনও সহজ।

অ্যাপাচি-লিখনযোগ্য লগ ডিরেক্টরি:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

অ্যাপাচি-পঠনযোগ্য লাইব্রেরি ডিরেক্টরি:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs

দ্য UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxলাইনটি কী হতে পারে তা আপনি ব্যাখ্যা করতে পারেন ? এটি কি আক্ষরিক যুক্ত করার অর্থ বা ব্যবহারকারীটি লাইনটি খুঁজে পেতে এবং পিছনে বিকল্পগুলি সম্পাদনা করতে চায়?
ম্যাডমাইক

কেন আপনি এই পদক্ষেপটি এড়িয়ে sudo rm -rf /var/wwwযাবেন না। এটি সত্যিই প্রয়োজনীয় বলে মনে হচ্ছে না।
ম্যাডমাইক

@ ম্যাডমাইক এটি হেক্সাডেসিমাল সংখ্যার সাথে ফাইল করা উচিত। আপনার বিভিন্ন পার্টিশনটির লেবেল কী রয়েছে তা জানতে, চালানsudo blkid
আজেন্ডেল

1
@ আজেন্দেলে আমি মন্তব্যটি লেখার সময় এটি কীভাবে উত্তরটি উন্নত করা যায় সে সম্পর্কে পরামর্শ হিসাবে বোঝানো হয়েছিল। আজ আমি জানি আমার আরও সরাসরি এই পরামর্শ দেওয়া উচিত। লাইক: দয়া করে একটি দিয়ে কীভাবে UUID=xxxxপার্টটি পূরণ করবেন তা যুক্ত করুন sudo blkid
ম্যাডমাইক

0

করার সহজ উপায় হ'ল নীচে দেওয়া পদক্ষেপগুলি অনুসরণ করুন: -

  1. Alt+ Ctrl+ Tএবং টার্মিনাল টিপুন এবং sudo -sআপনার পাসওয়ার্ড দিয়ে টাইপ এবং লগইন হবে ।
  2. এখন আপনি হিসাবে লগ ইন করেছেন root
  3. এখন টাইপ করুন nautilusএবং এটি রুট হিসাবে আপনার জন্য হোম ফোল্ডারটি খুলবে। সুতরাং এখন আপনি সহজেই ফাইলগুলি সম্পাদনা করতে পারেন এবং যা খুশি করতে পারেন।

আশাকরি এটা সাহায্য করবে. :)


1
নটিলাস মত গ্রাফিকাল অ্যাপ্লিকেশন নির্মাণ ও সঞ্চালনের জন্য উপযুক্ত একটি রুট শেল পেতে, sudo -iবাঞ্ছনীয় sudo -sজন্য একই কারণে sudo -Hবাঞ্ছনীয় sudoএকটি একক গ্রাফিকাল অ্যাপ্লিকেশন চালানোর জন্য। ( sudo -sপুনরায় সেট করা হয় না HOME, সুতরাং ব্যবহারকারী তাদের হোম ডিরেক্টরিতে কনফিগারেশন ফাইলগুলি পেতে পারে যা সেগুলির মধ্যে অন্তর্ভুক্ত হওয়া উচিত তবে পরিবর্তে মূলের অন্তর্ভুক্ত ))
এলিয়াহ কাগন

আমি রুট অ্যাকাউন্টটি ব্যবহার করে বিশেষত সার্ভারগুলিতে দৃ strongly়ভাবে নিরুৎসাহিত করি । sudo পর্যাপ্ত অ্যাক্সেস নিয়ন্ত্রণের চেয়েও বেশি সরবরাহ করে যখন সায়সডমিনকে নৈপুণ্য তৈরি করার নীতিটি ডিভস এবং ডিজাইনারদের তাদের (এবং তাদের সংস্থাগুলি!) পায়ে গুলি করার জন্য কোনও হ্যান্ডগান হস্তান্তর করা হয় না
শায়নে

0

/var/www folderএই রুটের মালিকানাধীন .. এই ফোল্ডারে ফাইলগুলি পরিবর্তন করার জন্য আপনাকে নিজের মালিকানাটি নিজের ইউজারনেমে পরিবর্তন করতে হবে। এর জন্য আপনি নিম্নলিখিত কমান্ডগুলি ব্যবহার করে দেখতে পারেন ..

sudo -i // রুট কনসোলে পরিবর্তন করতে

sudo chown -R <username> <path> // for eg. sudo chown -R scott /var/www/html (scott is the username, -R indicates recrusive)

এখন এই ফোল্ডারের মালিকানা /var/www/html willব্যবহারকারীকে বরাদ্দ করা হবে scott। এখন স্কট ফাইলগুলি এই ফোল্ডারে অনুলিপি / মুভ করতে পারে।


-1

আপনি যদি সার্ভার সংস্করণ ব্যবহার করেন তবে ওয়েবমিন চেষ্টা করুন। এটিতে দুর্দান্ত ওয়েব ইউআই এবং ফাইল ম্যানেজার রয়েছে। হয় বা ফাইলজিলা


4
"আপনি যদি সার্ভার সংস্করণ ব্যবহার করছেন" তবে আপনি কি ব্যাখ্যা করতে পারেন? উবুন্টু সার্ভারে ইনস্টল করা যে কোনও প্যাকেজ উবুন্টুর ডেস্কটপ সংস্করণে ইনস্টল করা যেতে পারে।
এলিয়াহ কাগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.