คำถามติดแท็ก chmod

chmod ใช้ในการเปลี่ยนสิทธิ์ในการอ่านเขียนและดำเนินการกับไฟล์ มันสามารถเปลี่ยนบิตสิทธิ์เหล่านี้สำหรับเจ้าของไฟล์เจ้าของกลุ่มของไฟล์และทุกคน นอกจากนี้ยังสามารถเปลี่ยน 'การอนุญาต' ที่ลึกลับยิ่งขึ้น (แอตทริบิวต์, reall) เช่น set-user-ID, set-group-ID และบิตเหนียว

4
รับค่าตัวเลข chmod สำหรับไฟล์
ใน FreeBSD และใน Linux ฉันจะรับchmodค่าตัวเลขของไฟล์ได้อย่างไร ตัวอย่างเช่น644แทนที่จะเป็น-rw-r--r--? ฉันต้องการวิธีอัตโนมัติสำหรับสคริปต์ Bash
100 linux  freebsd  chmod 

5
ทำความเข้าใจเกี่ยวกับสิทธิ์ UNIX และประเภทไฟล์
ฉันไม่เคยได้chmodทำงานมาจนถึงทุกวันนี้ ฉันทำตามบทช่วยสอนที่อธิบายเรื่องสำคัญให้ฉัน ตัวอย่างเช่นฉันได้อ่านว่าคุณมีกลุ่มสิทธิ์ที่แตกต่างกันสามกลุ่ม: เจ้าของ ( u) กลุ่ม ( g) ทุกคน ( o) จากสามกลุ่มนี้ฉันรู้แล้วว่า: หากผู้ใช้เป็นเจ้าของไฟล์สิทธิ์ของผู้ใช้จะกำหนดการเข้าถึง หากกลุ่มของไฟล์เหมือนกันกับกลุ่มของผู้ใช้สิทธิ์กลุ่มจะกำหนดการเข้าถึง หากผู้ใช้ไม่ใช่เจ้าของไฟล์และไม่ได้อยู่ในกลุ่มจะมีการใช้สิทธิ์อื่น ๆ ฉันได้เรียนรู้ด้วยว่าคุณได้รับอนุญาตดังต่อไปนี้: อ่าน ( r) เขียน ( w) ดำเนินการ ( x) ฉันสร้างไดเรกทอรีเพื่อทดสอบความรู้ที่ได้มาใหม่: mkdir test จากนั้นฉันทำแบบทดสอบ: chmod u+rwx test/ # drwx------ chmod g+rx test/ # drwxr-x--- chmod u-x test/ # drw-r-x--- หลังจากหลอกไประยะหนึ่งฉันคิดว่าในที่สุดฉันก็หยุดchmodและวิธีที่คุณตั้งค่าการอนุญาตโดยใช้คำสั่งนี้ แต่... ฉันยังมีคำถามสองสามข้อ: อะไรdที่เริ่มต้นยืน? …
68 linux  permissions  ls  chmod 

2
สิทธิ์ SSH การตั้งค่า Chmod?
ฉันต้องใช้ SSH บนเครื่องของฉันเพื่อเข้าถึงเว็บไซต์และฐานข้อมูล (ตั้งค่าลิงก์สัญลักษณ์ - แต่ฉันพูดนอกเรื่อง) ปัญหาต่อไปนี้: ฉันป้อนคำสั่ง: ssh-keygen -t dsa เพื่อสร้างคู่คีย์ dsa สาธารณะ / ส่วนตัว ฉันบันทึกไว้ในค่าเริ่มต้น ( /home/user/.ssh/id_dsa): และป้อน Enter วลีรหัสผ่านสองครั้ง จากนั้นฉันจะได้รับสิ่งนี้กลับมา: คำเตือน: ไฟล์ลับส่วนตัวที่ไม่มีการป้องกัน! การอนุญาต 0755 สำหรับ '/home/etc.ssh/id_rsa' นั้นเปิดเกินไป ขอแนะนำให้ผู้อื่นไม่สามารถเข้าถึงไฟล์กุญแจส่วนตัวของคุณได้ คีย์ส่วนตัวนี้จะถูกละเว้น สิทธิ์ที่ไม่ดี: เพิกเฉยคีย์: [จากนั้นเส้นทางไฟล์ใน VAR / LIB / บางแห่ง] ทีนี้เพื่อหลีกเลี่ยงสิ่งนี้ฉันก็ลอง - sudo chmod 600 ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa.pub …
63 ssh  chmod 


4
คำสั่ง 'chmod g + s'
สวัสดีฉันต้องการเข้าใจบทบาทของchmod g+sคำสั่งใน Unix ฉันอยากจะรู้ว่ามันทำอะไรในบริบทนี้: cd /home/canard; touch un; chgrp canard .; chmod g+s .; touch deux ; ฉันเข้าใจบทบาทคำสั่งทั้งหมดยกเว้นchmod g+sและฉันต้องการทราบความแตกต่างระหว่างไฟล์unและdeuxผลลัพธ์จากชุดคำสั่งนี้

1
เลขฐานแปด chmod แรกคืออะไรในค่าตัวเลขสี่หลักสำหรับ
บางครั้งฉันเห็นchmodคำสั่งที่ใช้เลขฐานแปดสี่หลักแทนที่จะเป็นสามหลัก - ตัวเลือกแรกคืออะไร ตัวอย่างเช่นchmod 777เทียบเท่ากับchmod a+rwx; คำสั่งเดียวกันchmod 2777คืออะไร
40 chmod 

9
ทำไมถึงใช้ `chmod 644` แทนที่จะเป็น 'chmod u = rw, go = r, …`?
ฉันได้ทำงานกับ * ระวังเมื่อสองสามปีที่ผ่านมาและสิ่งหนึ่งที่ฉันไม่สามารถใช้งานได้คือการอนุญาตเลขฐานแปดในรหัส มีเหตุผลอื่นนอกเหนือจากความยาวบรรทัดที่จะชอบchmod 644 ...มากกว่าchmod u=rw,go=r ...หรือไม่ PS: ฉันไม่ได้มองหาคำอธิบายของการอนุญาตแปดด้าน ฉันรู้ว่ามันทำงานอย่างไรและอธิบายได้ดีในคู่มือ ฉันถามว่าทำไมเลขฐานแปดถึงเป็นที่ต้องการมากกว่าแบบที่มนุษย์อ่านได้มากกว่า

3
สร้างไฟล์ในโฟลเดอร์: ปฏิเสธสิทธิ์
ฉันมีปัญหาในการคัดลอกไฟล์ไปยังไดเรกทอรีบน Ubuntu 12.04 ฉันสร้างไดเรกทอรีในโฮมไดเรกทอรีเพื่อให้เส้นทางที่ฉันต้องการคัดลอกคือ: /home/sixven/camp_sms/inputs แต่เมื่อ ini รันคำสั่งต่อไปนี้ใน terminal เพื่อสร้างไฟล์ตัวอย่างดังนี้ francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt touch: can not make `touch' on «test_file.txt»: permission denied ฉันไม่สามารถคัดลอกไฟล์โดยตรงในไดเรกทอรีนั้น ฉันจะกำหนดสิทธิ์ด้วยคำสั่งchown& chmodเพื่อคัดลอกไฟล์ได้อย่างไร ฉันไม่ทราบว่าจะใช้ผู้ใช้และกลุ่มใด
37 chmod  chown 

3
chmod + โหมดเงียบ + วิธีบังคับให้ออกรหัส 0 แม้มีข้อผิดพลาด
มันเป็นไปได้รัน chmod และละเว้นข้อผิดพลาดจากคำสั่ง ตัวอย่าง (หมายเหตุ file.txt ไม่แสดงเพื่อแสดงตัวอย่าง) เมื่อฉันพิมพ์ chmod 777 file.txt ฉันได้รับข้อผิดพลาดในผลลัพธ์ chmod: cannot access file.txt : no such file or directory ดังนั้นฉันจึงเพิ่มแฟล็ก -f ลงในคำสั่งดังต่อไปนี้: (file.txt ไม่มีอยู่เพื่อแสดงเคส) chmod -f 777 file.txt echo $? 1 แต่จากตัวอย่าง chmod ส่งคืน 1 โปรดแนะนำวิธีการบังคับให้คำสั่ง chmod ให้รหัสทางออก 0 ทั้งๆที่มีข้อผิดพลาด

4
เปลี่ยนการอนุญาตสำหรับลิงก์สัญลักษณ์
ฉันมี symlink ด้วยสิทธิ์เหล่านี้: lrwxrwxrwx 1 myuser myuser 38 Aug 18 00:36 npm -> ../lib/node_modules/npm/bin/npm-cli.js* symlink ตั้งอยู่ในไฟล์. tar.gz ตอนนี้เมื่อฉันคลายไฟล์เก็บถาวร tar.gz โดยใช้ maven symlink จะใช้ไม่ได้อีกต่อไป ฉันจึงพยายามสร้าง symlink ขึ้นใหม่ ก่อนอื่นฉันจะสร้าง symlink โดยใช้lnแต่ฉันจะตั้งค่าการอนุญาตเหมือนกับ symlink ดั้งเดิมได้อย่างไร?
37 symlink  chmod 

4
วิธีการกู้คืนจาก chmod -R 000 / bin?
และตอนนี้ฉันไม่สามารถย้อนกลับไป .. หรือใช้โปรแกรมระบบอื่น ๆ ของฉัน โชคดีที่มันอยู่บน VM ที่ฉันเล่นด้วย แต่มีวิธีแก้ไขปัญหานี้หรือไม่? ระบบนี้เป็น Ubuntu Server 12.10 ฉันพยายามที่จะรีสตาร์ทในโหมดการกู้คืนโชคไม่ดีที่ตอนนี้ฉันไม่สามารถบูตเข้าสู่ระบบได้เลยเนื่องจากการอนุญาตไม่อนุญาตบางโปรแกรมหลังจากความพร้อมใช้งานของ init-bottom เพื่อเรียกใช้ - ระบบเพิ่งแฮงค์ นี่คือสิ่งที่ฉันเห็น: Begin: Running /scripts/init-bottom ... done [ 37.062059] init: Failed to spawn friendly-recovery pre-start process: unable to execute: Permission denied [ 37.084744] init: Failed to spawn friendly-recovery post-stop process: unable to execute: …


3
จะสร้าง Samba share ที่สามารถเขียนได้จาก Windows โดยไม่ได้รับอนุญาต 777 อย่างไร
ฉันมีเส้นทางบนเครื่อง Linux (Debian 8) ซึ่งฉันต้องการแบ่งปันกับคอมพิวเตอร์ Samba 4 ไปยังคอมพิวเตอร์ Windows (Win7 และ 8 ในโดเมน) ในของsmb.confฉันฉันทำต่อไปนี้: [myshare] path = /path/to/share writeable = yes browseable = yes guest ok = yes public = yes ฉันมีสิทธิ์อ่านอย่างสมบูรณ์จาก Windows แต่เพื่อให้สามารถเข้าถึงการเขียนได้ฉันต้องทำchmod -R 777 /path/to/shareเพื่อให้สามารถเขียนได้จาก Windows สิ่งที่ฉันต้องการคือการเข้าถึงการเขียนจาก Windows /path/to/shareหลังจากที่ผมให้ข้อมูลประจำตัวของลินุกซ์ของเจ้าของลินุกซ์ ฉันได้ลองแล้ว: [myshare] path = /path/to/share writeable = yes browseable …


1
ทำให้สิทธิ์กลุ่มเหมือนกับการอนุญาตของผู้ใช้
ฉันต้องการตั้งค่าการอนุญาตกลุ่มสำหรับไฟล์และไดเรกทอรีย่อยทั้งหมดในไดเรกทอรีหลักบางอย่างให้ตั้งค่าสิทธิ์ผู้ใช้สำหรับไฟล์หรือไดเรกทอรีนั้น ตัวอย่างเช่นทุกอย่างภายใต้ /path/to/parentdir # Permissions before # Path Permissions /path/to/parentdir/file1 755 /path/to/parentdir/file2 644 /path/to/parentdir/file3 600 # Permissions after /path/to/parentdir/file1 775 /path/to/parentdir/file2 664 /path/to/parentdir/file3 660 ฉันหวังว่าจะมีวิธีง่ายๆในการทำเช่นนี้ด้วยคำสั่งเดียว ฉันสามารถคิดถึงวิธีการใช้สคริปต์ที่มีคำสั่งจำนวนมาก แต่รู้สึกว่าควรมีวิธีทำมันโดยตรง ขอบคุณล่วงหน้า!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.