سلام و خسته نباشید خدمت دوستان حرفه ای
تازه به اوبونتو مهاجرت کردم و اطلاعات زیادی ازش نمیدونم من هر جای System Files خودم که میخوام فایلی رو مثل مورد بالا کپی کنم یا کلاْ هر تغییری که بدم میگه premission denied و میخوام که دسترسیم رو به فایل های درست کنم میگه که
you are not the owner, so you cannot change the premission.
خواهشاْ راهنمایی کنین هیچ فایلی رو نمیتونم نصب کنم
سلام دوست عزیز،
هر فایلی تو سیستمهای یونیکس و شبهیونیکس (لینوکس) به یه مالک (owner) و یه گروه (group) تعلق داره (که owner فایل میتونه اون رو تغییر بده؛ با دستور chown). اگر هم ls -l هم بزنید میتونید owner و group هر فایل یا فولدر رو ببینید. خروجی ls -l چیزی شبیه به اینه:
-rw-r--r-- 1 cartoonist users 44K Mar 29 23:31 my_file
این خروجی نشون میده که فایل my_file متعلق به کاربر cartoonistه و متعلق به گروه users. به علاوه، دسترسی به یک فایل از سه منظر قابل تصوره: یک، اینکه owner فایل بخواد به اون فایل دسترسی داشته باشه، دو، کاربری که متعلق به گروهیست که فایل به اون گروه تعلق داره؛ مثلاً در اینجا کاربر smith که مثلاً متعلق به گروه users هست. و سوم کاربری که نه owner فایله و نه متعلق به گروه مربوط هست. فرض کنید به این کاربران حالت سوم بگیم others.
به هر فایل یه permission تخصیص داده میشه که نشون میده که هر یک از این سه کاربر (owner, group, others) اجازهی انجام چه نوع عملیاتی را دارند. این عملیات شامل خواندن (read)، نوشتن (write) و اجرا (execute)ه. یکی از راههای نمایش این permission به صورت رشتهی rwx rwx rwxه که سه تای اول permission مالک فایل، سه تای دوم برای group و سه تای سوم برای others. اگه به خروجی ls بالا نگاه کنید، اولین قسمت خط، permission رو برای فایل my_file نشون میده که به این صورته: -rw-r--r-- این به این معنیه که مالک فایل اجازهی خواندن و نوشتن دارد ولی اجازهی اجرا ندارد (در صورتی که نیاز به اجرا باشد کاربر cartoonist چون مالک فایل است میتواند این permission را به rwx برای خودش تغییر دهد). کاربران متعلق به گروه users و همچنین others فقط اجازهی خواندن فایل را دارند.
در هر عملیاتی بر روی فایل یا فولدر که با permission آن فولدر یا آن فایل مطابقت نداشته باشد با خطای permission denied روبرو میشوید. در فایلسیستم سیستمهای لینوکس به جز فولدر /home/user/ بقیه نیاز به دسترسیهای بالاتر (مثل root) دارند زیرا فولدرهای سیستمی هستند و فقط admin سیستم اجازه تغییر این آدرسها را دارد. بنابراین عملیات نصب برنامه یا کپی فایل در فولدرهای سیستمی را با کاربر root یا با دستور sudo (در صورتی که user شما sudoer است) اجرا کنید.
با دستور su شما میتوانید root شوید (در این صورت پسورد root از شما خواسته میشود) و با دستور sudo قبل از هر دستوری که اجازهی دسترسی ندارید میتوانید به فایلهای سیستمی دسترسی پیدا کنید. مثلاً:
sudo cp apt-fast /usr/local/bin/
پس از اجرای این دستور، پسورد userای که login کردهاید از شما خواسته میشود (برعکس su).
فقط یه نکته: permission و ownership فایلها و فولدرهای سیستمی را تغییر ندهید. در صورت اعمال تغییر، کافیه با کاربر با دسترسی بالاتر (مثل root) تغییرات رو انجام بدید.
یه نکتهی دیگه: ترجیح اینه که اینجور کارها رو با terminal انجام بدید. ولی اگر میخواید به صورت گرافیکی فایلها رو کپی کنید یا تغییر دهید file explorer (مثل nautilus یا dolphin) یا ویرایشگر خودتون رو با sudo اجرا کنید و کارهاتون رو به صورت گرافیکی انجام بدید. مثلاً:
sudo gedit /path/to/your/file
موفق باشید!