রুট ছাড়া প্রোগ্রাম্যাটিকভাবে নেটওয়ার্ক সেটিংস পরিবর্তন করুন


1

আমি dhcp, আইপি ঠিকানার মতো নেটওয়ার্ক কনফিগারেশনগুলি পরিবর্তন করতে চাই এবং তাই প্রোগ্রাম্যাটিকভাবে।

কিন্তু যা আমি চাই না, আমার অ্যাপ্লিকেশনটি রুট হিসাবে চালানো। তাই আমার প্রশ্ন হলঃ এটি সমাধান করার একটি সাধারণ পদ্ধতি কী হবে? এটা কি সম্ভব?

অন্য কোনো অধিকার অর্জন না করে এমন কোন গোষ্ঠীকে তা করার অনুমতি দেওয়া হয়? অথবা আমি কনফিগ ফাইলগুলিকে একটি বিশেষ গোষ্ঠীতে 'চাউন করবো' এবং সেই গোষ্ঠীতে ব্যবহারকারী যুক্ত করব?

এই সম্পর্কিত (যদি সেটি বন্ধ থাকে তবে আমাকে বলুন এবং আমি আরেকটি প্রশ্ন খুলব): লক্ষ্য একটি এমবেডেড ডিভাইস এবং অ্যাপ্লিকেশন ব্যবহারকারী দ্বারা অ্যাক্সেসযোগ্য একমাত্র হওয়া উচিত। কোন ভাল (সেরা) অনুশীলন আছে? আমি যে অ্যাপ্লিকেশন জন্য একটি বিশেষ ব্যবহারকারী তৈরি করা উচিত। কোন ইঙ্গিত প্রশংসা করা হয়।

উত্তর:


1

আপনি আপনার প্রোগ্রামে ক্ষমতা সেট করতে পারে। এটি সম্পূর্ণরূপে চালানোর প্রয়োজন ছাড়া এটি বিশেষাধিকারযুক্ত কাজ করতে অনুমতি দেবে root। এখানে প্রশ্ন ক্ষমতা আছে CAP_NET_ADMIN:

CAP_NET_ADMIN
    Perform various network-related operations:
     * interface configuration;
     * administration of IP firewall, masquerading, and accounting;
     * modify routing tables;
     * bind to any address for transparent proxying;
     * set type-of-service (TOS)
     * clear driver statistics;
     * set promiscuous mode;
     * enabling multicasting;
     * use  setsockopt(2)  to set the following socket options: SO_DEBUG, SO_MARK,
       SO_PRIORITY (for a priority outside the range 0 to 6), SO_RCVBUFFORCE,  and
       SO_SNDBUFFORCE.

আপনি ক্ষমতা উপর আরও তথ্য পাবেন capabilities(7) এবং setcap(8) manpages।

এটি আরও সুরক্ষিত করার জন্য, যদি এই প্রোগ্রামটি চালাতে সক্ষম ব্যবহারকারীদের একটি নির্দিষ্ট উপসেট প্রয়োজন হয় তবে আপনি সেই ব্যবহারকারীদের একটি গোষ্ঠীতে রাখতে পারেন, chgrp এই গ্রুপ এবং আপনার প্রোগ্রাম chmod এটা 0750


এটা আমার কাছে আকর্ষণীয় হতে পারে। আপভোট যথেষ্ট খ্যাতি নেই, দুঃখিত।
exilit

আমি শেয়ারকৃত বস্তুর হ্যান্ডলিং সম্পর্কে আগ্রহী। ম্যানুয়াল শুধুমাত্র থ্রেড সম্পর্কে কথা বলা হয়। তাই কি আমি সঠিক যে একটি এসও এর ক্ষমতা সেটিং নির্বাহ কোডে কোন প্রভাব নেই? যতদূর আমি বুঝতে পারি যে শেয়ারকৃত বস্তুর কোডটি থ্রেড থেকে উত্তরাধিকারী ক্ষমতাগুলির সাথে কার্যকর করা হয় যার মধ্যে বস্তুটি কার্যকর করা হয়, তাই না?
exilit

আমি ক্ষমতা এক্সিকিউটেবল উপর শুধুমাত্র প্রভাব মনে। কঠিন শব্দ, hrm ... প্রধান () ফাংশন সঙ্গে যারা জিনিস। ;)
Andreas Wiese

তাই একটি ভাগ করা বস্তু "প্রধান () ফাংশন দিয়ে জিনিস" :) থেকে ক্ষমতা উত্তরাধিকারী হবে?
exilit

যতদূর আমি দেখতে পারেন ... হ্যাঁ।
Andreas Wiese

1

আপনি যদি আপনার কম্পিউটারে NetworkManager ব্যবহার করেন তবে আপনি এটি ব্যবহার করতে পারেন এনএম-cli

nmcli NetworkManager নিয়ন্ত্রণের জন্য একটি কমান্ড-লাইন সরঞ্জাম   পেয়ে          তার অবস্থা। এটি এনএম-অ্যাপলেট বা অন্য একটি প্রতিস্থাপন হিসাবে বোঝানো হয় না          অনুরূপ ক্লায়েন্ট। বরং এটি একটি পরিপূরক উপযোগ          প্রোগ্রাম। প্রধান nmcli এর ব্যবহার সার্ভারে, হেডলেস মেশিনে বা          শুধু কমান্ড লাইন পছন্দ যারা ক্ষমতা ব্যবহারকারীদের জন্য।

   The use cases comprise:

   --  Initscripts: ifup/ifdown can utilize NetworkManager via nmcli
       instead of having to manage connections itself and possible
       interfere with NetworkManager.

   --  Servers, headless machines: No GUI is available; then nmcli is used
       to talk directly to NetworkManager and control only system-wide
       connections.

   --  User sessions: For this case, nmcli can talk to nm-applet to find
       user connections.  It can still talk directly to NetworkManager for
       manipulating these connections.  As nmcli doesn't have direct
       access to user configuration data in GConf, nm-applet handles that
       itself.  That may, for example, cause the applet to pop up keyring
       dialogs when secrets are needed.

0

আপনার টার্গেট ডিভাইসটি যদি এটি সমর্থন করে তবে সেটুড-মেকানিজমটি যাওয়ার উপায় হতে পারে

http://en.wikipedia.org/wiki/Setuid

কিছু প্রোগ্রামের রুট বিশেষাধিকার দরকার এবং সেট্যুডের সাথে আপনি যা করেন তা হল এক্সিকিউটেবল ফাইলটি রুট সম্পর্কিত এবং সেটুড-বিট সেট রয়েছে, তাই অন্য ব্যবহারকারী এটি কার্যকর করলে এক্সিকিউটেবলটি রুট সুবিধাগুলির সাথে চালিত হয়।

কিন্তু যে নোট

সম্ভাব্য নিরাপত্তা সমস্যাগুলির কারণে, এক্সিকিউটেবল শেল স্ক্রিপ্টগুলিতে প্রয়োগ করার সময় অনেক অপারেটিং সিস্টেম সেট্যুড বৈশিষ্ট্যটি উপেক্ষা করে।


ধন্যবাদ. কিন্তু আমি ইতিমধ্যে সেট্যুড সম্পর্কে চিন্তা করেছি এবং এটি আমার জন্য একটি বিকল্প নয় কারণ আমি অন্য প্রোগ্রামটি চালাতে চাই না। সে ক্ষেত্রে আমি সহজেই সেটুড বিট সেট দিয়ে আইপি বা আইফোনগিগ ব্যবহার করতে পারি
exilit
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.