ปฏิเสธการอนุญาต แต่การอนุญาตกลุ่มดูดีบน redhat


11

ฉันมีผู้ใช้ ftpadmin:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(git)

กลุ่มที่สำคัญที่ควรทราบคือ "git"

จากนั้นฉันก็มีที่เก็บ git ของฉัน:

ls -al
drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

ดังนั้น ftpadmin เป็นสมาชิกของ git และ git ได้ให้สิทธิ์ทั้งหมดแก่ผู้คนในกลุ่ม ทำไมฉันเห็นสิ่งนี้เมื่อฉันเข้าสู่ระบบเป็น ftpadmin:

-bash-3.2$ ls -al /home/git/
ls: /home/git/fsg: Permission denied
...

ดูเหมือนว่าฉันควรได้รับอนุญาต ...

อัปเดต การอนุญาตใน / home / git คือ

drwxrw-rw-   6 git      git          4096 Apr 26 09:20 git

ยังคงดูดี ...

อัปเดตการ อนุญาตใหม่ใน / home / git คือ:

drwxrwxrw-   6 git      git          4096 Apr 26 09:20 git

สิทธิ์ใน / home / git / fsg คือ:

drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

อย่างไรก็ตามฉันยังคงได้รับ

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied

1
สิทธิ์/home/gitคืออะไร
Zoredache

drwxrw-rw- 6 git git 4096 26 เม.ย. 09:20 git
Tony

ควรเป็นdrwxrwxr-xถ้าคุณต้องการให้เป็นแบบอ่านอย่างเดียวสำหรับผู้ที่ไม่ได้เป็นสมาชิกกลุ่ม แต่สามารถเปลี่ยนได้โดยสมาชิกกลุ่ม ควรเป็นdrwxrwx---ถ้าคุณต้องการให้สมาชิกกลุ่มอยู่คนเดียวเท่านั้น
Avery Payne

4
คุณต้องมีการตั้งค่าบิตกลุ่ม "x" ในไดเรกทอรีเพื่อให้สามารถค้นหากลุ่มได้ สิทธิ์ "rw-" อนุญาตให้เปิดไฟล์ที่มีชื่อ (r) หรือสร้างไฟล์ (w) แต่ไม่แสดงรายการหรือค้นหาไฟล์ (x)
mpez0

ไม่ทำงาน ดูการอัปเดตล่าสุดของฉัน
Tony

คำตอบ:


9

ต้องการให้ mpez0 เป็น +1 โดยเฉพาะสำหรับคำตอบของเขา "คุณต้องตั้งค่ากลุ่ม" x "บิตในไดเรกทอรีเพื่อให้สามารถค้นหากลุ่มได้สิทธิ์" rw- "อนุญาตให้เปิดไฟล์ที่มีชื่อ (r) หรือสร้างไฟล์ (w) แต่ไม่แสดงหรือค้นหาไฟล์ (x) "

มันง่ายมากที่จะลืมและโซลูชันของเขาถูกฝังอยู่ตรงกลาง นี่เป็นปัญหาสำหรับผู้ใช้ Linux รายใหม่เกี่ยวกับการอนุญาตของไฟล์ / ไดเรกทอรีสำหรับผู้ใช้และกลุ่ม

ทุกอย่างที่เอเวอรี่บอกว่าถูกต้องกับเงินแล้วหวังว่าฉันจะให้ +1 ได้อีกเช่นกัน

คิดอีกหนึ่งตัวอย่างที่มีรายละเอียดมากขึ้นอาจช่วยให้ผู้ใช้ลินุกซ์ใหม่ ( ไม่ได้มองหาสินเชื่อใด ๆ เพียงแค่การให้ตัวอย่างเพื่อความชัดเจนอีก ) ในพีซีของฉันฉันต้องการสร้างผู้ใช้เพิ่มเติมสำหรับโครงการพัฒนาเฉพาะ กำลังทดสอบปัญหา SSH, SFTP ระหว่างเครื่องของฉันกับเซิร์ฟเวอร์ที่อยู่ร่วมกันบนเว็บ มีข้อผิดพลาด "การอนุญาตที่ถูกปฏิเสธ" เดียวกันหลังจากตั้งค่าทุกอย่าง ... และใช่มันดูถูกต้องยกเว้นปัญหาการค้นหาตามสิทธิ์ของผู้อื่นที่ mpez0 ชี้ไป

หมายเหตุ: สำหรับผู้ใช้ Linux ใหม่สิทธิ์คือผู้ใช้กลุ่มอื่น ๆ หรือ rwx, rwx, rwx ตามลำดับและจะมีลักษณะเช่นนี้

drwxr-xr--   

user has read + write + execute, rwx 
group has only read and execute, r-x
other has only read acces r--

สำหรับ 'อื่น ๆ ' เราได้รับการเตือนว่าไม่เพียงพอที่จะค้นหา / ค้นหาไดเรกทอรีดังนั้นข้อความแสดงข้อผิดพลาด

นี่คือสิ่งที่ฉันทำ (พบข้อผิดพลาดในขั้นตอนที่ 6)

1) สร้างผู้ใช้ hoiuser (เพื่อดูข้อมูลผู้ใช้คุณสามารถใช้นิ้ว cmd, "finger hoiuser" หรืออ่านไฟล์ 'cat / etc / passwd')

2) สร้างกลุ่ม hoidevs (เพิ่มผู้ใช้ "hoiuser" ไปยังกลุ่ม)

root@zareason-breeze:/etc# cat group | grep hoidevs 
hoidevs:x:1010:userz,hoiuser 

จำไว้ว่าคุณต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อรับสิทธิ์ "กลุ่ม" ใหม่ที่จะเชื่อมโยงกับ ID บัญชี

3) hoidev chgrp สำหรับไดเรกทอรี / home / userz / data / Sites / hoi และสร้างสถานที่สำหรับไฟล์

hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

4) เปิดหน้าต่างเทอร์มินัลผู้ใช้ userz ทำงานอยู่

5) su - hoiuser (เปลี่ยนเป็นผู้ใช้ hoiuser)

6) พยายามที่จะ cd / home / userz / data / Sites

hoiuser@zareason-breeze:/home/userz/data$ cd Sites
-su: cd: Sites: Permission denied    (voila, the problem)


userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr--  11 userz userz  4096 2012-02-24 16:20 ./
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/

7) เปลี่ยนการอนุญาตสำหรับ Sites

userz@zareason-breeze:~/data/Sites$ chmod 755 .
userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr-x  11 userz userz  4096 2012-02-24 16:20 ./

และแก้ไขปัญหา voila .... นี่คือข้อพิสูจน์

hoiuser@zareason-breeze:/home/userz/data$ id
uid=1009(hoiuser) gid=1009(hoiuser) groups=1009(hoiuser),1010(hoidevs)

hoiuser@zareason-breeze:/home/userz/data$ cd Sites        (<- yea no error message)
hoiuser@zareason-breeze:/home/userz/data/Sites$ cd hoi
hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x 11 userz userz 4096 2012-02-24 16:20 ../
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

แม้เรามีประสบการณ์ผู้ใช้ Linux / Unix ต้องเตือนความจำครั้งแล้วครั้งเล่า

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

โครงสร้างไดเรกทอรีย่อยของฉันคือ: / home / userz / data / Sites / hoi / html /

เริ่มจากที่บ้าน

userz@zareason-breeze:~$ pwd
/home

นี่คือโครงสร้างไดเรกทอรีของฉันก่อน chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr--  11 userz userz     4096 2012-02-24 16:20 Sites/    (<-- Do you see it, other is r--)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

นี่คือโครงสร้างไดเรกทอรีของฉันหลังจาก chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr-x  11 userz userz     4096 2012-02-24 16:20 Sites/      (<-- Fixed by the chmod > 755 ., now r-x)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

โปรดทราบว่าการเปลี่ยนแปลงเพียงอย่างเดียวคือสิทธิ์ rx สำหรับ 'other' สำหรับไดเรกทอรี 'Sites' หวังว่านี่จะช่วยผู้อื่นได้เป็นอย่างดีสำหรับฉัน


3
ฉันมีปัญหาที่คล้ายกันใน FreeBSD และ OpenBSD กุญแจสำคัญสำหรับฉันคือส่วนนี้ โปรดจำไว้ว่าคุณต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อรับสิทธิ์ "กลุ่ม" ใหม่ที่จะเชื่อมโยงกับรหัสบัญชี แน่นอนว่าเอกสารประกอบของ FreeBSD: `-G grouplist ... การเปลี่ยนแปลงความเป็นสมาชิกกลุ่มจะไม่มีผลสำหรับเซสชันการล็อกอินของผู้ใช้ปัจจุบันทำให้ผู้ใช้ต้องเชื่อมต่อใหม่เพื่อรับผลกระทบจากการเปลี่ยนแปลง
iboisver

6

คุณต้องมีสิทธิ์ในไดเรกทอรีที่มีไฟล์เพื่อไปยังไฟล์ สิทธิ์บน / home / git คืออะไร? (ใช่ Zoredache ฉันให้ +1 ให้คุณเพื่อชี้ให้เห็น)


การติดตามผล: คุณต้องมีการดำเนินการบิต (x) บิตสำหรับกลุ่มเพื่อให้กลุ่มนั้นเข้าสู่ไดเรกทอรี คิดว่ามันเป็นอะนาล็อกคร่าวๆกับการตั้งค่า "Traverse Directory" ของ windows หากไม่มีการเข้าถึงจะถูกปฏิเสธสำหรับกลุ่ม หากคุณหมดหวังคุณสามารถทำสิ่งต่อไปนี้

chmod g+x /home/git
chmod g+x /home/git/fsg

ลองทำสิ่งต่อไปนี้และโพสต์ข้อความจากแต่ละรายการ:

cd /home
cd /home/git
cd /home/git/fsg

ftpadminหนึ่งในบรรดาแต่ละคนควรจะเข้าถึงได้โดย หากหนึ่งของพวกเขาใด ๆ ไม่ได้/home/git/fsgแล้วมันจะหยุดคุณจากการเป็น


drwxrw-rw- 6 git git 4096 26 เม.ย. 09:20 git
Tony

ทำให้รู้สึกฉันยังคงได้รับอนุญาตถูกปฏิเสธใน / home / git / fsg ซึ่งเป็น drwxrwxr-x 7 git git 4096 20 เม.ย. 20 14:17 fsg
Tony

และใน "สิทธิ์ที่ถูกปฏิเสธ" ครั้งล่าสุดชุดบิตเรียกใช้กลุ่มถูกตั้งไว้หรือไม่ จะไม่สำคัญว่าคุณจะได้รับอนุญาตสำหรับเด็กหรือไม่ถ้าผู้ปกครองไม่ได้รับอนุญาตเช่นกัน
Avery Payne

ตรวจสอบการอัปเดตล่าสุดของฉัน ฉันใส่สิทธิ์ที่นั่นและตั้งบิตกลุ่ม exec
โทนี่

ฉันเห็นว่าคุณมีผลลัพธ์สำหรับ/home/gitและ/home/git/fsgผลลัพธ์ที่ได้/homeคืออะไร
Avery Payne

4

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


3

ลองเข้าสู่ระบบอีกครั้งหรือเรียกใช้su - ftpadminเพื่อเข้าสู่ระบบภายในเปลือกปัจจุบัน เนื่องจากกลุ่มได้รับการตั้งค่าเมื่อคุณเข้าสู่ระบบอาจเป็นเพราะคุณเพิ่มสิ่งที่ควรทำในกลุ่ม แต่ยังคงมีการใช้การตั้งค่ากลุ่มเก่า

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