[内容] Linux umask 的设置

内容目录:

内容一:默认权限值的含义

内容二:临时默认权限的设置
2.1 默认权限值的方法
2.2 默认权限值的方法
2.2.1 方法一:使用权限数字设置默认权限值
2.2.2 方法二:使用权限标志设置默认权限值

内容三:永久默认权限的设置
3.1 给某个用户单独设置 umask
3.1.1 给某个用户单独添加 umask 参数
3.1.2 让 umask 设置生效
3.2 全局设置 umask 的方法
3.2.1 通过修改 /etc/profile 文件实现
3.2.1.1 通过修改 /etc/profile 文件实现案例一
3.2.1.1.1 在 /etc/profile 文件里设置全局 umask 参数
3.2.1.1.2 让 umask 设置生效
3.2.1.2 通过修改 /etc/profile 文件实现案例二
3.2.1.2.1 在 /etc/profile 文件里设置全局 umask 参数
3.2.1.2.2 让 umask 设置生效
3.2.2 通过修改 /etc/bashrc 文件实现
3.2.2.1 通过修改 /etc/bashrc 文件实现案例一
3.2.2.1.1 在 /etc/bashrc 文件里设置全局 umask 参数
3.2.2.1.2 让 umask 设置生效
3.2.2.2 通过修改 /etc/bashrc 文件实现案例二
3.2.2.2.1 在 /etc/bashrc 文件里设置全局 umask 参数
3.2.2.2.2 让 umask 设置生效

具体的内容:

内容一:默认权限值的含义

如果 umask 的值是 0022:
创建的新目录的默认权限是:777 – 022 = 755
创建的新文件的默认权限是:666 – 022 = 644

内容二:临时默认权限的设置
2.1 默认权限值的方法

# umask
0022

2.2 默认权限值的方法
2.2.1 方法一:使用权限数字设置默认权限值

# umask 0002

2.2.2 方法二:使用权限标志设置默认权限值

# umask -S u=rwx,g=rwx,o=rw

内容三:永久默认权限的设置
3.1 给某个用户单独设置 umask
3.1.1 给某个用户单独添加 umask 参数

# vim ~/.bashrc 

添加以下内容:

......
umask 022


补充:
1) 这里以将 umask 设置为 022 为例
2) 补充 /etc/bashrc 文件会比 /etc/profile 文件更有优先级

3.1.2 让 umask 设置生效

# source ~/.bashrc

3.2 全局设置 umask 的方法
3.2.1 通过修改 /etc/profile 文件实现
3.2.1.1 通过修改 /etc/profile 文件实现案例一
3.2.1.1.1 在 /etc/profile 文件里设置全局 umask 参数

# vim /etc/profile

将以下内容:

......
if [ $UID -gt 199 ] && 
    [ "`/usr/bin/id -gn`" = "`/usr/bin/id un`" ]; then
    umask 002 
else
    umask 022
fi
......

修改为:

......
if [ $UID -gt 199 ] && 
    [ "`/usr/bin/id -gn`" = "`/usr/bin/id un`" ]; then
    umask 002 
else
    umask 022
fi
......


补充:
1) 这里以将 umask 设置为 022 为例
2) 补充 /etc/bashrc 文件会比 /etc/profile 文件更有优先级

3.2.1.1.2 让 umask 设置生效

# source /etc/profile

3.2.1.2 通过修改 /etc/profile 文件实现案例二
3.2.1.2.1 在 /etc/profile 文件里设置全局 umask 参数

# vim /etc/profile

添加以下内容:

......
umask 022


补充:
1) 这里以将 umask 设置为 022 为例
2) 补充 /etc/bashrc 文件会比 /etc/profile 文件更有优先级

3.2.1.2.2 让 umask 设置生效

# source /etc/profile

3.2.2 通过修改 /etc/bashrc 文件实现
3.2.2.1 通过修改 /etc/bashrc 文件实现案例一
3.2.2.1.1 在 /etc/bashrc 文件里设置全局 umask 参数

# vim /etc/bashrc

将以下内容:

......
if [ $UID -gt 199 ] && 
    [ "`/usr/bin/id -gn`" = "`/usr/bin/id un`" ]; then
    umask 002 
else
    umask 022
fi
......

修改为:

......
if [ $UID -gt 199 ] && 
    [ "`/usr/bin/id -gn`" = "`/usr/bin/id un`" ]; then
    umask 002 
else
    umask 022
fi
......


补充:
1) 这里以将 umask 设置为 022 为例
2) 补充 /etc/bashrc 文件会比 /etc/profile 文件更有优先级

3.2.2.1.2 让 umask 设置生效

# source /etc/bashrc

3.2.2.2 通过修改 /etc/bashrc 文件实现案例二
3.2.2.2.1 在 /etc/bashrc 文件里设置全局 umask 参数

# vim /etc/bashrc

添加以下内容:

......
umask 022


补充:
1) 这里以将 umask 设置为 022 为例
2) 补充 /etc/bashrc 文件会比 /etc/profile 文件更有优先级

3.2.2.2.2 让 umask 设置生效

# source /etc/bashrc

[内容] Linux acl 权限

案例目录:

案例一:给某一个文件或目录添加 acl
1.1 给某一个文件或目录添加一个用户的 acl
1.2 给某一个文件或目录添加一个组的 acl
1.3 递归给某一个目录和目录里的所有内容添加一个 acl

案例二:删除某一个文件或目录的 acl
2.1 删除某一个文件或目录一个用户的 acl
2.2 删除某一个文件或目录一个组的 acl
2.3 删除某一个文件或目录的所有 acl
2.4 递归删除某一个文件或目录的 acl
2.5 递归删除某一个文件或目录的所有 acl

案例三:显示某一个文件或目录的 acl

案例四:备份和还原某一个文件或目录的 acl
4.1 备份某一个文件或目录的 acl
4.2 还原某一给文件或目录的 acl

具体的案例:

案例一:给某一个文件或目录添加 acl
1.1 给某一个文件或目录添加一个用户的 acl

# setfacl -m u:zhumingyu:r-x /var

(补充:这里以在 /var 目录上给 zhumingyu 用户设置读和执行的 acl 权限为例)

1.2 给某一个文件或目录添加一个组的 acl

# setfacl -m g:zhumingyu:r-x /var

(补充:这里以在 /var 目录上给 zhumingyu 组设置读和执行的 acl 权限为例)

1.3 递归给某一个目录和目录里的所有内容添加一个 acl

# setfacl -Rm u:zhumingyu:r-x /var

(补充:这里以在 /var 目录上递归给 zhumingyu 组设置读和执行的 acl 权限为例)

案例二:删除某一个文件或目录的 acl
2.1 删除某一个文件或目录一个用户的 acl

# setfacl -x u:zhumingyu /var

(补充:这里以在 /var 目录上删除 zhumingyu 用户的 acl 权限为例)

2.2 删除某一个文件或目录一个组的 acl

# setfacl -x g:zhumingyu /var

(补充:这里以在 /var 目录上删除 zhumingyu 组的 acl 权限为例)

2.3 删除某一个文件或目录的所有 acl

# setfacl -b /var

(补充:这里以在 /var 目录上删除所有 acl 权限为例)

2.4 递归删除某一个文件或目录的 acl

# setfacl -Rx u:zhumingyu:r-x /var

(补充:这里以在 /var 目录上递归删除 zhumingyu 用户的 acl 权限为例)

2.5 递归删除某一个文件或目录的所有 acl

# setfacl -Rb /var

(补充:这里以在 /var 目录上递归删除所有 acl 权限为例)

案例三:显示某一个文件或目录的 acl

# getfacl /var

(补充:这里以显示 /var 目录的 acl 权限为例)

案例四:备份和还原某一个文件或目录的 acl
4.1 备份某一个文件或目录的 acl

# getfacl -R /var > /acl.backup

(补充:这里以备份 /var 目录的 acl 权限为例)

4.2 还原某一给文件或目录的 acl

# setfacl --restore /acl.backup

(补充:这里以还原 /var 目录的 acl 权限为例)