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

สิทธิ์เป็นวิธี Unix ในการควบคุมการเข้าถึงทรัพยากรเช่นไฟล์ไดเรกทอรีและอุปกรณ์และอาจมีการระบุสำหรับเจ้าของกลุ่มหรือผู้ใช้ทั้งหมด

3
ฉันจะทำให้ไฟล์ไม่สามารถแก้ไขได้อย่างไร
ในขณะที่เข้าสู่ระบบฉันสามารถทำสิ่งต่อไปนี้: mkdir foo touch foo/bar chmod 400 foo/bar chmod 500 foo จากนั้นฉันสามารถเปิดเป็นกลุ่ม (ไม่เป็นroot) แก้ไขbarบังคับให้เขียนด้วยw!และไฟล์จะถูกแก้ไข ฉันจะทำให้ระบบปฏิบัติการไม่อนุญาตให้แก้ไขไฟล์ได้อย่างไร? อัพเดท 02 มี.ค. 2560 chmod 500 foo เป็นปลาเฮอริ่งแดง: สิทธิ์ในการเขียนในไดเรกทอรีไม่มีส่วนเกี่ยวข้องกับความสามารถในการปรับเปลี่ยนเนื้อหาของไฟล์ - เฉพาะความสามารถในการสร้างและลบไฟล์ chmod 400 foo/barในความเป็นจริงจะป้องกันเนื้อหาของไฟล์จากการเปลี่ยนแปลง แต่ไม่ได้ป้องกันการอนุญาตของไฟล์จากการเปลี่ยนแปลง - เจ้าของไฟล์สามารถเปลี่ยนแปลงการอนุญาตของไฟล์ได้ตลอดเวลา (สมมติว่าพวกเขาสามารถเข้าถึงไฟล์ได้เช่นเรียกใช้งานการอนุญาตในไดเรกทอรีบรรพบุรุษทั้งหมด) ในความเป็นจริง strace (1) แสดงให้เห็นว่านี่คือสิ่งที่กลุ่ม (7.4.576 Debian Jessie) กำลังทำอยู่ - vim เรียก chmod (2) เพื่อเพิ่มสิทธิ์การเขียนสำหรับเจ้าของไฟล์ชั่วคราวแก้ไขไฟล์แล้วเรียก chmod ( 2) …

13
ฉันสามารถสร้าง * super * super-user เพื่อที่ฉันจะได้มีผู้ใช้ที่สามารถปฏิเสธการรูทได้หรือไม่?
ฉันคิดว่าอาจเป็นประโยชน์ที่จะมีผู้ใช้ที่มีสิทธิ์สูงกว่าผู้ใช้รูท คุณจะเห็นว่าฉันต้องการเก็บกิจกรรมทั้งหมดและสิทธิ์ผู้ใช้รูทที่มีอยู่เกือบทั้งหมดอย่างที่เป็นอยู่ในตอนนี้ อย่างไรก็ตามฉันต้องการความสามารถในการปฏิเสธสิทธิ์ในการรูทกรณีที่แยกได้เป็นกรณี ๆ ไป ข้อดีอย่างหนึ่งของการทำเช่นนี้จะทำให้ฉันสามารถป้องกันไม่ให้มีการติดตั้งไฟล์ที่ไม่ต้องการในระหว่างการอัพเดต นี่เป็นเพียงตัวอย่างหนึ่งของความได้เปรียบที่เป็นไปได้ เนื่องจากการอัปเดต apt-get นั้นดำเนินการโดยรูทหรือด้วยสิทธิ์ sudo apt-get จึงมีความสามารถในการแทนที่ไฟล์ที่ไม่ต้องการในระหว่างการอัพเดต หากฉันสามารถปฏิเสธสิทธิพิเศษเหล่านี้ให้กับไฟล์เหล่านี้ได้ฉันสามารถกำหนดให้เป็นลิงค์ไปยัง/dev/nullหรืออาจมีไฟล์ตัวยึดตำแหน่งว่างที่อาจมีสิทธิ์ที่จะปฏิเสธไม่ให้แทนที่ไฟล์ในระหว่างการอัปเดต นอกจากนี้ฉันไม่สามารถช่วยได้ แต่ได้รับการเตือนเกี่ยวกับบรรทัดที่ถูกกล่าวในการสัมภาษณ์กับหนึ่งในผู้สร้างอูบุนตูเมื่อชายคนนั้นพูดบางอย่างเกี่ยวกับวิธีที่ผู้ใช้เชื่อถือ "us" (อ้างอิงจาก Ubuntu devs) "เพราะเรามีราก "ซึ่งเป็นการอ้างอิงถึงวิธีการอัปเดตระบบด้วยการอนุญาตรูท เพียงแค่เปลี่ยนขั้นตอนการติดตั้งเพื่อแก้ไขปัญหานี้ไม่ใช่สิ่งที่ฉันสนใจที่นี่ ตอนนี้ความคิดของฉันมีรสชาติสำหรับความคิดที่ว่ามีอำนาจที่จะปฏิเสธการเข้าถึงรูทฉันอยากจะหาวิธีที่จะทำให้สิ่งนี้เกิดขึ้นเพียงเพื่อการทำเช่นนั้น ฉันเพิ่งคิดเกี่ยวกับเรื่องนี้และไม่ได้ใช้เวลาในความคิดจนถึงตอนนี้และฉันค่อนข้างมั่นใจว่าจะสามารถหาคำตอบได้ อย่างไรก็ตามฉันอยากรู้ว่าสิ่งนี้ได้ทำไปแล้วหรือว่านี่อาจไม่ใช่แนวคิดหรือแนวคิดใหม่ โดยทั่วไปดูเหมือนว่าควรมีวิธีที่จะมีผู้ใช้ super super ซึ่งจะได้รับอนุญาตนอกเหนือจากระบบโดยเพียงหนึ่งองศา หมายเหตุ: แม้ว่าฉันรู้สึกว่าคำตอบที่ยอมรับนั้นตรงกับเกณฑ์มากที่สุด แต่ฉันชอบคำตอบของ @CR ด้วย ฉันต้องการสร้างผู้ใช้จริงบนต้นไม้ (ฉัน) แต่ฉันเดาว่าฉันจะต้องนั่งลงวันหนึ่งเมื่อฉันมีเวลาคิดออก นอกจากนี้ฉันไม่ได้พยายามเลือกบน Ubuntu ที่นี่ ฉันจะไม่ใช้มันเป็น distro หลักของฉันถ้าฉันรู้สึกเชิงลบเกี่ยวกับเรื่องนี้
34 permissions  sudo  users  root 


7
root / superuser สามารถอ่านไฟล์ที่ป้องกันการอ่านได้หรือไม่?
บนโฮสติ้ง unix ที่ใช้ร่วมกันถ้าฉันมีไฟล์ sensitive-data.txt และฉันมีปัญหา: chmod 600 sensitive-data.txt ผู้ใช้รูทยังอ่านไฟล์ของฉันได้ไหม? โดยเฉพาะฉันสงสัยว่าจะปลอดภัยที่จะเก็บรหัสผ่านของฉันในไฟล์ hgrc mercurial UPDATE ตัดสินใจที่จะใช้ส่วนขยายของพวงกุญแจ mecurial เนื่องจากมันง่ายในการติดตั้ง: pip install mercurial_keyring แล้วเพิ่มใน hgrc: [extensions] mercurial_keyring = อย่างไรก็ตามฉันยังสนใจที่จะตอบคำถามนี้

4
การให้สิทธิ์การเขียนแก่กลุ่มในโฟลเดอร์
ฉันจะอนุญาตให้เขียนเป็น 1 กลุ่มได้อย่างไร ฉันมีผู้ใช้ 2 คน ( alexและben) alexเป็นสมาชิกของกลุ่มและของกลุ่มalex เป็นสมาชิกของกลุ่มและของกลุ่มconsult benbenconsult ฉันต้องการที่จะให้สิทธิ์ในการเขียนอ่านทั้งสองalexและที่โฟลเดอร์benconsult_documents ถ้าฉันทำalexเจ้าของไดเรกทอรีconsult_documentsและฉันให้775เข้าถึงไดเรกทอรีconsult_documents, benและalexจะสามารถเข้าถึงโฟลเดอร์ที่ฉันคิดว่า แต่นี่จะอนุญาตให้benเข้าถึงalexโฟลเดอร์อื่น ๆ ด้วยหรือไม่ หากผู้ใช้อยู่ในสองกลุ่มนั่นหมายความว่าสมาชิกทั้งหมดจากทั้งสองกลุ่มจะได้รับการอนุญาตแบบเดียวกันในทุกโฟลเดอร์หรือไม่?

4
เหตุใดจึงไม่พบ read / run / user / 1000 / gvfs แม้ว่ามันจะทำงานเป็น root
มีคนบอกฉันว่าฉันทำอะไรผิดนี่คืออะไรหรือจะแก้ไขได้อย่างไร ฉันกำลังใช้งาน Fedora 18 และแสดงข้อผิดพลาด [root@servername /]# find . -name ngirc find: `./run/user/1000/gvfs': Permission denied [root@servername /]# [root@thinktank /]# pwd / [root@thinktank /]# ls -ltr ./run/user/1000 ls: cannot access ./run/user/1000/gvfs: Permission denied total 0 d?????????? ? ? ? ? ? gvfs lrwxrwxrwx. 1 root root 17 May 28 12:30 X11-display …
34 permissions  root  gvfs 


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 …

5
หนึ่งไฟล์ต้องการเป็นของผู้ใช้สองคน อย่างไร? การเชื่อมโยงฮาร์ดล้มเหลว
สอง setuid โปรแกรม/usr/bin/barและแบ่งปันไฟล์การกำหนดค่าเดียว/usr/bin/baz fooโหมดของไฟล์การกำหนดค่าคือ0640มันเก็บข้อมูลที่ละเอียดอ่อน โปรแกรมหนึ่งวิ่งbar:bar(นั่นคือเป็นผู้ใช้บาร์,กลุ่มบาร์ ); อื่น ๆ baz:bazที่เป็น ผู้ใช้ที่เปลี่ยนแปลงไม่ได้เป็นตัวเลือกและแม้แต่การเปลี่ยนกลุ่มจะไม่เป็นที่ต้องการ ฉันต้องการที่จะเชื่อมโยงอย่างหนักแฟ้มการกำหนดค่าเดียวและ/etc/bar/foo /etc/baz/fooแต่นี้ล้มเหลวเนื่องจากต้องยื่นเท่าที่ผมรู้ว่าเป็นอย่างใดอย่างหนึ่งหรือroot:barroot:baz วิธีการแก้ปัญหาที่อาจเกิดขึ้น: สร้างกลุ่มใหม่barbazที่มีสมาชิกเป็นและbar bazให้เป็นของfooroot:barbaz นั่นดูเหมือนจะเป็นทางออกที่หนักหน่วงสำหรับฉัน ไม่มีผู้ชนะวิธีที่ง่ายกว่าในการแชร์ไฟล์การกำหนดค่าfooระหว่างสองโปรแกรมหรือไม่ สำหรับตอนนี้ฉันกำลังรักษาสำเนาของไฟล์ที่เหมือนกันสองชุด ใช้งานได้ แต่เห็นได้ชัดว่าผิด อะไรจะถูกต้อง? สำหรับข้อมูล: ฉันมีประสบการณ์น้อยกับกลุ่ม Unix และไม่มีใครกับ setgid (2)

3
ฉันจะรู้ได้อย่างไรว่าฉันเป็น sudoer?
ระบบ Linux ทำงานอย่างไรเมื่อฉันไม่ได้ sudoer? นี่คือสิ่งที่เกิดขึ้นถ้าฉันพยายามใช้ sudo: server:/tmp>$ sudo cal [sudo] password for user: Sorry, try again. เป็นไปได้หรือไม่ที่ฉันไม่ทราบรหัสผ่านหรือสิ่งนี้หมายความว่าฉันไม่ได้เป็นคนโง่? (ในระบบเครื่องอื่นพิมพ์ออกมาว่าฉันไม่มี sudoer และเหตุการณ์จะถูกรายงาน)
32 permissions  sudo  root 

1
เหตุใดไฟล์ที่เรียกทำงานได้ในเช่น / usr / sbin สามารถเขียนได้โดย root?
คุณช่วยอธิบายได้ไหมว่าทำไมไฟล์คอมไพล์ไบนารี (ตัวอย่างเช่น/usr/sbin) มีสิทธิ์ในการเขียนสำหรับrootผู้ใช้ สำหรับฉันมันถูกรวบรวม หมายความว่าการเขียนโดยตรงนั้นไม่มีประโยชน์และอาจทำให้ไฟล์มีปัญหาด้านความปลอดภัยบางประการ สคริปต์ (เช่นbashไฟล์) อาจเขียนได้เพราะมันเป็นไฟล์ข้อความโดยทั่วไป แต่ทำไมมันจึงเป็นแบบเดียวกันสำหรับไฟล์ที่คอมไพล์โดยที่ไม่จำเป็นต้องเขียนจริง ๆ เท่าที่ฉันรู้ ขอบคุณล่วงหน้าสำหรับความคิดเห็นของคุณ

5
การตั้งค่าหลายกลุ่มเป็นเจ้าของไดเรกทอรี
/srv/svnบนเซิร์ฟเวอร์ของฉันฉันมีไดเรกทอรี มันเป็นไปได้ที่จะตั้งไดเรกทอรีนี้จะมีกรรมสิทธิ์ในกลุ่มได้หลากหลายเช่นdevFirmA, devFirmBและdevFirmC? ประเด็นก็คือฉันต้องการsubversionควบคุมเวอร์ชันจัดการผู้ใช้หลายคนในที่เก็บหลายแห่งและฉันไม่ทราบวิธีผสาน /srv/svnไดเรกทอรีรากของที่เก็บสิทธิ์ ผมมีตัวอย่างเช่นสาม บริษัทFirmA, และFirmB FirmCตอนนี้ภายใน/srv/svnฉันได้สร้างสามไดเรกทอรีFirmA, FirmB, FirmCและภายในพวกเขาฉันได้สร้างพื้นที่เก็บข้อมูลสำหรับแต่ละโครงการและตอนนี้ผมไม่ทราบวิธีการสร้างโครงการที่ได้รับอนุญาตตั้งแต่ elementes ทั้งหมดภายใน/srv/svnเป็นเจ้าของโดยroot:rootที่ไม่ได้ตกลงหรือฉัน ไม่ถูกต้อง?

11
VSFTPD, 553 ไม่สามารถสร้างไฟล์ได้ - สิทธิ์
ฉันตั้งค่า VSFTPD บน Amazon EC2 ด้วย Amazon Linux AMI แล้ว ฉันสร้างผู้ใช้และสามารถเชื่อมต่อผ่าน ftp ได้สำเร็จ อย่างไรก็ตามหากฉันพยายามอัปโหลดบางอย่างฉันจะได้รับข้อความแสดงข้อผิดพลาด "553 ไม่สามารถสร้างไฟล์" ฉันคิดว่าสิ่งนี้เกี่ยวข้องกับการอนุญาต แต่ฉันไม่รู้เพียงพอที่จะแก้ไขได้ โดยพื้นฐานแล้วฉันต้องทำอย่างไรจึงจะสามารถอัปโหลดไฟล์ได้

10
“ ไม่อนุญาตให้ใช้ลิงก์สัญลักษณ์หรือลิงก์เป้าหมายไม่สามารถเข้าถึงได้” / Apache บน CentOS 6
ฉันมีการติดตั้ง CentOS 6 ใหม่เอี่ยมซึ่งมี symlink ในรูทเอกสารไปยังไฟล์การพัฒนาของฉัน: [root@localhost html]# ls -l total 4 -rwxrwxrwx. 1 root root 0 Sep 18 20:16 index.html -rwxrwxrwx. 1 root root 17 Sep 18 20:16 index.php lrwxrwxrwx. 1 root root 24 Sep 18 20:19 refresh-app -> /home/billy/refresh-app/ httpd.conf ของฉันมีสิ่งนี้: <Directory "/"> Options All AllowOverride None Order …

5
-bash: / dev / null: ปฏิเสธการอนุญาต
ฉันกำลังพยายามสร้างผู้ใช้ใหม่บนระบบ Centos 6 ก่อนอื่นเลย useradd kevin จากนั้นฉันพยายามเรียกใช้คำสั่งในฐานะผู้ใช้รายนั้น su - kevin อย่างไรก็ตามฉันได้รับข้อความแสดงข้อผิดพลาดดังต่อไปนี้ -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied -bash: /dev/null: Permission denied [kevin@gazelle ~]$ และฉันไม่สามารถทำอะไรได้มากเท่ากับผู้ใช้รายนั้น สิทธิ์บน/dev/nullมีดังนี้: -rwxr-xr-x 1 root root 9 Jul 25 17:07 null เหมือนกับบน Mac …

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