LinuxSir.cn,穿越时空的Linuxsir!

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

关于umask和文件夹和文件的初始权限

[复制链接]
发表于 2005-8-22 23:46:36 | 显示全部楼层 |阅读模式
umask (顯示設定值)
umask nnn (設定umask,設定值為000~777的整數)



umask 指令的功能是用?怼跋薅ā泵恳粋新增的檔案、目錄的基本使用權限(permission)。譬如說當使用者以編輯器新產生的檔案,或者是?南到y的某處拷??淼男聶n案,或者是以輸出重導向的方式產生的新檔案,或是以指令 mkdir 新建的目錄等等,一切新產生的檔案、目錄,它們的最初使用權限,均會受到這個內建指令 umask 的設定值所影響。就是我所說的“限定”。



指令裡的 nnn 所代表的意義與 chmod 指令的 nnn 相似。不同的是 chmod 指令 nnn 是“給於”使用或者是將要改變的許可權限,而 umask 則是“取消”nnn 的使用許可權限。這點是根本性的差?,使用者必須分清楚。



指令 umask 的設定值以三個八進位的數字“nnn”代表。第一個設定數字給使用者自己(owner user),第二個則是設定給用使用者所屬的群體(group),第三個給不屬於同群體的其它使用者(other)。每一位數字的設定值都是三項不同權限的數值加總,read 權限數值為 4;write 權限數值為 2;execute 權限數值為 1。結合了前三者的權限數值,單一的數字可設定的範圍是 0 ~ 7;整體的可設定範圍是 000 ~ 777。



要知道設定後會得到什麼結果。原則上,方法很簡單。就是用最大值減去設定值即可得到你想要知道的結果。對目錄而言最大值是 777;對檔案而言,最大值則是 666。這個方法對目錄而言完全正確;但對檔案而言會有無法應付的意外。

    以下為了說明上的方便,我將以?際運用上,不可能會採用的設定值 067 作為本?例子?砑右哉f明。

譬如當你設定 umask 為 670 ,使用檔案的最大值 666 減去設定值 670,得到的是數值是 負4,已超出數值的定義範圍變成沒有任何意義的數值。但真正使用者會得到的結果卻是檔案對 other 開放 rw 權限;對 owner 與 group 關閉所有權限。所以使用者無法使用減去的方法?慝@得完全正確的結果。


umask 077 (or 77)
                        rwxrwxrwx
mask                        ---rwxrwx
what comes through        rwx------        (directories)
                        rw-------        (files)


我对自建的一个shell文件夹  umask 077 的结果是在shell中新建的文件夹是700的权限,但是file的权限是上面说的600的权限,不能被执行。
但是我期望是shell下新建的文件都能被执行,shell这个文件夹是我学习shell编程用的,不想每新建一个文件都要chmod一下。 希望有人能帮忙。
发表于 2005-8-23 01:07:57 | 显示全部楼层
chmod -R 应该可以吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-23 23:11:00 | 显示全部楼层
这个-R的选项我知道,但是我的目的不是这个哦。   
我的目的是要在这个文件夹中新建的文件都是 可执行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-24 22:51:08 | 显示全部楼层
       #!/usr/bin/env bash
      
       fNo=20
       until [ $fNo -eq 30 ]
       do
          echo `touch $fNo`
          fNo=$(($fNo+1))
       done
       echo $(chmod 700 -R *)


我也刚刚学习shell,就学着安自己的目的,弄了这个脚本。  可以用,至少这样方便一些。而且在其中,我开始一些不理解   fNo=$(($fNo+1))  于是我换成fNo=($fNo+1),发现touch可以了,文件名成了20+1,20+1+1这样的, 程序死循环了。  想了下,应该是($fNo+1)这个是字符串,  那么当然$fNo -eq 30 永远是假,那么就一直运行了。   需要$(($fNo+1))运算才成了数字。

应该没有说错
回复 支持 反对

使用道具 举报

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

本版积分规则

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