如何设置UNIX⼀Linux中新创建目录或文件的默认权限

2024-11-08 17:49:23
推荐回答(4个)
回答(1):

  在unix或者linux中,每创建一个文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,那么这些默认权限是怎么控制的呢?
  答案是“umask”权限掩码。一般默认的umask值为022,其最终效果就是新创建的目录权限为755,文件权限为644。所以只要修改了用户的umask值,就可以控制默认权限。
  怎么查看当前umask值?
  umask
  0022
  umask -S (SuSE Linux Enterprise 11实例)
  u=rwx,g=rx,o=rx
  怎么根据实际需要设置umask值?
  其实umask是权限的反码,你可以根据文件或者目录权限的数字表示值计算得到。
  目录:7- 权限数字
  文件:目录权限去掉执行权限(不要使用目录权限减1,否则本来就没有执行权限还要减1就搞错了)
  如果您希望新建目录的默认权限为755,那么可以设置umask值为:
  7-7=0 7-5=2 7-5-2 即022
  此时文件的权限为目录权限去掉执行权限,即644。
  常见权限掩码示例

  umask值

  怎么修改umask值?
  umask 三位数字(每位数字只能是1-7中的任一数字)
  示例:
  umask 022
  执行该命令只能使得本次登录有效,如果退出本次登录,下次不会有作用。
  怎么让umask值在用户每次登录后都有效?
  将umask命令语句放到用户环境变量profile文件中。
  修改所有用户的umask值
  在/etc/profile中增加语句umask nnn(权限掩码数字)
  修改指定用户的umask值
  根据不同的shell,修改不同的配置文件,在其中增加语句umask nnn(权限掩码数字),重新登录即可生效。
  Bourne Shell (sh):$HOME/.profile
  Korn Shell (ksh):$HOME/.profile
  C Shell (csh): $HOME/.login
  Bourne Again Shell(bash):它会在用户目录$HOME下依次查找.bash_profile,.bash_login,.profile文件,并用找到的第一个作为自己的配置文件,因此根据实际环境修改相应的文件。

回答(2):

普通文件默认是644 也就是:
-rw-r--r-- 1 root root 0 May15 20:04 test
自已有读写(rw),同组人员有读(r),其它有读(r)
默认权限可通过umask 修改
默认umask 为022
文件:666 - 022 = 644
目录:777 - 022 = 755
如果你下了umask 011 的指令,则生成的文件目录权限就变成:
文件:666 - 011 = 655
目录:777 - 011 = 766

回答(3):

字符方式
who: u文件属主权限,g同组用户权限,o其他用户权限,a所有用户(文件属主、同组及其他用户);
operator: +增加权限,-取消权限,=设定权限;
permission: r读权限,w写权限,x执行权限。
chmod a-x file rw- rw- rw- 收回所有用户的执行权限
chmod og-w file rw- r-- r- - 收回同组用户和其他用户的写权限
chmod g+w file rw- rw- r- - 赋予同组用户写权限
chmod u+x file rwx rw- r- - 赋予文件属主执行权限
chmod go+x file rwx rwx r- x 赋予同组用户和其他用户执行权限

回答(4):

设置用户的umask值