আমি স্বল্প অনুমতি ব্যবহারকারীর সাথে একটি নোড.জেএস অ্যাপ্লিকেশন শুরু করার চেষ্টা করছি। আমার জানা সমস্ত ফাইলগুলি সঠিক ব্যবহারকারীর মালিকানাধীন এবং অনুমতিগুলি যথাযথভাবে সেট করা আছে। আমি এটি করার জন্য একটি স্ক্রিপ্ট ফাইল ব্যবহার করার চেষ্টা করছি। আমি এই কমান্ড দিয়ে স্ক্রিপ্ট আবেদন
sudo su - nodejs ./start-apps.sh
শেল স্ক্রিপ্ট অ্যাপ্লিকেশনটি শুরু করতে এই আদেশটি চালায় runs
cd "/home/nodejs/my-app"
npm start
npm start
এখানে নথিভুক্ত করা হয় । এটি মূলত প্যাকেজ.জসন ফাইলটি ব্যবহার করতে কমান্ডটি টানছে যা আমাদের অ্যাপ্লিকেশনটিতে এটির মতো দেখাচ্ছে:
// snip
"scripts": {
"start": "node-dev app"
},
এবং এটি ত্রুটিটি থুথু দেয়:
> my-app@0.1.0-build.100 start /home/nodejs/my-app
> node-dev app
sh: 1: node-dev: Permission denied
npm ERR! spicoli-authorization@0.1.0-build.100 start: `node-dev app`
npm ERR! Exit status 126
যে sh
বলার অপেক্ষা রাখে না করা এটি শেল কমান্ড থেকে ত্রুটি রিপোর্টিং এর বলে মনে হয়। আমি মনে করি না সমস্যাটি npm
নিজেই কমান্ডটি অ্যাক্সেস করছে, কারণ যদি এটি হয় তবে এনপিএম কমান্ড থেকে আউটপুট দেওয়ার আগে অনুমতি অস্বীকার করা হত। তবে কেবল এটি বাতিল করার জন্য, এখানে এনপিএম কমান্ডের অনুমতি রয়েছে:
$ sudo find / ! \( -type d \) -name npm -exec ls -lah {} \;
-rwxr-xr-x 1 root root 274 Nov 12 20:22 /usr/local/src/node-v0.10.22/deps/npm/bin/npm
-rwxr-xr-x 1 root root 274 Nov 12 20:22 /usr/local/lib/node_modules/npm/bin/npm
lrwxrwxrwx 1 root root 38 Jan 14 07:49 /usr/local/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js
দেখে মনে হচ্ছে প্রত্যেকেরই এটি কার্যকর করা উচিত।
এর node-dev
মতো দেখতে অনুমতিগুলি :
$ sudo find / ! \( -type d \) -name node-dev -exec ls -lah {} \;
-rwxr-xr-x 1 nodejs nodejs 193 Mar 3 2013 /home/nodejs/.npm/node-dev/2.1.4/package/bin/node-dev
-rw-r--r-- 1 nodejs nodejs 193 Mar 3 2013 /home/nodejs/spicoli-authorization/node_modules/node-dev/bin/node-dev
lrwxrwxrwx 1 root root 24 Jan 14 07:50 /home/nodejs/spicoli-authorization/node_modules/.bin/node-dev -> ../node-dev/bin/node-dev
আমি ইতিমধ্যে chown
লিঙ্কটি যুক্ত করার চেষ্টা করেছি nodejs:nodejs
, তবে স্ক্রিপ্টটি একই ত্রুটিটি অনুভব করে।
বাইনারি ফাইলগুলি দিয়ে আমি দেখছি না এমন কিছু ফাইলের অনুমতিের সমস্যা আছে? বা এটি একটি npm
/ node-dev
নির্দিষ্ট ত্রুটি?
chmod
একটি সিমিলিঙ্ক তৈরি করে বেশি কিছু জানতাম না , আমি কেবল মালিকানা পরিবর্তনের চেষ্টা করেছি। আমি এখনই মৃত্যুদণ্ড কার্যকর করার চেষ্টা করব - আমি বিশ্বাস করতে পারি না যে আমি এটি মিস করেছি। আমার ধারণা আমি ভাবছিলাম যে আমার.npm
ডিরেক্টরিতে থাকা অনুলিপিটি নিশ্চিতভাবে কার্যকর করা হবে। আমি কীভাবে এটি চেক করব তা ভাবতে পারি নি, কারণnode-dev
বিশ্বজুড়ে এনপিএম ইনস্টল করা হয়নি, সুতরাং বাশnode-dev
আদেশটি স্বীকৃতি দেয় না ; এনপিএম কেবল কোথায় এবং কী কল করতে হবে তা যাদুকরিভাবে চিত্রিত করে।