SUSE LINUX Enterprise & openSUSE Community
มีนาคม 25, 2019, 10:38:24 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  

[Why we need your support] SUSE and openSUSE are trademarks of Attachmate Group, Inc. - WE ARE NOT IN ANY WAY ASSOCIATED WITH SUSE AND ATTACHMATE GROUP. SUSEThailand.com is a SUSE Linux user and community found in Thailand but not limited to other country suse linux user to join in. Currently active contents (How to's, Scripts, Tips, Tricks, Tutorials, Linux Command Line, and Troubleshooting) this suse linux how to's and expert support are SUSE Linux.
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน
หัวข้อ: What is the "umask"?  (อ่าน 3124 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« เมื่อ: สิงหาคม 31, 2009, 06:31:52 PM »


umask คำสั่งสำหรับจำกัดสิทธิของไฟล์ และไดเร็กทอรี่ (restricts permissions) ซึ่งค่าเริ่มต้นของ SUSE Linux จะเป็น 022

ทำไมต้องกำหนด umask ?

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

แล้ว umask กับ chmod, chgrp, chown ต่างกันตรงไหน ?

- umask จะเป็นการกำหนดค่าเริ่มต้น permission ให้กับไดเร็กทอรี่ และไฟล์.
- chmod, chgrp, chown จะเป็นการกำหนดสิทธิแบบระบุ หรือเฉพาะเจาะจง เช่น ผู้ใช้ A มีสิทธิเป็นเจ้าของไดเร็กทอรี่ ชื่อ AA คนเดียวเท่านั้น เป็นต้น.

ดังนั้นการกำหนดค่า umask จึงมีความสำคัญเป็นอย่างมากในการบริหารข้อมูลบน Network ซึ่งต้องมีความสัมพันธ์กับการกำหนด chmod, chgrp, chown ด้วย จึงจะทำให้ระบบแชร์ข้อมูลมีความปลอดภัยสูง และสมบรูณ์แบบ.


กำหนดค่า umask บน SUSE Linux


$ vi /etc/profile
umask 007


$ reboot

หลังจากกำหนดค่า umask 007 เมื่อผู้ใช้สร้างไฟล์ใหม่ ไฟล์ permission จะเป็น 660 และ ไดร์เร็กทอรี่จะเป็น 770

การคำนวณหาค่า umask:

#Directory
Default Permissions: 777
Subtract umask value: 007 (-)
Allowed Permissions: 770

#File
Default Permissions: 666
Subtract umask value: 007 (-)
Allowed Permissions: 660

-------------------------------------------------------------------------------------------------
The umask defines the permissions a new file will get - or better: the permissions it will not get.

You can display the current umask numeric and as text:

user@host:~ $ umask
0027
user@host:~ $ umask -S
u=rwx,g=rx,o=

The numbers mean the following:

0 0 2 7
| | | '--> permissions for others (o)
| | '--> permissions for the group (g)
| '--> permissions for the owner (user, u)
'--> special permissions (SUID, SGID, sticky) - always 0 in umask


The digits for user, group and others are the sum of:

    * 1 - execute permission (x)
    * 2 - write permission (w)
    * 4 - read permission (r)

Therefore umask 0027 means:

    * all permissions for the file owner (user)
    * no write permissions (but read and execute permissions) for the group
    * no permissions for others


You can specify the umask with the command umask 0027. The number can vary, of course. The umask you define this way is valid in the current shell and all child processes. If you set the umask in ~/.profile, it is valid for the whole time you are logged in. If you define it in a xterm, it is only valid for everything you do in this xterm.

If you want to define the umask for a specific directory (example: group write permissions for a directory you use together with your colleges), you'll become sweating when using the umask command because it is always valid for all directories.

The solution of this problem is setting a default ACL. The following command ensures that all new files in /home/shared/ have all permissions (including write permissions) set for the group:

setfacl -d -m mask:007 /home/shared/

You should also set the sgid-bit for the directory and choose the wanted group using chgrp:

chgrp the_team /home/shared/
chmod g+s /home/shared/

If /home/shared/ already contains subdirectories, you have to change their permissions as well. Tip: all mentioned commands know the -R option.

Starting with KDE 3.5 (which will be contained in the upcoming SUSE Linux 10.1) you can easily define ACLs using the file properties dialog.

If you want to access /home/shared/ only using samba, you can instead use the directory mask and create mask for the share (be warned: samba doesn't use the inverted permission mask as umask does!). You should also set the force group option.


Link of Reference:
http://suse-linux-faq.koehntopp.de/q/q-filesystems-umask.html
http://www.novell.com/coolsolutions/trench/16940.html
http://en.wikipedia.org/wiki/Umask
http://www.dartmouth.edu/~rc/help/faq/permissions.html
http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
« แก้ไขครั้งสุดท้าย: สิงหาคม 21, 2010, 11:28:06 AM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

(@)2007 SUSE Linux user community found in Thailand. This site is not an official openSUSE and SUSE website, and is not in any way affiliated with or endorsed by SUSE Linux GmbH or Novell. openSUSE and SUSE are trademarks of Novell, Inc. in the United States and other countries.
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.042 วินาที กับ 19 คำสั่ง (Pretty URLs adds 0.009s, 2q)