ไฟล์ chmod เพื่อให้สิทธิ์กลุ่มเดียวกับผู้ใช้ซ้ำ


16

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

chmod 

คำตอบ:


25

รุ่งโรจน์ถึง jamessan เพื่อแสดงให้เราเห็น ในระบบของฉันดูเหมือนว่าจะทำงาน:

chmod -R g=u dir

1
ที่ยังเปลี่ยนสิทธิ์ของไดเรกทอรี ไฟล์ต้นฉบับที่ระบุคำถาม
27414 jamessan

@jamessan ซึ่งเป็นไดเรกทอรี
Mike Graham

@ ไมค์เพียงเพราะ * ระวังช่วยให้คุณปฏิบัติต่อทุกอย่างเป็นไฟล์ไม่ได้หมายความว่าไดเรกทอรีเป็นไฟล์จริง ๆ แม้ว่าจะต้องยอมรับว่ามันเหมือนกัน แต่ก็มีความแตกต่างในการทำงานที่แตกต่างกันระหว่างการเปลี่ยนการอนุญาตของไฟล์ทั้งหมดในแผนผังไดเรกทอรีและเปลี่ยนสิทธิ์ของไฟล์และไดเรกทอรีทั้งหมดในแผนผังไดเรกทอรี
jamessan

อีกครั้งมีวิธีแก้ไขปัญหาของฉันตรงไปตรงมา ทำไมฉันถึงไม่ประหลาดใจ
rzetterberg


0

ฉันไม่สามารถคิดวิธีง่ายๆในการทำเช่นนั้นกับคำสั่งที่มีอยู่ บางทีสคริปต์แบบนี้จะช่วย:

#!/bin/bash

DIR="$1"

find "$DIR" -ls | while read a b perm c d e f g h i file; do
   uperm=${perm:1:3}
   uperm=$(echo "$uperm" | tr -d '-')
   chmod g=$uperm "$file"
done

นอกจากนี้โปรดจำไว้ว่าบาง perms สำหรับผู้ใช้อาจไม่ใช้กับกลุ่มและในทางกลับกัน


0

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

ตัวอย่างเช่น:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

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

ในทำนองเดียวกันคุณใช้ตัวแปรด้านบนการเรียกใช้เพื่อเปลี่ยนการอนุญาตไฟล์สำหรับ โหมดอ่านและเรียกใช้งานสำหรับกลุ่ม

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