How to list linux file permissions in Octal Notation
วันนี้เนื่องจากทีมผู้ดูแล Web Hosting ต้องการดูว่ามีไฟล์ไหนบ้างที่มี permission เป็น 777 ก็เลยนั่งหาดูพบว่า สามารถใช้คำสั่ง stat ในการดูได้ เช่น $stat -c “%a %n” /var/www ผลลัพธ์ หรือ $stat -c “%A (%a) %8s %.19y %n” /var/www ผลลัพธ์ ทั้งนี้เนื่องจากไม่สามารถทำให้มัน recursive ได้ ก็ต้องหาไปทีละโฟลเดอร์ …. จนกระทั่งเจออีกคำสั่ง คือ สร้าง alias ชื่อ lso ดังนี้ $alias lso=”ls -alG | awk ‘{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\” %0o \”,k);print}'” เมื่อจะใช้งาน ก็เพียงสั่ง lso ที่คอมมานด์ไลน์ ผลลัพธ์ สามารถปรับ option ของ ls ใน alias ให้ recursive ได้โดยเพิ่ม R ตัวใหญ่ลงไป ดังนี้ $alias lso=”ls -alGR | awk ‘{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\” %0o \”,k);print}'” เมื่อเรียกใช้จะได้ผลลัพธ์ สามารถใช้ร่วมกับ grep เพื่อค้นหาเฉพาะค่าที่ต้องการ เช่น $lso|grep ” ^777″ ผลลัพธ์ ก็พอจะช่วยได้บ้างครับ ขอให้สนุกครับ ที่มา http://thenubbyadmin.com/2012/02/16/how-to-list-linux-file-permissions-in-octal-notation/ http://askubuntu.com/questions/152001/how-can-i-get-octal-file-permissions-from-command-line