umask

【docker】怎么为docker容器设置umask?

二次信任 提交于 2019-11-30 02:06:47
安全整改要求,容器持久化目录下,服务运行生成的普通文件权限不大于640,目录文件权限不大于750 你可能会尝试设置宿主机的或者基础镜像的umask ,又或者还去尝试直接在Dockerfile中设置,但最终没有达到预期! 那么,到底应该在哪里设置,怎么设置,才能实现限制动态生成的文件、目录的权限符合要求呢? 对非容器化部署的服务而言,一般有相关启动脚本可以设置 umask 环境变量,如 tomcat, GeoServer 设置之后,服务运行过程中产生的相关文件目录会根据设置的umask而生成。 如果是容器运行的服务,类似地,需要在 Dockerfle中的CMD 或者 RNTRYPOINT 指令 指定的相关脚本中指定。 如何为UMASK设置tomcat 7环境变量? http://cn.voidcc.com/question/p-dwgxcknn-us.html http://www.voidcn.com/article/p-zvpcrcpu-bur.html https://blog.csdn.net/silvita/article/details/73294628 https://stackoverflow.com/questions/42437400/tomcat-8-change-catalina-out-permissions-to-be-readable-by-all

How to trace where php5-fpm umask settings are coming from on ubuntu

旧城冷巷雨未停 提交于 2019-11-29 07:18:18
问题 I'd really appreciate any help in tracking down and diagnosing an umask issue on Ubuntu: I'm running php5-fpm with Apache via proxy_fcgi . The process is running with a umask of 0022 (confirmed by having PHP send the results of umask() into a file [the result is '18' == 0022]). I'd like to change this to 0002, but can't track down where the umask is coming from. Apache is set with umask 0002, and as a test, if I disable proxy_fcgi and run my test above, I get a file with u+g having rw access

How to create Unix Domain Socket with a specific permissions in C?

女生的网名这么多〃 提交于 2019-11-29 05:08:29
问题 I have a simple code, like: sockaddr_un address; address.sun_family = AF_UNIX; strcpy(address.sun_path, path); unlink(path); int fd = socket(AF_UNIX, SOCK_STREAM, 0); bind(fd, (sockaddr*)(&address), sizeof(address)); listen(fd, 100); I want to atomically create the Unix Domain Socket file with a specific permissions, say: 0777 . The manual doesn't say anything about socket file permissions with regard to umask or whatever. Even, if the umask does affect the socket file, then it's not an

学习笔记day4

﹥>﹥吖頭↗ 提交于 2019-11-28 23:25:25
rm:删除 -f:强制删除,不询问确认(不管指定删除的文件存不存在也会执行) -r:可删除目录(不加r参数只能删除文件夹) -v:删除的同时打印删除信息 history:查看命令历史 -c:清空命令历史 cp:复制 -r:拷贝目录 mv:移动和重命名 * 当目标目录存在时,会把源目录放到目标目录中,当目标目录不存在时,会更改源目录名为目录目录名 环境变量的作用 查看环境变量 * 当目录属于环境变量时,执行该目录下的命令可不使用绝对路径 例如ls命令: 测试: 将ls拷贝到/tmp目录下并命名为testls,使用/tmp/testls依旧可以实现ls命令的功能,但是不使用绝对路径直接输入testls,系统提示未找到,这时需要添加环境变量 添加环境变量 将/tmp目录添加到环境变量中并再次测试testls命令: * 将/tmp目录添加到环境变量之后再使用testls命令即可不用再使用绝对路径 不过该变量只在当前终端生效,需要修改配置文件使其在多终端生效: 1.修改配置文件/etc/profie 2.添加内容:PATH=$PATH:/tmp/ 3.保存后打开其他链接终端即可生效,如未生效执行source /etc/profile命令 取消环境变量 如需取消/tmp目录的环境变量,重新定义一次不包含该目录的变量即可 2.修改 /etc/profile文件,注释掉PATH=$PATH:

四、传统IDC部署网站

家住魔仙堡 提交于 2019-11-28 22:59:37
传统IDC部署网站 一、rm命令 二、环境变量PATH 三、CP命令 四、MV命令 五、cat、more、less、head、tail 六 文件或目录权限chmod 七、所有者所属组chown 八、umask 一、rm命令 rm可以删除文件及非空目录 rm -f 强制性删除而不去询问 history 可以查看上一次使用的命令 !tree就可以使用tree为前缀的命令 !touch同理 rm -r 删除目录 rm -rf 不提示全部删除 rm -rfv 可视化删除 二、环境变量PATH which可以查看命令的所在路径以及有没有别名 alias PATH是一个环境变量 里面有很多绝对路径 用:进行分割,在这些路径下面的命令可以直接用,不需要加目录路径 三、CP命令 原文件拷贝成目标文件 直接cp 拷贝目录需要加-r 和rm用法一样 拷贝的源没加/ 拷贝的目标没加/ 用cp的时候拷贝所有目录建议都加上/即使目录不存在 tree !$ 上一条命令的最后一条参数 !tree 上一条命令以tree开头的命令 cp也是一个别名 which cp 里面有个-i选项 它是一个安全选项 如果你使用cp拷贝一个文件它会问你是否覆盖 直接使用cp它带-i参数 使用/usr/bin/cp 它就不会询问你是否覆盖 如果拷贝目录的时候它不会询问你是否覆盖

四、传统IDC部署网站

£可爱£侵袭症+ 提交于 2019-11-28 22:59:36
传统IDC部署网站 一、rm命令 二、环境变量PATH 三、CP命令 四、MV命令 五、cat、more、less、head、tail 六 文件或目录权限chmod 七、所有者所属组chown 八、umask 一、rm命令 rm可以删除文件及非空目录 rm -f 强制性删除而不去询问 history 可以查看上一次使用的命令 !tree就可以使用tree为前缀的命令 !touch同理 rm -r 删除目录 rm -rf 不提示全部删除 rm -rfv 可视化删除 二、环境变量PATH which可以查看命令的所在路径以及有没有别名 alias PATH是一个环境变量 里面有很多绝对路径 用:进行分割,在这些路径下面的命令可以直接用,不需要加目录路径 三、CP命令 原文件拷贝成目标文件 直接cp 拷贝目录需要加-r 和rm用法一样 拷贝的源没加/ 拷贝的目标没加/ 用cp的时候拷贝所有目录建议都加上/即使目录不存在 tree !$ 上一条命令的最后一条参数 !tree 上一条命令以tree开头的命令 cp也是一个别名 which cp 里面有个-i选项 它是一个安全选项 如果你使用cp拷贝一个文件它会问你是否覆盖 直接使用cp它带-i参数 使用/usr/bin/cp 它就不会询问你是否覆盖 如果拷贝目录的时候它不会询问你是否覆盖

Git change default umask when update file

ε祈祈猫儿з 提交于 2019-11-28 18:47:44
I have a problem with Git. I searched for a solution in Google and in StackOverflow but nothing helps. The problem is that every time git updates some file in the working directory (when I checkout branches or I merge a branch, etc.) then the file permissions are changed such that the "writable to group" flag is added. And my apache shows "Error 500" for the file if it is writable to group. Example: I have a file index.php. Permissions are "-rwxr-xr-x". Current (active) branch is master. This file was changed in the branch "develop". I execute "git checkout develop" and the file index.php gets

每天学点linux命令

ぃ、小莉子 提交于 2019-11-28 18:07:24
用来设置限制新建文档权限的掩码 补充说明 umask命令 用来设置限制新建文档权限的掩码。当新文档被创建时,其最初的权限由文档创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文档的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。 语法 1 umask(选项)(参数) 选项 12 -p:输出的权限掩码可直接作为命令来执行;-S:以符号方式输出权限掩码。 参数 权限掩码:指定权限掩码。 实例 利用umask命令可以指定哪些权限将在新文档的默认权限中被删除。例如,可以使用下面的命令创建掩码,使得组用户的写权限,其他用户的读、写和执行权限都被取消: 1 umask u=, g=w, o=rwx 执行该命令以后,对于下面创建的新文档,其文档主的权限未做任何改变,而组用户没有写权限,其他用户的所有权限都被取消。 应注意:操作符“=”在umask命令和chmod命令中的作用恰恰相反。在chmod命令中,利用它来设置指定的权限,而其余权限则被删除;但是在umask命令中,它将在原有权限的基础上删除指定的权限。 不能直接利用umask命令创建一个可执行的文档,用户只能在其后利用chmod命令使它具有执行权限。假设执行了命令 umask u=, g=w, o=rwx ,虽然在命令行中,没有删去文档主和组用户的执行权限

Redhat Linux /etc/profile 与 /etc/bashrc 的区别

北城以北 提交于 2019-11-28 03:06:01
最近学习RHCE,在umask这里,书里说要修改/etc/profile和/etc/bashrc两个文件,却没有说明这两个区别。于是在上网查看之后倒是明白了各是怎么用的。/etc/profile是对应登录的,/etc/bashrc是对应打开shell的。但是实际使用区别在哪,如果说bashrc是对应shell的,那么改这一个文件不就行了?最后自己实践一下,发现还是不同的,特此分享一下,也做个记录。 实验准备:将/etc/profile文件中的umask改为007,将/etc/bashrc中的umask改为077。 实验步骤:   1.以root身份登录并打开shell,umask值 077   2.su test, umask值 077   3.su - test,umask值 007 实验结果:如果只是切换用户,不重新登录,那么profile的脚本将不会执行,从而bashrc中的脚本发生作用。 总结一下就是,打开一个shell的话,会执行shell相关的bashrc的脚本,用su -命令执行时会重新loggin,因此会再调用一次profile里的脚本。 所以,如果不想搞出歧义为自己的管理添麻烦的话,还是老老实实的改两个文件吧。由于还没时间写程序,不过如果没猜错的话,程序应该用的是bashrc里的值。 转载于:https://www.cnblogs.com/ebread/p

Liunx中的账号与文件/目录权限管理——理论篇

心已入冬 提交于 2019-11-27 19:29:36
本篇博客主要介绍Liunx操作系统中有关用户与组相关的属性与权限,并且详解如何对文件/目录进行权限、归属的设置。接下来我将主要从以下几个部分进行详细的讲解 目录简述: 用户账户和组账户概述 用户账户和组账户管理 查询相关账户信息 查看目录或文件的属性 设置目录或文件的权限、归属 一、用户账户和组账户概述、管理 1、用户账户和组账户概述 1-1 组成部分 用户账户主要分为以下几个部分 组账户主要分为以下几个部分 1-2 文件存放位置及账户详解 用户账户: 存放位置:所有账户文件都存放在“/etc/passwd”中,所有的密码文件都存放在“/etc/shadow”中(不是明文,需要通过哈希算法进行解码) 格式:这里以root账户做例子,这里用户账户ID、组账户ID即为UID、GID UID和GID这两者为账户标识符 超级(root)用户的UID为0,程序用户的UID为1~499,普通用户的UID为500~60000。 GID表示的是组的组标识号 组账户: 所有账户文件都存放在“/etc/group”中,所有的密码文件都存放在“/etc/gshadow”中(一般不设密码,如果有密码同样不是明文) 格式:以adm这个附加组为例 2、用户账户和组账户管理 1-1用户账户管理 (1)useradd指令添加用户账户 格式:useradd [选项] 新建的用户名 常用选项: -u 指定UID -d