首页 > 编程知识 正文

Linux umask,shell脚本判断进程是否存在

时间:2023-05-05 14:32:52 阅读:50889 作者:376

umask值用于设置用户创建文件时的默认权限。 在系统上创建目录或文件时,目录或文件的默认权限由umask值决定。

对于根用户,系统的默认umask值为0022; 对于普通用户,系统的默认umask值为0002。 运行umask命令可显示当前用户的umask值。

[root@localhost ~]#umask

0022

umask值共有四组数字,其中第一组数字用于定义特殊权限,一般不考虑,与一般权限相关的是后三组数字。

默认情况下,用户对目录可以拥有的最大权限为777。 对于文件,用户可以拥有的最大权限是从目录的最大权限中删除执行权限,即666。 因为目录需要x执行权限,所以没有执行权限才能访问目录,但默认情况下不需要为文件授予x执行权限。

对于根用户,他的umask值为022。 root用户创建目录时,默认权限为最大权限777,即删除相应位置的umask值权限。 这意味着目录的默认权限为755,因为不需要删除所有者的任何权限,而是删除所属组的w权限,并删除其他用户的w权限。 root用户创建文件时,默认权限为最大权限666,用于删除相应位置的umask值。 这意味着文件的默认权限为644。

通过以下测试操作可以知道umask值。

[ root @ localhost~] #创建mkdir directory1#测试目录

[根@ localhost~] # ll-ddirectory1#目录的默认权限为755

drwxr-xr-x.2根根根4096 12月2日2 13:08目录1

[root@localhost ~]#touch file1#创建测试文件

[根@ localhost~] # ll file1#文件的默认权限为644

-rw-r----r----1根012月2日2 13:09文件1

可以使用umask命令更改umask值,例如将umask值设置为0077。

[root@localhost ~]#umask 0077

[root@localhost ~]#umask

0077

此处创建的目录的默认权限为700,文件的默认权限为600。

[ root @ localhost~] # mkdir directory 2

[ root @ localhost~] # ll-ddirectory 2

drwx---- 2根路由409612月2日2 13:14目录2

[root@localhost ~]#touch file2

[root@localhost ~]#ll file2

-rw----.1根012月2日2 13:14文件2

如果将umask值设置为0003,请考虑此时创建的目录或文件的默认权限是多少。

正确的结果是目录的默认权限为774,文件的默认权限为664。 在计算默认权限时,可以删除与umask值对应的相应位置权限,以获得正确的结果,而不是应用最大权限并直接减去umask值。

umask命令只是临时更改umask值,重新启动系统时umask将恢复为默认值。 要永久更改umask值,必须修改/etc/profile文件或修改/etc/bashrc文件。 例如,要将默认的umask值设置为027,请在文件中添加一行umask 027。

/etc/profile和/etc/bashrc可用于配置每次用户登录系统时自动执行的操作。 区别在于/etc/profile仅在用户首次登录时运行,/etc/bashrc在用户每次登录并加载Bash Shell时运行。

因此,如果修改/etc/profile文件,则仅对新创建的用户有效。 如果修改了/etc/bashrc文件,将对所有用户生效。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。