LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4488|回复: 10

三月考试!郁闷啊!有谁能讲一下vsftp,和samba中umask 的用法?

[复制链接]
发表于 2005-2-27 21:12:42 | 显示全部楼层 |阅读模式
有谁能讲一下vsftp,和samba中umask 的用法?谢谢!
发表于 2005-2-27 22:57:53 | 显示全部楼层
vsftpd :
  anon_umask
              The  value that the umask for file creation is set to for anony-
              mous users. NOTE! If you want to specify octal values,  remember
              the  "0" prefix otherwise the value will be treated as a base 10
              integer!

              Default: 077

   local_umask
              The value that the umask for file creation is set to  for  local
              users.  NOTE!  If you want to specify octal values, remember the
              "0" prefix otherwise the value will be  treated  as  a  base  10
              integer!

              Default: 077

samba:
    create mask (S)
              When a file is created, the necessary permissions are calculated
              according to the mapping from DOS modes to UNIX permissions, and
              the  resulting  UNIX  mode  is  then  bit-wise 'AND'ed with this
              parameter. This parameter may be thought of as a  bit-wise  MASK
              for  the  UNIX  modes  of  a  file. Any bit not set here will be
              removed from the modes set on a file when it is created.

              The default value of this  parameter  removes  the  'group'  and
              'other' write and execute bits from the UNIX modes.

              Following  this  Samba  will bit-wise 'OR' the UNIX mode created
              from this parameter with the value  of  the  force  create  mode
              parameter which is set to 000 by default.

              This  parameter does not affect directory modes. See the parame-
              ter directory mode  for details.

              Note that this parameter does not apply to  permissions  set  by
              Windows  NT/2000  ACL  editors.  If  the administrator wishes to
              enforce a mask on access control lists also, they  need  to  set
              the security mask.

              Default: create mask = 0744

              Example: create mask = 0775
directory mask (S)
              This parameter is the octal modes which are used when converting
              DOS modes to UNIX modes when creating UNIX directories.

              When a directory is created, the necessary permissions are  cal-
              culated  according to the mapping from DOS modes to UNIX permis-
              sions, and the resulting UNIX mode is then bit-wise 'AND'ed with
              this  parameter.  This parameter may be thought of as a bit-wise
              MASK for the UNIX modes of a directory. Any  bit  not  set  here
              will  be  removed  from  the modes set on a directory when it is
              created.

              The default value of this  parameter  removes  the  'group'  and
              'other'  write  bits  from the UNIX mode, allowing only the user
              who owns the directory to modify it.

              Following this Samba will bit-wise 'OR' the  UNIX  mode  created
              from  this  parameter with the value of the force directory mode
              parameter. This parameter is set to  000  by  default  (i.e.  no
              extra mode bits are added).

              Note  that  this  parameter does not apply to permissions set by
              Windows NT/2000 ACL editors.  If  the  administrator  wishes  to
              enforce  a  mask  on access control lists also, they need to set
              the directory security mask.

              Default: directory mask = 0755

              Example: directory mask = 0775

    directory security mask (S)
              This parameter controls what UNIX permission bits can  be  modi-
              fied  when  a Windows NT client is manipulating the UNIX permis-
              sion on a directory using the native NT security dialog box.

              This parameter is applied as a mask (AND'ed with) to the changed
              permission  bits, thus preventing any bits not in this mask from
              being modified. Essentially, zero  bits  in  this  mask  may  be
              treated as a set of bits the user is not allowed to change.

              If  not  set  explicitly this parameter is set to 0777 meaning a
              user is allowed to modify all the  user/group/world  permissions
              on a directory.

              Note  that  users  who can access the Samba server through other
              means can easily bypass this restriction,  so  it  is  primarily
              useful  for  standalone  "appliance"  systems. Administrators of
              most normal systems will  probably  want  to  leave  it  as  the
              default of 0777.

              Default: directory security mask = 0777

              Example: directory security mask = 0700

      security mask (S)
              This parameter controls what UNIX permission bits can  be  modi-
              fied  when  a Windows NT client is manipulating the UNIX permis-
              sion on a file using the native NT security dialog box.

              This parameter is applied as a mask (AND'ed with) to the changed
              permission  bits, thus preventing any bits not in this mask from
              being modified. Essentially, zero  bits  in  this  mask  may  be
              treated as a set of bits the user is not allowed to change.

              If not set explicitly this parameter is 0777, allowing a user to
              modify all the user/group/world permissions on a file.

              Note that users who can access the Samba  server  through  other
              means  can  easily  bypass  this restriction, so it is primarily
              useful for standalone  "appliance"  systems.  Administrators  of
              most  normal systems will probably want to leave it set to 0777.

              Default: security mask = 0777

              Example: security mask = 0770
回复 支持 反对

使用道具 举报

发表于 2005-3-2 13:31:08 | 显示全部楼层
我考试卷3月30过期!我要参加3月的考试 !要先办什么手续吗?
回复 支持 反对

使用道具 举报

发表于 2005-3-2 14:11:01 | 显示全部楼层
去文华注册考试
回复 支持 反对

使用道具 举报

发表于 2005-3-3 21:04:37 | 显示全部楼层
Thanks for Master KevinZ !!
回复 支持 反对

使用道具 举报

发表于 2005-3-17 00:31:46 | 显示全部楼层
谢谢你  kissingwolf
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-21 17:28:17 | 显示全部楼层
Post by cmx
有谁能讲一下vsftp,和samba中umask 的用法?谢谢!


能不能告诉以下umask是怎么计算文件权限的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-21 18:11:43 | 显示全部楼层
先讓我們看看 x,r,w 的 bit 位元表示方式﹕

x: 001
w: 010
r: 100

如果將全部位元做 OR 運算就是最終 permission﹕rwx 的位置都是 111 ﹐換成十進位就是 7 了。

下面您如果輸入﹕
chmod 750 test.ls

您會發現權限會變成﹕rwxr-x---﹐至於為什麼會如此﹐不妨算算看﹕

1) 將 750 換成二進位﹐就是﹕111,101,000
2) 分別將 rwx 的位置代入得﹕rwx,r-x,---
(方法﹕1 對應著的權限就打開﹐0 對應的就關閉)

就這麼簡單 ^_^

好了﹐我們剛纔已經會得計算自己對一個檔案擁有什麼樣的權限﹐也知道如何改變檔案的權限設定。但是﹐檔案被建立的時候﹐預設會獲得怎樣的權限呢﹖這個值就要靠 umask ?頉Q定了。如果您現在輸入 umask﹐會得到 022 的值﹐這個值決定了檔案在建立的時候﹐要拿掉什麼樣的權限。在沒有使用 umask 的時候﹐所建立的檔案都是 777 這個值的﹐但當運用了 umask 之後呢﹐目錄會變為 755﹐而檔案則為 644 。那是怎麼得出?淼哪丞t還是回到二進位吧﹐然後將完整權限和 umask 進行 NOT 和 AND 運算﹐就是最後的權限值。

在建立目錄的時候﹕
1) 首先﹐我們先對 unmask 進行 NOT 運算﹕
000,010,010 的 NOT 運算結果是﹕111,101,101 ﹔
2) 然後再和 777﹐也就是﹕111,111,111 進行 AND 運算﹔
3) 最後﹐我們會得到這樣的結果﹕111,101,101 ﹔
換成十進位就是 755。

而至於檔案的建立﹕
預設會把它的 x (001) 拿掉﹐其?也是先進行 NOT + AND 運算﹕
1) 先對 x 做 NOT 運算﹕001 NOT ==> 110
2) 然後和 111 做 AND 運算﹕
111,111,111
110,110,110 AND
-----------------
110,110,110 ===> 也就是 666﹐ 然後再和 umask 022 做 NOT 跟 AND 運算﹕
111,101,101 AND
-----------------
110,100,100 ===> 換成十進位是 644 ﹐這才是真正的結果。

我們的 umask 值是登入的時候﹐由 shell 的 profile 分配的(一般規則是:user 與 group 同名為 022﹐否則是 002)﹐我們可以在任何時候改變這個值﹕用 umask 命令以新的值作參數就可以了﹐如﹕umask 002 ﹐然後新建立的檔案就變成 664 的權限了。
tips﹕如果您不習慣用二進位進行計算﹐只能用十進位?硭愕脑挬o可以簡單的這樣算﹕
目錄是用 777 扣掉 umask 的值﹔
檔案是用 666 扣掉 umask 的值 如果是有奇数位的话就在每个奇数位上加1。

不過﹐電腦上面真正的運算是二進位啦﹐這個和我們計算 IP subnet 的時候是一樣的原理。
回复 支持 反对

使用道具 举报

发表于 2005-3-22 15:09:25 | 显示全部楼层
好贴!!!!
回复 支持 反对

使用道具 举报

发表于 2010-2-2 20:07:47 | 显示全部楼层
那几段英文没看懂,
directory mask=0700
是不是建立一个新目录时分配的权限,
那还用DOSTOUNIX的的来回转换吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表